Partager via


Utiliser Azure Key Vault pour protéger les secrets au moment de la production

Conseil / Astuce

Ce contenu est un extrait du livre électronique 'Architecture des microservices .NET pour les applications .NET conteneurisées', disponible sur .NET Docs ou en tant que PDF téléchargeable gratuitement, lisible hors ligne.

Architecture de microservices .NET pour les applications .NET conteneurisées - vignette de couverture du livre électronique.

Les secrets stockés en tant que variables d’environnement ou stockés par l’outil Gestionnaire de secrets sont toujours stockés localement et non chiffrés sur l’ordinateur. Une option plus sécurisée pour le stockage des secrets est Azure Key Vault, qui fournit un emplacement sécurisé et central pour le stockage des clés et des secrets.

Le package Azure.Extensions.AspNetCore.Configuration.Secrets permet à une application ASP.NET Core de lire les informations de configuration à partir d’Azure Key Vault. Pour commencer à utiliser des secrets à partir d’un coffre de clés Azure, procédez comme suit :

  1. Inscrivez votre application en tant qu’application Azure AD. (L’accès aux coffres de clés est géré par Azure AD.) Cette opération peut être effectuée via le portail de gestion Azure.\

    Sinon, si vous souhaitez que votre application s’authentifie à l’aide d’un certificat au lieu d’un mot de passe ou d’une clé secrète client, vous pouvez utiliser l’applet de commande PowerShell New-AzADApplication . Le certificat que vous inscrivez auprès d’Azure Key Vault n’a besoin que de votre clé publique. Votre application utilisera la clé privée.

  2. Accordez à l’application inscrite un accès au coffre de clés en créant un principal de service. Pour ce faire, utilisez les commandes PowerShell suivantes :

    $sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>"
    Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
    
  3. Incluez le coffre de clés en tant que source de configuration dans votre application en appelant la méthode d’extension AzureKeyVaultConfigurationExtensions.AddAzureKeyVault lorsque vous créez une IConfigurationRoot instance.

Notez que l’appel d’AddAzureKeyVault nécessite l’ID de l’application qui a été inscrite et qui a obtenu l’accès au coffre de clés aux étapes précédentes. Vous pouvez également exécuter la commande Azure CLI : az login, puis utiliser une surcharge de AddAzureKeyVault qui accepte un DefaultAzureCredential à la place du client.

Importante

Nous vous recommandons d’inscrire Azure Key Vault comme dernier fournisseur de configuration, afin qu’il puisse remplacer les valeurs de configuration des fournisseurs précédents.

Ressources supplémentaires