You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP项目迁移至生产后Cloud Run构建IAM权限报错求助

问题根因

cloud-run-pubsub-invoker@<生产项目ID>.iam.gserviceaccount.com 是GCP官方托管的服务账号,仅当对应项目首次为Cloud Run服务配置Pub/Sub触发器时会自动创建,无法手动在IAM页面直接添加不存在的托管服务账号,因此会触发身份校验报错。
部署时报错的核心原因是Cloud Build服务账号没有权限模拟该invoker服务账号完成Cloud Run的绑定部署操作。

解决方案步骤
  • 第一步:若生产项目尚未部署过任何Cloud Run服务,先部署一个官方hello world测试服务;之后给该服务手动创建一个测试用Pub/Sub触发器,触发系统自动生成目标invoker服务账号。操作完成后可按需删除测试触发器和测试服务,生成的托管服务账号会永久保留在项目中。
  • 第二步:为Cloud Build服务账号授予该invoker服务账号的模拟权限,需在invoker服务账号的权限配置页操作,也可直接执行以下gcloud命令:
gcloud iam service-accounts add-iam-policy-binding cloud-run-pubsub-invoker@<替换为生产项目ID>.iam.gserviceaccount.com \
  --member=serviceAccount:<替换为你的Cloud Build服务账号邮箱,即报错中的project-number@cloudbuild.gserviceaccount.com> \
  --role=roles/iam.serviceAccountUser \
  --project=<替换为生产项目ID>
  • 第三步:重新触发Cloud Build部署流程,验证部署是否正常。
补充说明

你之前为Cloud Build账号配置的Cloud Run Admin等全局权限,不会自动覆盖单个服务账号的模拟权限,必须单独授予ServiceAccountUser角色才能获取报错中缺失的iam.serviceaccounts.actAs权限。

内容的提问来源于stack exchange,提问作者p_mo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 02:57:03