Service Account Admin + Service Account Key Admin
Criar a service account e emitir para ela uma chave JSON de longa duração.
Por que isso é um conflito
Uma chave de service account é uma credencial que não expira, não tem MFA e vale fora do perímetro do Google. O Google separa as duas roles justamente porque criar a identidade e emitir a credencial dela são decisões distintas: a primeira é organização, a segunda é risco. Acumuladas, uma identidade produz do zero uma credencial permanente e a leva para onde quiser.
Risco
Persistência que sobrevive ao offboarding de quem a criou. A chave não aparece em revisão de acesso de usuários, não expira, e o uso dela nos logs é indistinguível do uso legítimo da service account.
Como mitigar
- Aplicar a constraint de organização iam.disableServiceAccountKeyCreation e abrir exceção por projeto, com justificativa e validade.
- Preferir Workload Identity Federation e impersonation de curta duração à chave JSON.
- Segregar a criação de service accounts da emissão de chaves.
- Inventariar chaves existentes e sua idade; alertar sobre CreateServiceAccountKey.
Frameworks aplicáveis
Referências
Roles relacionados