Recarregar os segredos e certificados do Key Vault automaticamente
A Configuração de Aplicativos e o Key Vault são serviços complementares usados lado a lado em muitos aplicativos. A configuração de aplicativo ajuda você a usar os serviços juntos criando chaves no repositório de Configuração de Aplicativos que fazem referência a segredos ou certificados armazenados no Key Vault. Como o Key Vault armazena o par de chaves pública e privada de um certificado como um segredo, o aplicativo pode recuperar qualquer certificado como um segredo do Key Vault.
Como uma boa prática de segurança, os segredos e certificados devem ser girados periodicamente. Depois que eles forem girados no Key Vault, você desejaria que seu aplicativo pegue os valores mais recentes de segredo e de certificado. Há duas maneiras de conseguir isso sem reiniciar o aplicativo:
- Atualize um valor de chave de sentinela para disparar a atualização de toda a configuração, recarregando assim todos os segredos e certificados do Key Vault. Para obter mais informações, confira como usar a configuração dinâmica em um aplicativo ASP.NET Core.
- Recarregue periodicamente alguns ou todos os segredos e certificados do Key Vault.
Na primeira opção, você precisará atualizar o valor-chave do sentinela na Configuração de Aplicativos sempre que você girar os segredos e certificados no Key Vault. Essa abordagem funciona bem quando você deseja forçar uma recarga imediata de segredos e certificados no aplicativo. No entanto, quando os segredos e certificados forem girados automaticamente no Key Vault, o aplicativo poderá enfrentar erros se você não atualizar o valor-chave de sentinela a tempo. A segunda opção permite automatizar completamente esse processo. Você pode configurar o aplicativo para recarregar os segredos e certificados do Key Vault dentro do seu atraso aceitável a partir do momento da rotação. Este tutorial guiará você pela segunda opção.
Pré-requisitos
Este tutorial mostra como configurar seu aplicativo para recarregar automaticamente os segredos e certificados do Key Vault. Ele se baseia no tutorial para implementar referências de Key Vault em seu código. Antes de continuar, conclua o Tutorial: usar referências do Key Vault em um aplicativo ASP.NET Core.
Pacote do Microsoft.Azure.AppConfiguration.AspNetCore v4.4.0 ou posterior.
Adicionar um certificado com rotação automática ao Key Vault
Siga o Tutorial: configurar a rotação automática de certificado no Key Vault para adicionar um certificado de rotação automática chamado ExampleCertificate ao Key Vault criado no tutorial anterior.
Adicionar uma referência ao certificado do Key Vault na Configuração de Aplicativos
No portal do Azure, selecione Todos os recursos e depois escolha a instância do repositório da Configuração de Aplicativos que você criou no tutorial anterior.
Selecione Gerenciador de Configurações.
Clique em + Criar>Referência do Key Vault e especifique os seguintes valores:
- Chave: selecione TestApp:Settings:KeyVaultCertificate.
- Rótulo: deixe esse valor em branco.
- Assinatura, Grupo de recursos e Cofre de chaves: insira os valores correspondentes aos do cofre de chaves que você criou na seção anterior.
- Segredo: selecione o segredo chamado ExampleCertificate que você criou na seção anterior.
- Versão do Segredo: Versão mais recente.
Observação
Se você fizer referência a uma versão específica, o recarregamento do segredo ou do certificado do Key Vault sempre retornará o mesmo valor.
Atualizar o código para recarregar segredos e certificados do Key Vault
No arquivo Program.cs, atualize o método AddAzureAppConfiguration
para configurar um intervalo de atualização para seu certificado do Key Vault usando o método SetSecretRefreshInterval
. Com essa alteração, seu aplicativo recarregará o par de chaves pública-privada para ExampleCertificate a cada 12 horas.
config.AddAzureAppConfiguration(options =>
{
options.Connect(settings["ConnectionStrings:AppConfig"])
.ConfigureKeyVault(kv =>
{
kv.SetCredential(new DefaultAzureCredential());
kv.SetSecretRefreshInterval("TestApp:Settings:KeyVaultCertificate", TimeSpan.FromHours(12));
});
});
O primeiro argumento no método SetSecretRefreshInterval
é a chave da referência do Key Vault na Configuração de Aplicativos. Esse argumento é opcional. Se o parâmetro de chave for omitido, o intervalo de atualização será aplicado a todos os segredos e certificados que não tiverem intervalos de atualização individuais.
O intervalo de atualização define a frequência com que os segredos e certificados serão recarregados do Key Vault, independentemente de eventuais alterações nos valores deles no Key Vault ou na Configuração de Aplicativos. Se quiser recarregar os segredos e certificados quando o valor deles for alterado na Configuração de Aplicativos, você poderá monitorá-los usando o método ConfigureRefresh
. Para obter mais informações, confira como usar a configuração dinâmica em um aplicativo ASP.NET Core.
Escolha o intervalo de atualização de acordo com o atraso aceitável depois que seus segredos e certificados tiverem sido atualizados no Key Vault. Também é importante considerar os limites de serviço do Key Vault para evitar a limitação.
Limpar os recursos
Se não deseja continuar usando os recursos criados neste artigo, exclua o grupo de recursos que você criou aqui para evitar encargos.
Importante
A exclusão de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Não exclua acidentalmente grupo de recursos ou recursos incorretos. Se tiver criado os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que você deseja manter, exclua cada um individualmente do respectivo painel em vez de excluir o grupo de recursos.
- Entre no portal do Azure e selecione Grupos de recursos.
- Na caixa Filtrar por nome..., digite o nome do seu grupo de recursos.
- Na lista de resultados, selecione o nome do grupo de recursos para conferir uma visão geral.
- Selecione Excluir grupo de recursos.
- Você receberá uma solicitação para confirmar a exclusão do grupo de recursos. Insira o nome do grupo de recursos para confirmar e selecione Excluir.
Após alguns instantes, o grupo de recursos e todos os recursos dele são excluídos.
Próximas etapas
Neste tutorial, você aprendeu a configurar seu aplicativo para recarregar automaticamente os segredos e certificados do Key Vault. Para saber como usar uma Identidade Gerenciada para simplificar o acesso à Configuração de Aplicativos e ao Key Vault, passe para o próximo tutorial.