Olá,

Uma das primeiras coisas que aprendemos quando começamos a utilizar o Azure App Service é utilizar o menu de configurações para definir valores injetados como variáveis de ambiente. Esse é o caminho comum para definirmos valores para teste/produção nos nossos aplicativos sem nos preocuparmos se os valores serão alterados em arquivos de configuração como o appsettings.json do .net por exemplo.

Um efeito colateral é que qualquer pessoa com acesso ao App Service no Azure consegue ler os valores definidos no portal o que pode abrir algumas brechas de segurança, principalmente por expor strings de conexão com banco de dados.

Caso queira aprender como configurar autenticação no Sql Azure sem utilizar usuário e senha confira o artigo que escrevi sobre.

No artigo de hoje quero mostrar como podemos utilizar o Azure Key Vault para configurar os valores direto no App Service sem expor os mesmos.

What is Azure Key Vault?
Learn how Azure Key Vault safeguards cryptographic keys and secrets that cloud applications and services use.
Edit 2023-07-13: Gravei um video sobre o assunto para facilitar

Criando um novo Key Vault

Não vou passar por todos os pontos de criação, pois o serviço segue o padrão Microsoft de next/next/finish, mas caso preciso de um guia basta seguir a documentação oficial.

O único ponto de atenção é na aba de acessos, tenha certeza de garantir acesso completo ao seu usuário:

Criando um novo segredo

Após criado o Key Vault, selecione o menu Secrets e crie um novo valor. O nome não precisa ser o mesmo nome da entrada de configuração do aplicativo, então nesse ponto você pode nomear as variáveis da maneira que preferir.

Configurando o acesso do App Service ao Key Vault

Por padrão nenhum serviço do Azure terá acesso ao Key Vault, então precisamos criar uma identidade gerenciada para nosso App, caso tenha dúvidas de como fazer veja em detalhes no meu último artigo.

Com a identidade criada volte ao Key Vault e selecione Access policies e crie uma nova politica de acesso.

  • Em Permissões selecione Get e List
  • Em Principal selecione a Identidade criada, normalmente é o nome do App Service

Configurando o App Service

Agora que temos nosso segredo criado e demos permissão para nosso aplicativo acessar os valores dos segredos podemos configurar os valores direto pelo portal do Azure.

Antes de irmos ao App Service selecione o segredo criado, clique na versão corrente e copie o valor do campo Secret Identifier. Precisaremos da URL completa para configurar o acesso. A URL obedece o seguinte padrão:

https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<secret-version>

Agora no nosso App Service na aba Configuration iremos criar uma nova configuração:

O nome precisa ser igual ao que temos configurado no código a entrada de valor que tem uma formatação especial:

@Microsoft.KeyVault(SecretUri=uri)

Caso deseje usar sempre a versão mais recente do Key Vault remova o GUID do final da URL, ficando parecido com o exemplo:

@Microsoft.KeyVault(SecretUri=https://<key-vault-name>.vault.azure.net/secrets/<secret-name>)

Basta salvar as alterações que nosso App será reiniciado e os novos valores serão injetados pelo Key Vault sem necessidade de ficarmos copiando valores ou duplicando valores em serviços parecidos.

Espero que tenham curtido a dica
[]s e até a próxima.

💡
Podemos te ajudar com uma revisão 100% gratuita do seu ambiente cloud.
Share this post