Condividi tramite


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

Suggerimento

Questo contenuto è un estratto dell'eBook "Microservizi .NET: Architettura per le applicazioni .NET incluse in contenitori", disponibile in .NET Docs o come PDF scaricabile gratuitamente e da poter leggere offline.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

I segreti archiviati come variabili di ambiente o dallo strumento Secret Manager sono ancora archiviati localmente e non crittografati nel computer. Un'opzione più sicura per l'archiviazione di segreti è Azure Key Vault, una posizione centralizzata e sicura per l'archiviazione di chiavi e segreti.

Il pacchetto Azure.Extensions.AspNetCore.Configuration.Secrets consente alle applicazioni ASP.NET Core di leggere le informazioni di configurazione da Azure Key Vault. Per iniziare a usare segreti da Azure Key Vault, eseguire i passaggi seguenti:

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

    In alternativa, se si vuole che l'applicazione effettui l'autenticazione tramite certificato anziché tramite password o segreto client, è possibile usare il cmdlet PowerShell New-AzADApplication. Il certificato che si registra con Azure Key Vault ha bisogno della sola chiave pubblica. L'applicazione userà la chiave privata.

  2. Concedere all'applicazione registrata l'accesso all'insieme di credenziali delle chiavi, creando una nuova entità servizio. A tale scopo, è possibile usare i comandi 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 l'insieme di credenziali delle chiavi come origine di configurazione nell'applicazione chiamando il metodo di estensione AzureKeyVaultConfigurationExtensions.AddAzureKeyVault quando si crea un'istanza di IConfigurationRoot.

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

Importante

È consigliabile registrare Azure Key Vault come ultimo provider di configurazione, per far sì che esegua l'override dei valori di configurazione dei provider precedenti.

Risorse aggiuntive