Usar o Azure Key Vault para proteger segredos no momento da produção
Gorjeta
Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
Os segredos armazenados como variáveis de ambiente ou armazenados pela ferramenta Secret Manager ainda são armazenados localmente e não criptografados na máquina. Uma opção mais segura para armazenar segredos é o Cofre de Chaves do Azure, que fornece um local central e seguro para armazenar chaves e segredos.
O pacote Azure.Extensions.AspNetCore.Configuration.Secrets permite que um aplicativo ASP.NET Core leia informações de configuração do Cofre de Chaves do Azure. Para começar a usar segredos de um Cofre de Chaves do Azure, siga estas etapas:
Registre seu aplicativo como um aplicativo do Azure AD. (O acesso aos cofres de chaves é gerenciado pelo Azure AD.) Isso pode ser feito por meio do portal de gerenciamento do Azure.\
Como alternativa, se desejar que seu aplicativo se autentique usando um certificado em vez de uma senha ou segredo do cliente, você pode usar o cmdlet New-AzADApplication PowerShell. O certificado que você registra no Azure Key Vault precisa apenas da sua chave pública. Seu aplicativo usará a chave privada.
Dê ao aplicativo registrado acesso ao cofre de chaves criando uma nova entidade de serviço. Você pode fazer isso usando os seguintes comandos do PowerShell:
$sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>" Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
Inclua o cofre de chaves como uma fonte de configuração em seu aplicativo chamando o método de extensão AzureKeyVaultConfigurationExtensions.AddAzureKeyVault ao criar uma IConfigurationRoot instância.
Observe que a chamada AddAzureKeyVault
requer o ID do aplicativo que foi registrado e recebeu acesso ao cofre de chaves nas etapas anteriores. Ou, primeiro, você pode executar o comando da CLI do Azure: az login
e, em seguida, usar uma sobrecarga que AddAzureKeyVault
usa uma DefaultAzureCredential no lugar do cliente.
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 de provedores anteriores.
Recursos adicionais
Utilizar o Cofre de Chaves do Azure para proteger segredos da aplicação
https://learn.microsoft.com/azure/architecture/multitenant-identityArmazenamento seguro de segredos de aplicativos durante o desenvolvimento
https://learn.microsoft.com/aspnet/core/security/app-secretsConfigurando a proteção de dados
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/overviewGerenciamento de chaves de proteção de dados e tempo de vida no ASP.NET Core
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/default-settings