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

跨项目在Workflow中创建CloudRun时模拟ServiceAccount的权限问题

解决跨项目Workflow创建CloudRun时模拟目标服务账号的权限问题

问题概述

在project1的Workflow中尝试创建指定project2中sa2作为服务账号的CloudRun实例时,触发403权限拒绝错误,提示缺少iam.serviceaccounts.actAs权限。

错误原因

当前仅在project1中为sa1配置了角色,但扮演跨项目服务账号的权限需要在目标服务账号所属的项目(project2)中配置:sa1@project1需要被授权拥有扮演sa2@project2的权限,该权限并未自动继承。

解决方案

通过gcloud命令行配置

  1. 切换到project2的配置上下文:
gcloud config set project project2
  1. 为sa1@project1授予在sa2@project2上的Service Account User角色(该角色包含iam.serviceaccounts.actAs权限):
gcloud iam service-accounts add-iam-policy-binding sa2@project2.iam.gserviceaccount.com \
  --member="serviceAccount:sa1@project1.iam.gserviceaccount.com" \
  --role="roles/iam.serviceAccountUser"

通过Google Cloud控制台配置

  1. 登录Google Cloud控制台,切换到project2
  2. 进入 IAM与Admin > 服务账号 页面,找到sa2@project2
  3. 点击该服务账号右侧的编辑按钮,选择添加权限
  4. 在成员输入框中填入sa1@project1.iam.gserviceaccount.com,在角色列表中选择 IAM > Service Account User
  5. 点击保存完成配置

验证要点

  • 确保Workflowworkflow1的运行服务账号为sa1@project1
  • 创建CloudRun时需指定serviceAccountName为sa2的完整邮箱地址(sa2@project2.iam.gserviceaccount.com)
  • 权限配置后需等待1-2分钟生效,再重新测试Workflow

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:15:33