Skip to content
Latchkey

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.

Guias relacionados