Skip to content
Latchkey

O Que É uma OIDC Role para o GitHub Actions?

Uma OIDC role é uma IAM role cuja trust policy aceita um token de curta duração que o GitHub emite para seu workflow, permitindo que o pipeline implante na AWS sem credenciais armazenadas.

Armazenar chaves de nuvem de longa duração em secrets de CI é um risco de segurança. O OIDC (OpenID Connect) as substitui por confiança federada: o GitHub atua como identity provider, seu workflow obtém um token assinado descrevendo o run, e a AWS troca esse token por credenciais temporárias. O resultado são deploys sem keys e auditáveis.

Como funciona a troca de token

Durante um workflow, o GitHub cunha um token OIDC assinado contendo claims como o repository, a branch e o environment. O workflow o apresenta ao AWS STS, que verifica o token contra a trust policy da role e, se corresponder, retorna credenciais temporárias.

Configurando a confiança

  • Registre o GitHub como um OIDC identity provider no IAM.
  • Crie uma role cuja trust policy referencie aquele provider.
  • Restrinja a confiança a repos, branches ou environments específicos via a claim sub.
  • Anexe uma permission policy de least-privilege para o que o deploy precisa.

O que as claims permitem restringir

Como o token carrega o repo, ref e environment, a trust policy pode exigir, digamos, apenas a branch main de um repository. Um workflow vazado de outro repo não consegue assumir a role, o que reduz drasticamente o blast radius.

Por que as equipes adotam

O OIDC remove o secret de maior valor do CI: as chaves de nuvem. Não há nada para rotacionar, nada para vazar, e toda assunção é registrada. O mesmo padrão funciona para Google Cloud (Workload Identity Federation) e Azure (federated credentials).

Papel no CI/CD

No GitHub Actions você concede ao workflow a permissão id-token: write, então usa a action configure-aws-credentials com um role ARN. A action lida com a troca de token e exporta credenciais temporárias para os passos seguintes. Nenhuma access key da AWS jamais toca os secrets do seu repositório.

Principais conclusões

  • O OIDC permite que o GitHub Actions assuma uma AWS role via um token assinado, sem keys armazenadas.
  • A trust policy pode restringir o acesso a repos, branches ou environments específicos.
  • O mesmo padrão de federação existe para Google Cloud e Azure.

Guias relacionados