[
  {
    "dia": "D-7",
    "acao": "Gerar o par e publicar o seletor inativo no DNS",
    "comando": "openssl genrsa -out dkim_private.pem 2048",
    "verificacao": "dig +short TXT s2026-q1._domainkey.captaindns.com"
  },
  {
    "dia": "D-7",
    "acao": "Armazenar a chave privada em KMS ou Vault",
    "comando": "vault kv put secret/dkim/captaindns/s2026-q1 private_key=@dkim_private.pem",
    "verificacao": "vault kv get secret/dkim/captaindns/s2026-q1"
  },
  {
    "dia": "D+0",
    "acao": "Comutar a assinatura MTA para o novo seletor",
    "comando": "aws sesv2 put-email-identity-dkim-signing-attributes --email-identity captaindns.com",
    "verificacao": "Verificar o cabeçalho DKIM-Signature das mensagens enviadas"
  },
  {
    "dia": "D+1",
    "acao": "Monitorizar os relatórios DMARC aggregate (rua) durante 24h",
    "comando": "N/A (parsing rua)",
    "verificacao": "auth_results/dkim/selector = s2026-q1 para 100% do tráfego"
  },
  {
    "dia": "D+7",
    "acao": "Confirmar 100% do tráfego assinado pelo novo seletor",
    "comando": "N/A (agregação rua 7 dias)",
    "verificacao": "Limiar alvo: menos de 1% sobre o seletor antigo"
  },
  {
    "dia": "D+8",
    "acao": "Retirar a assinatura MTA do seletor antigo (o TXT mantém-se publicado)",
    "comando": "Editar KeyTable e SigningTable do OpenDKIM e recarregar",
    "verificacao": "Nenhuma mensagem de saída assinada com o seletor antigo"
  },
  {
    "dia": "D+30",
    "acao": "Eliminar o TXT do seletor antigo e destruir a chave privada em KMS",
    "comando": "curl -X DELETE Cloudflare API dns_records depois vault kv destroy",
    "verificacao": "dig +short TXT s2025-q4._domainkey.captaindns.com devolve vazio"
  }
]
