DevSecOps

Segredos no CI/CD: menos chaves fixas, mais identidade

Como reduzir a dependência de chaves duradouras, restringir credenciais por etapa e usar OIDC com uma política de confiança explícita.

Uma chave de produção pode começar como uma solução rápida e terminar espalhada por variáveis, notebooks e scripts antigos. Quando ninguém sabe onde ela é usada, a rotação vira um risco operacional. O primeiro passo é recuperar o controle desse ciclo de vida.

A OWASP reúne orientações para gestão de segredos. O GitLab documenta ID tokens com OIDC, incluindo emissor, identidade, público e expiração. Quando o serviço de destino oferece federação compatível, essa identidade pode ser usada para obter acesso sem armazenar uma chave de nuvem permanente no pipeline.

Faça um inventário com finalidade e responsável

Como roteiro proposto, liste cada credencial, o serviço acessado, a finalidade, o ambiente e o responsável. Registre prazo de validade e procedimento de revogação. O inventário deve apontar para o local protegido de armazenamento, sem reproduzir o segredo.

Separe ambientes e funções. Uma etapa que publica um pacote não precisa, por consequência, de acesso ao banco de produção. Evite contas compartilhadas com privilégios amplos: elas dificultam descobrir qual processo executou uma ação.

Troque confiança ampla por uma identidade específica

Em um exemplo hipotético de deploy, o serviço de destino aceita a identidade de um job de um projeto conhecido, executado a partir da referência autorizada. O acesso concedido permite publicar naquele ambiente e não administrar toda a conta.

Para isso funcionar, o destino deve validar assinatura, emissor, público, validade e atributos usados na política de confiança. Aceitar qualquer token do mesmo provedor é amplo demais. OIDC autentica uma identidade; a política do destino continua responsável por definir o que ela pode fazer.

Credenciais temporárias também precisam de proteção

  • Entregue o token apenas ao job que necessita dele.
  • Não imprima credenciais em logs, relatórios ou comandos de diagnóstico.
  • Revise scripts de terceiros que executam no mesmo contexto.
  • Não conceda acesso de produção a contribuições não confiáveis.
  • Teste se projeto, referência ou público incorretos são recusados.

Uma validade curta reduz a janela de uso, mas não impede que um job comprometido use o token enquanto ele está válido. O isolamento do runner e a revisão do código executado continuam necessários.

Planeje a transição sem interromper o serviço

Nem todo sistema aceita federação. Para os que exigem uma credencial duradoura, use armazenamento apropriado, escopo reduzido, distribuição controlada e rotação ensaiada. A escolha precisa considerar o serviço real, sem criar infraestrutura adicional que a equipe não consegue manter.

Antes de retirar uma chave antiga, identifique seus consumidores e valide o novo caminho em ambiente adequado. Depois revogue a anterior e confira se ela deixou de autenticar. Apagar a variável do CI não revoga uma credencial no provedor.

Se houver exposição, trate o segredo como comprometido e siga o procedimento de revogação e investigação. Remover o texto do último commit não desfaz cópias, logs ou versões anteriores do repositório.

Fontes e referências

OWASP — Secrets Management Cheat Sheet
https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html

GitLab — OpenID Connect authentication using ID tokens
https://docs.gitlab.com/ci/secrets/id_token_authentication/

Fontes consultadas em 30/10/2026. Exemplos e roteiros de implantação são propostas práticas, não relatos de resultados de clientes.

Converse sobre este insight

Seu comentário aparece após moderação. Seu e-mail não será publicado.