为以其他服务账号身份运行的服务账号授予 Service Account User 角色
本页是为即将到来的授权变更做好准备的一部分。其中列出了哪些人需要 Service Account User (roles/iam.serviceAccountUser) 角色,并说明了如何授予该角色。
哪些人需要 Service Account User 角色
以下主账号需要对所列服务账号具有 Service Account User 角色:
| 主体 | 服务账号 |
|---|---|
| 发布或测试集成的人员,包括部署自动化 | 集成功能的“以服务账号身份运行”服务账号 |
| 通过 API 或 Google Cloud 控制台同步或异步运行集成的人员 | 集成功能的“以服务账号身份运行”服务账号 |
| 触发器用于启动集成的服务账号:Cloud Scheduler 触发器的服务账号电子邮件地址,或 Cloud Pub/Sub 触发器、Eventarc 触发器或集成连接器事件触发器的服务账号。如果该账号本身就是以运行身份运行的服务账号,则无需提供。 | 集成功能的“以服务账号身份运行”服务账号 |
| 批准或恢复已暂停运行的任何人 | 集成功能的“以服务账号身份运行”服务账号 |
| 使用调用集成任务启动调用子集成的集成的人员。对于由具有服务账号的触发器启动的集成,这是触发器的服务账号。 | 子集成以运行身份运行的服务账号,以及调用集成的 |
| 调用集成在异步调用子集成时所用的以服务账号身份运行的账号。如果两个集成都使用同一服务账号,则无需此参数。 | 子集成的以服务账号身份运行 |
| 创建或修改服务账号或 OIDC 令牌类型的身份验证配置文件的任何人 | 配置文件中指定的服务账号 |
| 发布或测试使用相应配置文件的集成的人员 | 配置文件中指定的服务账号 |
运行使用相应配置文件的集成并到达相应任务的任何人。对于异步或预定运行,这是集成的运行身份服务账号,或者如果集成没有运行身份服务账号,则为 Application Integration 服务代理 service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com。在这种情况下,设置以服务账号身份运行是更好的修复方法。 |
配置文件中指定的服务账号 |
保存草稿不需要 Service Account User 角色。有关发布、测试和保存身份验证配置文件的检查已适用。对运行、审批、调用子集成以及运行使用身份验证配置文件的任务的检查会随着发布过程的进行而生效,因此请立即授予每一行的权限,以确保您的集成在这些检查生效后能够继续运行。
授予角色
如需向某人授予该角色,请运行以下命令:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
--project=SERVICE_ACCOUNT_PROJECT_ID \
--member='user:PRINCIPAL' \
--role='roles/iam.serviceAccountUser'
替换以下内容:
SERVICE_ACCOUNT:以运行身份服务账号的电子邮件地址,或身份验证配置文件中指定的账号的电子邮件地址SERVICE_ACCOUNT_PROJECT_ID:拥有服务账号的项目的 IDPRINCIPAL:用户的电子邮件地址。
对于其他主账号类型,请使用相应的 --member 前缀:
- 群组:使用
group:。我们建议您使用 Google 群组,而不是个人用户账号,以便在团队成员发生变化时简化访问权限管理。 - 服务账号:使用
serviceAccount:进行自动化流程、应用和触发服务账号。
如需在 Google Cloud 控制台中执行相同的操作,请执行以下操作:
- 前往 IAM 和管理 > 服务账号。
- 选择服务账号。
- 依次点击权限 > 授予访问权限。
如需授予权限,您需要拥有服务账号的 roles/iam.serviceAccountAdmin 权限。Project Owner 拥有此权限。如需了解详情,请参阅管理对服务账号的访问权限。
后续步骤
- 为无人值守的集成设置运行身份服务账号。
- 如果授权似乎不起作用,请参阅排查授权错误。