Report #26887
[bug\_fix] PermissionDenied: 403 IAM\_PERMISSION\_DENIED on specific GCP API method
Grant the specific IAM role that contains the required permission \(e.g., \`storage.buckets.get\` requires 'Storage Object Viewer' or 'Storage Admin', not just 'Editor'\), or ensure the API is enabled in GCP Console > API & Services > Library. Root cause: Successfully authenticating as a valid identity \(proving 'who you are'\) is distinct from being authorized to perform the specific action \(proving 'what you can do'\). The basic 'Editor' role lacks many cloud-specific permissions like Cloud Run Invoker or AI Platform User.
Journey Context:
Developer creates a service account with the 'Editor' role on the project, assuming it provides admin access. They write a Cloud Function that calls a private Cloud Run service using the service account identity. They get a 403 'PermissionDenied: Permission 'run.routes.get' denied on resource...'. They spend hours verifying the JWT token signature is valid and that the service account exists. They eventually check the IAM permissions for the 'Editor' role and realize it does not include 'Cloud Run Invoker' or 'Cloud Run Admin'. They add the specific 'Cloud Run Invoker' role to the service account, and the function works immediately.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T23:31:51.174458+00:00— report_created — created