Gerenciando o ciclo de vida de secrets no Azure Key Vault: rotação, expiração e automação

Gerenciando o ciclo de vida de secrets no Azure Key Vault: rotação, expiração e automação

23 de Setembro de 2025

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

  1. Ative Azure Monitor diagnostic settings no Key Vault
  2. Envie logs para Log Analytics
  3. 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:

  1. Automação personalizada (Event Grid + Function)
  1. 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çoIntegração com Key Vault
App ServiceReferência direta a secrets no app settings
Azure FunctionsIgual ao App Service
AKSSecrets via CSI driver
Azure ArcWorkload on-prem pode acessar secrets via token
Logic Apps / DevOpsAcesso 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, Resource

Polí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çãoMotivo
Use RBAC + PIMControle de identidade + acesso temporário
Defina expires em todos os secretsSegurança e auditoria de ciclo de vida
Use integração com Event GridAutomatização reativa e sem pooling
Tenha um processo de rotação validadoEvita downtime e falhas de acesso
Audite acessos frequentementeDetecçã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.

Confira mais:

Fique por dentro das novidades

Assine nossa newsletter e receba as últimas atualizações e artigos diretamente em seu email.