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 Azure Key Vault
Accédez au portail Azure.
Sélectionnez Créer une ressource dans le volet de navigation gauche.
Recherchez Key Vault, puis appuyez sur Entrée.
Sélectionnez Créer pour créer un Azure Key Vault.
Sélectionnez votre Abonnement, puis ajoutez un nouveau groupe de Ressources. Entrez un nom de coffre de clés et sélectionnez une Région et un niveau tarifaire. Sélectionnez Réviser + créer lorsque vous avez terminé.
Sélectionnez Accéder à la ressource lorsque le déploiement de votre nouvelle ressource est terminé.
Créer un principal du service
Au cours de cette étape, nous allons créer un nouveau principal de service dans Azure, nous permettant d'interroger notre Azure Key Vault à partir d'Azure Pipelines.
Accédez au portail Azure.
Dans la barre de menus, sélectionnez l'icône >_ pour ouvrir Cloud Shell.
Sélectionnez PowerShell ou laissez-le comme Bash en fonction de vos préférences.
Exécutez la commande suivante pour créer un principal de service :
az ad sp create-for-rbac --name YOUR_SERVICE_PRINCIPAL_NAME
Votre résultat doit correspondre à l’exemple ci-dessous. Assurez-vous de copier le résultat de votre commande, car vous en aurez besoin pour créer la connexion au service à l'étape suivante.
{ "appId": "p951q3e2-8e5r-z697-e9q52aviu8a2", "displayName": "MyServicePrincipal", "password": "***********************************", "tenant": "85wes2u6-63sh-95zx-2as3-qw58wex269df" }
Configurez les autorisations d’accès Key Vault
Accédez au portail Azure.
Sélectionnez le coffre de clés que vous avez créé à l’étape précédente.
Sélectionnez Stratégies d’accès.
Sélectionnez ajouter une stratégie d’accès pour ajouter une nouvelle stratégie.
Ajoutez un Obtenir et Liste aux autorisations de Secret.
Sous Sélectionner le principal, sélectionnez pour ajouter un principal de service et choisissez celui que vous avez créé précédemment.
Lorsque vous avez terminé, sélectionnez Enregistrer.
Remarque
Les Azure Key Vaults qui utilisent le contrôle d’accès en fonction du rôle Azure (Azure RBAC) ne sont pas pris en charge.
Créer une nouvelle connexion de service
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez Paramètres du projet, puis Connexions de service.
Si vous configurez une connexion de service pour la première fois dans votre projet, sélectionnez Créer une connexion de service. Si vous avez déjà établi des connexions au service, sélectionnez Nouvelle connexion au service.
Sélectionnez Azure Resource Manager, puis sélectionnez Suivant.
Sélectionnez Principal du service (manuel), puis sélectionnez Suivant.
Sélectionnez Souscription pour le niveau de portée et remplissez les champs obligatoires avec les informations du principal de service créé précédemment. Sélectionnez Vérifier lorsque vous avez terminé :
- ID principal du service : Votre principal de service appId.
- Clé principale du service : Votre principal de service mot de passe.
- ID du locataire : Votre principal de service locataire.
Fournissez un nom pour votre connexion de service et assurez-vous de cocher la case Accorder l'autorisation d'accès à tous les pipelines.
Sélectionnez Vérifier et enregistrez lorsque vous avez terminé.
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: 'repo-kv-demo' ## YOUR_SERVICE_CONNECTION_NAME
KeyVaultName: 'kv-demo-repo' ## YOUR_KEY_VAULT_NAME
SecretsFilter: 'secretDemo' ## YOUR_SECRET_NAME. Default value: *
RunAsPreJob: false ## Make the secret(s) available to the whole job
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
inputs:
command: 'run'
projects: '**/*.csproj'
env:
mySecret: $(secretDemo)
- bash: |
echo "Secret Found! $MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(mySecret)
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'.
Articles connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : tout au long de 2024, nous allons éliminer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d'informations, consultez :Envoyer et afficher des commentaires pour