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 valeurs les plus récentes de l’ensemble ou d’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 un nœud 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 nouvelle connexion. Plus d’informations


KeyVaultName - Coffre de clés
string. Obligatoire.

Nom du Key Vault Azure qui contient les secrets à télécharger.


SecretsFilter - Filtre de secrets
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 de noms de secrets séparés par des virgules.


RunAsPreJob - Mettre des 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 des secrets à toutes les tâches du travail, pas seulement aux tâches qui suivent celle-ci.


Options de contrôle des tâches

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.

Notes

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 valeurs les plus récentes de l’ensemble ou d’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 un nœud et fonctionne avec des agents sur Linux, macOS et Windows.

J’obtiens une forbidden erreur sur les pipelines au moment 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, ajoutez une stratégie d’accès avec les autorisations appropriées.

Prérequis

La tâche présente les conditions préalables suivantes :

Vous pouvez créer un coffre de clés :

Ajouter des secrets à un coffre de clés :

  • À l’aide de l’applet de commande PowerShell Set-AzureKeyVaultSecret. Si le secret n’existe pas, cette applet de commande le crée. Si le secret existe déjà, cette applet de commande crée une nouvelle version de ce secret.

  • À l’aide de l’interface 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'
    

Lorsque vous souhaitez accéder aux secrets :

  • Vérifiez que la connexion au service Azure dispose d’au moins des autorisations Get et List 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.
    • Dans le panneau Ajouter une stratégie d’accès , choisissez Sélectionner un 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 Get et List sont cochés (cochés).
    • Choisissez OK pour enregistrer les modifications.

Notes

Si vous utilisez un agent hébergé par Microsoft, vous devez ajouter sa plage d’adresses IP à votre pare-feu. Obtenez la liste hebdomadaire des plages d’adresses IP à partir du fichier JSON hebdomadaire publié tous les mercredis. Les nouvelles plages d’adresses IP prennent effet le lundi suivant. Pour plus d’informations, consultez Agents hébergés par Microsoft. Pour trouver les plages d’adresses IP nécessaires à votre organisation Azure DevOps, découvrez comment identifier les plages d’adresses IP possibles pour les agents hébergés par Microsoft.

Notes

Les valeurs sont récupérées sous forme de chaînes. Par exemple, s’il existe un secret nommé connectionString, une variable connectionString de tâche est créée avec la dernière valeur du secret respectif extraite d’Azure Key Vault. 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.

Spécifications

Condition requise Description
Types de pipelines YAML, build classique, version classique
S’exécute sur Agent, DeploymentGroup
Demandes Aucun
Capabilities Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail.
Restrictions de commandes Quelconque
Variables settables Quelconque
Version de l’agent 2.182.1 ou version ultérieure
Catégorie de la tâche Déployer