 
        Gerenciando o ciclo de vida de secrets no Azure Key Vault: rotação, expiração e automação
Introdução
Em ambientes modernos e distribuídos, a gestão segura de segredos, chaves e certificados é essencial para garantir a integridade e confidencialidade das aplicações. O Azure Key Vault é a solução nativa do Azure para armazenar e controlar o ciclo de vida desses segredos.
Neste artigo, vamos abordar como:
- Armazenar e proteger secrets no Key Vault
- Configurar alertas de expiração
- Implementar rotação automática de segredos
- Integrar com serviços como App Service, AKS, Azure Arc, entre outros
- Auditar o uso e acesso aos segredos
- Aplicar governança com RBAC e Azure Policy
O que é o Azure Key Vault?
O Azure Key Vault é um cofre seguro para armazenar:
- Secrets: tokens, strings de conexão, senhas
- Keys: chaves criptográficas para proteção de dados
- Certificates: SSL/TLS, integrados com CAs públicas
🔗 Documentação oficial – Azure Key Vault
Armazenando secrets com controle de acesso
Exemplo via CLI:
az keyvault create --name meuCofre --resource-group rg-segurança --location brazilsouth
az keyvault secret set --vault-name meuCofre --name "DbConnectionString" --value "Server=db;User=admin;Pwd=123!"Controle de acesso:
- RBAC (recomendado) – Gerenciado pelo Azure AD
- ACLs (legacy) – Políticas próprias do Key Vault
Use RBAC para alinhar com identidade centralizada, PIM e logs centralizados.
Gerenciando expiração de secrets
Você pode definir a data de expiração (expiry) no momento da criação de um secret:
az keyvault secret set --vault-name meuCofre \
  --name "DbPassword" \
  --value "Senha@123" \
  --expires "2025-01-01T00:00:00Z"
Ativando alertas de expiração
- Ative Azure Monitor diagnostic settings no Key Vault
- Envie logs para Log Analytics
- Crie alertas para identificar secrets expirando em 30 dias:
AzureDiagnostics
| where ResourceType == "VAULTS" and OperationName == "SecretGet"
| extend expiration = parse_datetime(parse_json(Properties).attributes.exp)
| where expiration < now() + 30d
Rotação automática de secrets
Existem duas abordagens principais:
- Automação personalizada (Event Grid + Function)

- Rotação automática de certificados (nativa)
Para certificados gerenciados por CA:
az keyvault certificate create \
  --vault-name meuCofre \
  --name "cert-prod" \
  --policy "@policy.json"
Você define:
- Emissor (CA)
- Período de validade
- Intervalo de renovação
Integrações nativas
| Serviço | Integração com Key Vault | 
|---|---|
| App Service | Referência direta a secrets no app settings | 
| Azure Functions | Igual ao App Service | 
| AKS | Secrets via CSI driver | 
| Azure Arc | Workload on-prem pode acessar secrets via token | 
| Logic Apps / DevOps | Acesso por managed identity | 
Exemplo – App Service com referência a secret:
@Microsoft.KeyVault(SecretUri=https://meucofre.vault.azure.net/secrets/DbPassword/...)
Auditoria e governança
Logs de acesso:
- Ative diagnostic settings
- Envie para Log Analytics ou SIEM
- Consulte:
AzureDiagnostics
| where ResourceType == "VAULTS" and OperationName == "SecretGet"
| summarize contagem = count() by Identity, ResourcePolíticas de governança:
- Use Azure Policy para:- Exigir que secrets estejam no Key Vault
- Impedir secrets hardcoded em App Service
- Verificar expiração configurada
 
Boas práticas
| Recomendação | Motivo | 
|---|---|
| Use RBAC + PIM | Controle de identidade + acesso temporário | 
| Defina expiresem todos os secrets | Segurança e auditoria de ciclo de vida | 
| Use integração com Event Grid | Automatização reativa e sem pooling | 
| Tenha um processo de rotação validado | Evita downtime e falhas de acesso | 
| Audite acessos frequentemente | Detecção de anomalias e acessos indevidos | 
Conclusão
O Azure Key Vault vai muito além de simplesmente armazenar secrets — ele permite implementar uma gestão completa de ciclo de vida com segurança, automação, auditoria e conformidade. Adotar práticas de rotação, expiração controlada e integração com infraestrutura como código é essencial para manter a saúde e segurança de aplicações modernas.
 
                             
       
       
          