Um segredo vazou no repositório: o que fazer
Você acabou de descobrir uma chave commitada. A ordem importa mais que a velocidade — e a primeira coisa não é apagar o commit.
1. Rotacione agora
Seção intitulada “1. Rotacione agora”Enquanto a credencial for válida, todo o resto é secundário.
# AWS: desative primeiro (reversível), crie a nova, migre, só então apagueaws iam update-access-key --access-key-id AKIA... --status Inactive --user-name ci-lojaaws iam create-access-key --user-name ci-loja# depois de tudo migrado:aws iam delete-access-key --access-key-id AKIA... --user-name ci-loja
# GitHub: revogue o token na página de tokens ou pela API# Banco: ALTER USER <usuario> WITH PASSWORD '<nova>';# Cofre: vault kv put segredo/loja/api token=<novo>Desativar antes de apagar dá reversibilidade: se algo parar de funcionar, você reativa por minutos enquanto conserta. Apagar direto pode transformar um incidente de segurança em um incidente de disponibilidade.
Se a credencial for de terceiro (gateway de pagamento, provedor de e-mail), revogue pelo painel deles e avise o suporte — muitos têm procedimento próprio.
2. Avalie o que foi exposto e por quanto tempo
Seção intitulada “2. Avalie o que foi exposto e por quanto tempo”# desde quando o segredo está no históricogit log --oneline -S 'AKIA' --all | tail -5git log --format='%H %ad %an' --date=iso -1 <commit-do-vazamento>Registre: qual credencial, qual escopo de permissão, desde quando, e quem teve acesso ao repositório nesse período. Essas quatro respostas determinam o tamanho do problema — uma chave somente leitura exposta por uma hora não é o mesmo que uma chave de administrador exposta por oito meses.
3. Procure uso indevido
Seção intitulada “3. Procure uso indevido”# AWS: a chave foi usada? de onde?aws cloudtrail lookup-events \ --lookup-attributes AttributeKey=AccessKeyId,AttributeValue=AKIA... \ --start-time 2026-08-01 --max-results 50
# GitHub: eventos de auditoria da organizaçãogh api /orgs/empresa/audit-log --paginate -f phrase='action:git.clone'O que procura: acesso de IP ou país fora do padrão, horário incomum, chamadas de API que o pipeline nunca faz (listar buckets, criar usuário, alterar política). Se encontrar qualquer coisa assim, isso deixa de ser rotação de credencial e vira incidente de segurança — acione o processo de incidentes e o time de segurança.
4. Limpe a exposição — sabendo que não basta
Seção intitulada “4. Limpe a exposição — sabendo que não basta”# ferramenta recomendada hoje para reescrever históricopip install git-filter-repogit filter-repo --path config/credenciais.env --invert-pathsgit push --force --all && git push --force --tagsO que a reescrita não resolve: clones já existentes, forks, o cache de commits do GitHub (peça a remoção pelo suporte), builds antigos do CI com o valor em log, e a memória de quem viu.
Por isso a ordem deste guia: rotação é a correção; reescrita é higiene. Avise o time antes
do --force, porque todo mundo precisa refazer o clone.
5. Comunique
Seção intitulada “5. Comunique”- Time dono do serviço e time de segurança.
- Quem opera os sistemas que usam aquela credencial (a rotação pode quebrá-los).
- Se houver dado pessoal envolvido, o encarregado pela LGPD — a avaliação de incidente é dele, não sua.
- Registre em postmortem sem procurar culpado: a pergunta é por que era possível commitar aquilo.
6. Previna a próxima vez
Seção intitulada “6. Previna a próxima vez”Duas camadas, porque uma sempre falha:
# 1. antes do commit, na máquina de quem escrevegitleaks protect --staged --redact# como hook de pre-commit, para todo o timepre-commit install# 2. no CI, sobre o histórico completo- name: Varredura de segredos run: gitleaks detect --redact --log-opts="--all" --exit-code 1Ative também a varredura nativa do provedor (GitHub secret scanning e push protection, que bloqueia o push antes de o segredo entrar). E ataque a causa: se o segredo estava no repositório, é porque não havia um caminho fácil para fazer diferente — veja tirar segredos do Git em GitOps e deploy sem chave com OIDC.
Checklist de pronto
Seção intitulada “Checklist de pronto”- Credencial rotacionada e a antiga revogada.
- Escopo e janela de exposição documentados.
- Logs de auditoria verificados para uso indevido.
- Histórico limpo (opcional) com o time avisado.
- Segurança, donos dos sistemas e encarregado comunicados.
- Varredura no pre-commit e no CI ativa.
- Postmortem com ação estrutural, não com aviso de “tomar cuidado”.