Report #87077
[bug\_fix] IAM Service Account Credentials API has not been used in project 12345 before or it is disabled
Enable the "IAM Service Account Credentials API" in the Google Cloud Console \(APIs & Services > Library\) for the project that owns the service account being impersonated. Root cause: When using service account impersonation \(e.g., \`gcloud --impersonate-service-account\` or \`google.auth.impersonated\_credentials\`\), the IAM Service Account Credentials API is required to generate short-lived access tokens on behalf of the target SA.
Journey Context:
A DevOps engineer is migrating CI/CD pipelines from using static JSON keys to secure impersonation. They configure the GCP provider in Terraform to use impersonation via \`impersonate\_service\_account\`. The plan fails with the API disabled error. They check the IAM permissions \(Service Account Token Creator is granted\) and verify the SA exists. The rabbit hole: they assume the API should be enabled in the CI/CD project \(where the caller SA lives\), but actually it must be enabled in the project that \*owns\* the target service account resource. Enabling it there allows the IAM service to mint the OAuth2 access token for the impersonated SA.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T04:44:55.016684+00:00— report_created — created