Condividi tramite


Usare Azure Key Vault per proteggere i segreti in fase di produzione

Suggerimento

Questo contenuto è un estratto dell'eBook, Architettura di microservizi .NET per applicazioni .NET containerizzati, disponibile in documentazione .NET o come PDF scaricabile gratuitamente leggibile offline.

Architettura di Microservizi .NET per Applicazioni .NET Containerizzate miniatura della copertina dell'eBook.

I segreti archiviati come variabili di ambiente o archiviati dallo strumento Secret Manager vengono comunque archiviati in locale e non crittografati nel computer. Un'opzione più sicura per l'archiviazione dei segreti è Azure Key Vault, che offre una posizione centrale sicura per l'archiviazione di chiavi e segreti.

Il pacchetto Azure.Extensions.AspNetCore.Configuration.Secrets consente a un'applicazione ASP.NET Core di leggere le informazioni di configurazione da Azure Key Vault. Per iniziare a usare segreti da un Azure Key Vault, seguiti questa procedura:

  1. Registrare l'applicazione come applicazione Azure AD. L'accesso agli insiemi di credenziali delle chiavi è gestito da Azure AD. Questa operazione può essere eseguita tramite il portale di gestione di Azure.\

    In alternativa, se si vuole che l'applicazione esegua l'autenticazione usando un certificato anziché una password o un segreto client, è possibile usare il cmdlet Di PowerShell New-AzADApplication . Il certificato registrato con Azure Key Vault richiede solo la chiave pubblica. L'applicazione userà la chiave privata.

  2. Conferire all'applicazione registrata l'accesso al Key Vault creando un nuovo principale del servizio. A tale scopo, è possibile usare i comandi di PowerShell seguenti:

    $sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>"
    Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
    
  3. Includere Key Vault come origine di configurazione nell'applicazione chiamando il metodo di estensione AzureKeyVaultConfigurationExtensions.AddAzureKeyVault quando si crea un'istanza IConfigurationRoot.

Si noti che la chiamata AddAzureKeyVault richiede l'ID applicazione che è stato registrato e a cui è stato concesso accesso all'insieme di credenziali delle chiavi nei passaggi precedenti. In alternativa, è possibile eseguire innanzitutto il comando Azure CLI: az login, quindi utilizzare un overload di AddAzureKeyVault che accetta un DefaultAzureCredential al posto del client.

Importante

È consigliabile registrare Azure Key Vault come ultimo provider di configurazione, in modo che possa eseguire l'override dei valori di configurazione dei provider precedenti.

Risorse aggiuntive