O Que É Workload Identity Federation?
A workload identity federation permite que uma carga de trabalho executando fora de uma nuvem - como um job de CI - assuma uma identidade dentro dessa nuvem usando seu próprio token, sem nenhuma chave armazenada.
Os provedores de nuvem querem conceder acesso a sistemas externos sem que esses sistemas guardem credenciais de longa duração. A workload identity federation estabelece uma relação de confiança para que um token externo (frequentemente um token OIDC) possa ser trocado por acesso à nuvem.
A ideia da federation
Em vez de criar um usuário de nuvem com chaves para o seu CI, você faz a federation: você diz à nuvem para confiar em tokens de um emissor externo (a plataforma de CI) e mapear seus claims para uma role ou identidade da nuvem.
Relação com o OIDC
O OIDC é o formato e o protocolo do token; a workload identity federation é a configuração do lado da nuvem que consome esses tokens. Na prática, você configura a federation uma vez e, então, cada job de CI usa o OIDC para assumir a identidade.
O que você configura
- Uma entrada de provedor de identidade que confia no emissor da plataforma de CI.
- Mapeamentos de atributos ou claims (repo, branch) usados em condições.
- Uma role ou identidade de serviço que a carga de trabalho federada pode assumir.
Um pequeno exemplo
No Google Cloud, você cria um workload identity pool com um provedor que confia no emissor do GitHub, mapeia o claim repository e o vincula a uma service account. Os jobs de CI desse repo então impersonam a service account sem nenhum arquivo de chave.
Nomenclatura entre nuvens
Cada provedor a nomeia de forma diferente - a AWS chama de IAM OIDC roles, o Google chama de workload identity federation, o Azure chama de federated credentials - mas o modelo é o mesmo: confiar em um emissor de token externo e mapear claims para uma identidade.
Principais conclusões
- A federation permite que cargas de trabalho externas assumam uma identidade na nuvem sem chaves armazenadas.
- O OIDC fornece o token; a federation é a configuração de confiança do lado da nuvem.
- Você mapeia claims do token para uma role e limita o acesso por repo e branch.