Partager via


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 :

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

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