AzureKeyVault@2 - Tâche Azure Key Vault v2
Utilisez cette tâche pour télécharger des secrets, tels que des clés d’authentification, des clés de compte de stockage, des clés de chiffrement de données, . Fichiers PFX et mots de passe d’une instance Azure Key Vault. La tâche peut être utilisée pour extraire les dernières valeurs de tous ou un sous-ensemble de secrets à partir du coffre et les définir en tant que variables qui peuvent être utilisées dans les tâches suivantes d’un pipeline. La tâche est basée sur node et fonctionne avec des agents sur Linux, macOS et Windows.
Syntaxe
# Azure Key Vault v2
# Download Azure Key Vault secrets.
- task: AzureKeyVault@2
inputs:
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
KeyVaultName: # string. Required. Key vault.
SecretsFilter: '*' # string. Required. Secrets filter. Default: *.
#RunAsPreJob: false # boolean. Make secrets available to whole job. Default: false.
Entrées
azureSubscription
-
abonnement Azure
Alias d’entrée : ConnectedServiceName
.
string
. Obligatoire.
Sélectionnez la connexion de service pour l’abonnement Azure contenant l’instance Azure Key Vault ou créez une connexion. En savoir plus.
KeyVaultName
-
key vault
string
. Obligatoire.
Nom d’Azure Key Vault qui contient les secrets à télécharger.
filtre secrets SecretsFilter
-
string
. Obligatoire. Valeur par défaut : *
.
Télécharge les noms de secrets en fonction de la valeur entrée. La valeur peut être la valeur par défaut pour télécharger tous les secrets à partir du coffre de clés sélectionné ou une liste séparée par des virgules de noms de secrets.
RunAsPreJob
-
Mettre les secrets à la disposition de l’ensemble du travail
boolean
. Valeur par défaut : false
.
Exécute la tâche avant le début de l’exécution du travail. Expose les secrets à toutes les tâches du travail, pas seulement les tâches qui suivent celle-ci.
Options de contrôle de tâche
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Remarques
Nouveautés de la version 2.0 : ajout de la prise en charge de %3B, %5D dans les secrets.
Utilisez cette tâche pour télécharger des secrets, tels que des clés d’authentification, des clés de compte de stockage, des clés de chiffrement de données, . Fichiers PFX et mots de passe d’une instance Azure Key Vault. La tâche peut être utilisée pour extraire les dernières valeurs de tous ou un sous-ensemble de secrets à partir du coffre et les définir en tant que variables qui peuvent être utilisées dans les tâches suivantes d’un pipeline. La tâche est basée sur node et fonctionne avec des agents sur Linux, macOS et Windows.
J’obtiens une erreur forbidden
sur les pipelines au point d’obtenir des informations d’identification à partir d’Azure Key Vault
Cela se produit si les autorisations requises sont manquantes dans le coffre de clés Azure. Pour résoudre le problème, ajouter une stratégie d’accès avec les autorisations appropriées.
Conditions préalables
La tâche présente les conditions préalables suivantes :
- Un abonnement Azure lié à Azure Pipelines ou Team Foundation Server à l’aide du connexion de service Azure Resource Manager.
- Un Azure Key Vault contenant les secrets.
Vous pouvez créer un coffre de clés :
- Dans le portail Azure
- En utilisant Azure PowerShell
- À l’aide de l'Azure CLI
Ajoutez des secrets à un coffre de clés :
À l’aide de l’applet de commande PowerShell Set-AzKeyVaultSecret. Si le secret n’existe pas, cette applet de commande la crée. Si le secret existe déjà, cette applet de commande crée une nouvelle version de ce secret.
À l’aide d’Azure CLI. Pour ajouter un secret à un coffre de clés, par exemple un secret nommé SQLPassword avec la valeur PlaceholderPassword, tapez :
az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
Quand vous souhaitez accéder aux secrets :
Vérifiez que la connexion au service Azure dispose au moins Obtenir et Répertorier les autorisations sur le coffre. Vous pouvez définir ces autorisations dans le portail Azure :
- Ouvrez le panneau Paramètres du coffre, choisissez stratégies d’accès, puis Ajouter une nouvelle.
- Dans le panneau Ajouter une stratégie d’accès, choisissez Sélectionner principal et sélectionnez le principal de service pour votre compte client.
- Dans le panneau Ajouter une stratégie d’accès, choisissez autorisations secrètes et vérifiez que obtenir et liste sont cochées (cochées).
- Choisissez OK pour enregistrer les modifications.
Note
Si vous utilisez un agent hébergé par Microsoft, vous devez ajouter la plage d’adresses IP de l’agent hébergé par Microsoft à votre pare-feu. Obtenez la liste hebdomadaire des plages d’adresses IP à partir du fichier JSON hebdomadaire, qui est publié tous les mercredis. Les nouvelles plages d’adresses IP sont effectives le lundi suivant. Pour plus d’informations, consultez agents hébergés par Microsoft. Pour rechercher les plages d’adresses IP requises pour votre organisation Azure DevOps, découvrez comment identifier les plages d’adresses IP possibles pour les agents hébergés par Microsoft.
Note
Les valeurs sont récupérées sous forme de chaînes. Par exemple, s’il existe un secret nommé connectionString, une variable de tâche connectionString
est créée avec la dernière valeur du secret respectif extrait à partir du coffre de clés Azure. Cette variable est ensuite disponible dans les tâches suivantes.
Si la valeur extraite du coffre est un certificat (par exemple, un fichier PFX), la variable de tâche contient le contenu du PFX au format chaîne. Vous pouvez utiliser le code PowerShell suivant pour récupérer le fichier PFX à partir de la variable de tâche :
$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
Si le fichier de certificat est stocké localement sur l’ordinateur, il est recommandé de le chiffrer avec un mot de passe :
#Get the file created
$password = 'your password'
$protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password)
$pfxPath = [Environment]::GetFolderPath("Desktop") + "\MyCert.pfx"
[System.IO.File]::WriteAllBytes($pfxPath, $protectedCertificateBytes)
Pour plus d’informations, consultez Prise en main des certificats Azure Key Vault.
Exemples
Démarrage rapide : Utiliser des secrets à partir d’Azure Key Vault (Classic/YAML)
Tutoriel : Utiliser des secrets Azure Key Vault dans votre pipeline YAML
Exigences
Exigence | Description |
---|---|
Types de pipelines | YAML, Build Classique, Version Classique |
Exécutions sur | Agent, DeploymentGroup |
demandes | Aucun |
fonctionnalités de | Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail. |
restrictions de commande | Quelconque |
variables settables | Quelconque |
Version de l’agent | 2.182.1 ou version ultérieure |
Catégorie de tâche | Déployer |