Usar o Azure Key Vault para proteger os segredos no tempo de produçãoUse Azure Key Vault to protect secrets at production time

Os segredos armazenados como variáveis de ambiente ou armazenados pela ferramenta Secret Manager ainda são armazenados localmente e descriptografados no computador.Secrets stored as environment variables or stored by the Secret Manager tool are still stored locally and unencrypted on the machine. Uma opção mais segura para armazenar segredos é o Azure Key Vault, que oferece um local seguro e central para armazenar chaves e segredos.A more secure option for storing secrets is Azure Key Vault, which provides a secure, central location for storing keys and secrets.

O pacote Microsoft.Extensions.Configuration.AzureKeyVault permite que um aplicativo do ASP.NET Core leia informações de configuração do Azure Key Vault.The Microsoft.Extensions.Configuration.AzureKeyVault package allows an ASP.NET Core application to read configuration information from Azure Key Vault. Para começar a usar os segredos de um Azure Key Vault, siga estas etapas:To start using secrets from an Azure Key Vault, you follow these steps:

  1. Registre seu aplicativo como um aplicativo do Azure AD.Register your application as an Azure AD application. (O acesso a cofres de chaves é gerenciado pelo Azure AD). Isso pode ser feito por meio do portal de gerenciamento do Azure.(Access to key vaults is managed by Azure AD.) This can be done through the Azure management portal.\

    Ou, se você desejar que seu aplicativo seja autenticado usando um certificado em vez de um segredo do cliente ou senha, use o cmdlet do PowerShell New-AzADApplication.Alternatively, if you want your application to authenticate using a certificate instead of a password or client secret, you can use the New-AzADApplication PowerShell cmdlet. O certificado que você registrar com o Azure Key Vault precisa apenas de sua chave pública.The certificate that you register with Azure Key Vault needs only your public key. O aplicativo usará a chave privada.Your application will use the private key.

  2. Permita que o aplicativo registrado acesse o Key Vault criando uma entidade de serviço.Give the registered application access to the key vault by creating a new service principal. É possível fazer isso usando os seguintes comandos do PowerShell:You can do this using the following PowerShell commands:

    $sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>"
    Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
    
  3. Inclua o Key Vault como uma fonte de configuração em seu aplicativo chamando o método de extensão AzureKeyVaultConfigurationExtensions.AddAzureKeyVault ao criar uma instância de IConfigurationRoot.Include the key vault as a configuration source in your application by calling the AzureKeyVaultConfigurationExtensions.AddAzureKeyVault extension method when you create an IConfigurationRoot instance. Observe que a chamada de AddAzureKeyVault requer a ID do aplicativo que foi registrada e permitiu acesso ao Key Vault nas etapas anteriores.Note that calling AddAzureKeyVault requires the application ID that was registered and given access to the key vault in the previous steps.

    Você também pode usar uma sobrecarga de AddAzureKeyVault, que usa um certificado no lugar do segredo do cliente, apenas incluindo uma referência ao pacote Microsoft.IdentityModel.Clients.ActiveDirectory.You can also use an overload of AddAzureKeyVault that takes a certificate in place of the client secret by just including a reference to the Microsoft.IdentityModel.Clients.ActiveDirectory package.

Importante

Recomendamos que você registre o Azure Key Vault como o último provedor de configuração, para que ele possa substituir os valores de configuração dos provedores anteriores.We recommend you to register Azure Key Vault as the last configuration provider, so it can override configuration values from previous providers.

Recursos adicionaisAdditional resources