Azure Key Vault: gestão centralizada de segredos e certificados
O Azure Key Vault é o serviço de gestão de segredos, chaves criptográficas e certificados da Azure. Centraliza o que de outro modo estaria espalhado por variáveis de ambiente, ficheiros de configuração e bases de dados — com auditoria completa de cada acesso.
Criar Key Vault e adicionar segredos
az keyvault create \
--name kv-bconcepts-prod \
--resource-group rg-shared \
--location westeurope \
--enable-rbac-authorization true # RBAC em vez de Access Policies (recomendado)
az keyvault secret set \
--vault-name kv-bconcepts-prod \
--name "SqlConnectionString" \
--value "Server=sqlprod.database.windows.net;..."
Controlo de acesso com RBAC
az role assignment create \
--role "Key Vault Secrets User" \
--assignee <managed-identity-principal-id> \
--scope /subscriptions/.../vaults/kv-bconcepts-prod
Aceder a segredos em Python
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
credential = SecretClient(
vault_url="https://kv-bconcepts-prod.vault.azure.net/",
credential=DefaultAzureCredential()
)
conn_str = credential.get_secret("SqlConnectionString").value
Referências em App Service / Function App
Configure referências directas no portal em Application Settings:
@Microsoft.KeyVault(SecretUri=https://kv-bconcepts-prod.vault.azure.net/secrets/SqlConnectionString/)
A aplicação lê o valor como se fosse uma variável de ambiente normal — o Key Vault é transparente.
Soft Delete e Purge Protection
Active sempre --enable-soft-delete (default em novos vaults) e --enable-purge-protection. Um segredo eliminado acidentalmente pode ser recuperado dentro do período de retenção (7-90 dias).
Conclusão
O Key Vault é indispensável em qualquer arquitectura Azure de produção. Substitui todas as outras formas de armazenar segredos, oferece auditoria completa e integra-se nativamente com Managed Identities para autenticação zero-credenciais.