Skip to content
Latchkey

O Que É uma GCP Service Account? Identidades Não Humanas do GCP

Uma GCP service account é uma identidade para software em vez de uma pessoa: aplicações, VMs e pipelines autenticam como uma service account para chamar as APIs do Google Cloud.

Quando o código precisa falar com o Google Cloud, ele o faz como uma service account. Diferente de uma conta de usuário atrelada a um humano, uma service account pertence a uma workload e recebe roles de IAM nos recursos de que precisa. Entender service accounts é fundamental para fazer deploy no GCP com segurança a partir do CI.

O que é uma service account

Uma service account é um principal de IAM identificado por um endereço de e-mail. Você concede a ela roles (como Cloud Run Admin) em projects ou recursos, e qualquer workload agindo como ela herda essas permissões. É o equivalente no GCP de uma IAM role da AWS para workloads.

Como as workloads a usam

  • Anexada a uma VM ou serviço Cloud Run para que o código rode como ela automaticamente.
  • Impersonada por outra identidade com permissão para isso.
  • Federada via Workload Identity Federation de fora do GCP.

O problema com chaves

Uma service account pode ter uma chave JSON baixável, mas essas chaves são secrets de longa duração que vazam e raramente são rotacionadas. O Google agora as desencoraja. O padrão preferido é sem chave: anexe a account à workload ou use federation.

Menor privilégio

Conceda a uma service account apenas as roles de que ela precisa, apenas nos recursos que ela toca. Uma account de deploy que pode atualizar um único serviço Cloud Run é bem mais segura do que uma account de nível owner, e limita o dano se ela for comprometida.

Papel no CI/CD

Um pipeline age como uma service account para enviar imagens e fazer deploy. A forma moderna e sem chave a partir do GitHub Actions é o Workload Identity Federation: o workflow apresenta um token do GitHub, o GCP o troca por credenciais de curta duração para a service account, e nenhuma chave JSON é armazenada.

Principais conclusões

  • Uma service account é uma identidade não humana do GCP para workloads e pipelines.
  • Chaves JSON de longa duração são desencorajadas; prefira attachment sem chave ou federation.
  • Pipelines fazem deploy agindo como uma service account de menor privilégio via federation.

Guias relacionados