Utilizando #KeyVault nas Functions da #Azure. (#devops #AzureCloudShell)

O KeyVault da Azure é uma excelente forma de se utilizar, de forma segura, valores sensíveis (tipo strings de conexão, chaves de api, etc). Neste post mostro como “ligar” os dois.

Os passos abaixo são os necessários para que a Function consiga utilizar os valores que estão salvos no KeyVault. Pode ser que, para o seu processo, alguns passos sejam um pouco diferentes.

 

1. Habilitar Identity na Function

Apenas com o identity habilitado, você vai conseguir conceder as permissões necessárias para a function no KeyVault. Para fazer isso:

  1. Acesse o Portal Azure
  2. Acesse o recurso da function
  3. No menu lateral, escolha a opção Identity
  4. Clique em System assigned
  5. Em Status, mude para On
  6. Clique em salvar.

 

Alternativamente, você pode utilizar o Azure Cloud Shell:

az webapp identity assign -g <NOME DO RESOURCE GROUP> -n <NOME DO RECURSO DA FUNCION>

 

2. Incluir permissões no KeyVault

  1. Acesse o Portal Azure
  2. Acesse o recurso do KeyVault
  3. Clique em Access Policies
  4. Clique em + Add Access Policy
  5. Preencha os campos necessários
    1. Se você só utilizar Secrets, entao marque “Key Management Operations” com Get e List.
    2. Observação: Esta é só uma sugestão de configuração. Analise seu caso antes de configurar este ponto.
  6. No campo Principal, clique no link “none selected” e na tela que abrir, selecione a opção que corresponde ao nome do recurso da sua function e clique em Select
  7. Clique em Add para salvar.

 

Ou use o Cloud Shell:

az keyvault set-policy --resource-group USAZU1VALERS365 --name <NOME DO RECURSO DO KEYVAULT> --object-id <ID DO PRINCIPAL> --secret-permissions get list

(O valor de <id do principal> voce consegue no primeiro passo deste tutorial.)

 

Pronto. Agora você consegue incluir chaves em um KeyVault e utilizar os valores dela na sua aplicação. Como usar estes valores vai depender de como o seu sistema foi construído, mas pode ser tão simples quanto buscar uma variável de ambiente.

 

Espero ter ajudado!

 

Referencias:

  1. https://portal.azure.com/#@globalvale.onmicrosoft.com/resource/subscriptions/4f3a3475-f736-43a2-9195-88ccfbd3db07/resourceGroups/USAZU1VALERS365/providers/Microsoft.Web/sites/Fn-vale-ecos-iema-reports-dev/configuration
  2. https://portal.azure.com/#@globalvale.onmicrosoft.com/resource/subscriptions/4f3a3475-f736-43a2-9195-88ccfbd3db07/resourceGroups/USAZU1VALERS365/providers/Microsoft.Web/sites/Fn-vale-ecos-iema-reports-dev/msi
The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in Conhecimento Técnico, Dev and tagged , , , .