O Que É OIDC em CI?
O OIDC permite que seu job de CI prove sua identidade a um provedor de nuvem e obtenha um token de curta duração - assim você nunca armazena credenciais de nuvem de longa duração como secrets.
O OpenID Connect (OIDC) é uma camada de identidade sobre o OAuth 2.0. Na CI, ele substitui as chaves de nuvem armazenadas por uma relação de confiança: a plataforma de CI emite um token assinado descrevendo o job, e o provedor de nuvem troca esse token por credenciais temporárias.
O problema com chaves armazenadas
Chaves de acesso à nuvem de longa duração em secrets de CI são um risco: raramente são rotacionadas, concedem acesso permanente e um vazamento compromete sua conta até que alguém perceba. O OIDC as remove por completo.
Como a troca funciona
- A plataforma de CI cunha um token de identidade JWT assinado descrevendo o job (repo, branch, workflow).
- O provedor de nuvem verifica a assinatura e confere as claims contra uma política de confiança.
- Se corresponder, o provedor retorna credenciais de curta duração restritas a uma role.
Um pequeno exemplo
No GitHub Actions você define permissions: id-token: write, depois usa a action de login na nuvem com um ARN de role. A action busca o token OIDC e o troca com o AWS STS por credenciais temporárias - sem nenhum ${{ secrets.AWS_ACCESS_KEY_ID }} em lugar algum.
Por que é mais seguro
Os tokens são cunhados por job e expiram em minutos, então não há nada permanente a roubar. A política de confiança fixa exatamente qual repositório e branch podem assumir qual role, de modo que um fork ou um repositório diferente não pode.
Fixe as condições de confiança
A segurança repousa sobre a política de confiança. Restrinja-a ao seu repositório exato e, idealmente, à branch ou environment. Uma condição frouxa (qualquer repo na organização) permitiria que um workflow não relacionado assumisse sua role.
Principais conclusões
- O OIDC troca chaves de nuvem armazenadas por tokens de curta duração, por job.
- O provedor de nuvem verifica claims assinadas e retorna credenciais temporárias.
- As políticas de confiança fixam qual repositório e branch podem assumir qual role.