Utilizando #KeyVault nas Functions da #Azure. (#devops #AzureCloudShell)
Overview
Bem-vindo ao mundo da segurança e eficiência na cloud! Neste post decifraremos os mistérios por trás da integração entre Azure KeyVault e Azure Functions. Com um guia detalhado, eu te conduzirei pelos passos necessários para usar valores sensíveis armazenados no KeyVault em suas Functions de forma segura e prática. Seja para proteger strings de conexão ou chaves de API, este tutorial é seu primeiro passo em direção a uma gestão mais segura dos seus recursos na cloud. Então, vamos nessa?
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:
- Acesse o Portal Azure
- Acesse o recurso da function
- No menu lateral, escolha a opção Identity
- Clique em System assigned
- Em Status, mude para On
- 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
- Acesse o Portal Azure
- Acesse o recurso do KeyVault
- Clique em Access Policies
- Clique em + Add Access Policy
- Preencha os campos necessários
- Se você só utilizar Secrets, entao marque “Key Management Operations” com Get e List.
- Observação: Esta é só uma sugestão de configuração. Analise seu caso antes de configurar este ponto.
- 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
- 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:
- 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
- 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