Utilisez des secrets Azure Key Vault dans votre pipeline
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Avec Azure Key Vault, vous pouvez stocker et gérer en toute sécurité vos informations sensibles telles que les mots de passe, les clés API, les certificats, etc. à l’aide d’Azure Key Vault, vous pouvez facilement créer et gérer des clés de chiffrement pour chiffrer vos données. Azure Key Vault peut également être utilisé pour gérer des certificats pour toutes vos ressources. Dans cet article, vous allez apprendre à :
- Créez un coffre de clés Azure.
- Configurez vos autorisations Key Vault.
- Créez une nouvelle connexion de service.
- Recherchez les secrets de votre pipeline Azure.
Prérequis
- Une organisation Azure DevOps. Créez-en un gratuitement si vous n’en avez pas encore un.
- Votre propre projet. Créer un projet si vous n’en avez pas encore un.
- Votre propre référentiel. Créer un nouveau dépôt Git si vous n’en avez toujours pas un.
- Un abonnement Azure. Créer un compte Azure gratuit si vous n’en avez pas déjà.
Créer un coffre de clés
Connectez-vous au Portail Azure, puis sélectionnez Créer une ressource.
Sous Key Vault, sélectionnez Créer pour créer un coffre de clés Azure.
Sélectionnez votre abonnement dans le menu déroulant, puis sélectionnez un groupe de ressources existant ou créez-en un. Entrez un nom de coffre de clés, sélectionnez une région, choisissez un niveau tarifaire, puis sélectionnez Suivant si vous souhaitez configurer des propriétés supplémentaires. Sinon, sélectionnez Vérifier + créer pour conserver les paramètres par défaut.
Une fois le déploiement effectué, sélectionnez Accéder à la ressource.
Configurer l’authentification
Créer une identité managée attribuée par l’utilisateur
Connectez-vous au Portail Azure, puis recherchez le service Identités managées dans la barre de recherche.
Sélectionnez Créer, puis renseignez les champs obligatoires comme suit :
- Abonnement : sélectionnez votre abonnement dans le menu déroulant.
- Groupe de ressources : sélectionnez un groupe de ressources existant ou créez-en un.
- Région : sélectionnez une région dans le menu déroulant.
- Nom : entrez un nom pour votre identité managée affectée par l’utilisateur.
Sélectionnez Réviser + créer lorsque vous avez terminé.
Une fois le déploiement terminé, sélectionnez Accéder à la ressource, puis copiez les valeurs d’abonnement et d’ID client à utiliser dans les étapes à venir.
Accédez aux propriétés des paramètres> et copiez la valeur d’ID de locataire de votre identité managée pour une utilisation ultérieure.
Définir des stratégies d’accès Key Vault
Accédez à Portail Azure et utilisez la barre de recherche pour rechercher le coffre de clés que vous avez créé précédemment.
Sélectionnez Stratégies d’accès, puis sélectionnez Créer pour ajouter une nouvelle stratégie.
Sous Autorisations secrètes, activez les cases à cocher Obtenir et Lister .
Sélectionnez Suivant, puis collez l’ID client de l’identité managée que vous avez créée précédemment dans la barre de recherche. Sélectionnez votre identité managée.
Sélectionnez Suivant, puis Suivant une fois de plus.
Passez en revue vos nouvelles stratégies, puis sélectionnez Créer lorsque vous avez terminé.
Créer une connexion de service
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez Paramètres du projet>Connexions de service, puis Nouvelle connexion de service pour créer une nouvelle connexion de service.
Sélectionnez Azure Resource Manager, puis sélectionnez Suivant.
Pour Le type d’identité, sélectionnez Identité managée dans le menu déroulant.
Pour l’étape 1 : Détails de l’identité managée, renseignez les champs comme suit :
Abonnement pour l’identité managée : sélectionnez l’abonnement contenant votre identité managée.
Groupe de ressources pour l’identité managée : sélectionnez le groupe de ressources hébergeant votre identité managée.
Identité managée : sélectionnez votre identité managée dans le menu déroulant.
Pour l’étape 2 : Étendue Azure, renseignez les champs comme suit :
Niveau d’étendue pour la connexion de service : sélectionnez Abonnement.
Abonnement pour la connexion de service : sélectionnez l’abonnement auquel votre identité managée accède.
Groupe de ressources pour la connexion de service : (facultatif) Spécifiez pour limiter l’accès d’identité managée à un groupe de ressources.
Pour l’étape 3 : Détails de la connexion de service :
Nom de la connexion de service : indiquez un nom pour votre connexion de service.
Référence de gestion des services : (facultatif) informations de contexte d’une base de données ITSM.
Description : (facultatif) Ajoutez une description.
Dans Sécurité, cochez la case Accorder l’autorisation d’accès à tous les pipelines pour autoriser tous les pipelines à utiliser cette connexion de service. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.
Sélectionnez Enregistrer pour valider et créer la connexion de service.
Interrogez et utilisez des secrets dans votre pipeline
À l’aide de la tâche Azure Key Vault nous pouvons extraire la valeur de notre secret et l’utiliser dans les tâches suivantes dans notre pipeline. Une chose à garder à l’esprit est que les secrets doivent être explicitement mappés à la variable env, comme illustré dans l’exemple ci-dessous.
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: 'SERVICE_CONNECTION_NAME'
KeyVaultName: 'KEY_VAULT_NAME'
SecretsFilter: '*'
- bash: |
echo "Secret Found! $MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(SECRET_NAME)
La sortie de la dernière commande bash devrait ressembler à ceci :
Secret Found! ***
Notes
Si vous souhaitez interroger plusieurs secrets à partir de votre Azure Key Vault, utilisez l’argument SecretsFilter
pour passer une liste de noms de secrets séparés par des virgules : 'secret1, secret2'.