Partilhar via


Usar o Azure Key Vault para proteger segredos no momento da produção

Sugestão

Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

Miniatura da capa do eBook Arquitetura de Microsserviços .NET para Aplicações .NET Contentorizadas.

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:

  1. 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.

  2. Conceda ao aplicativo registado acesso ao cofre de chaves ao criar 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>"
    
  3. 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, em primeiro lugar, pode-se executar o comando da CLI do Azure: az login, e depois usar uma sobrecarga de AddAzureKeyVault que aceita uma DefaultAzureCredential em vez 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