如何在GCP组织范围内限制特定角色仅分配给用户创建的服务账号?
GCP - IAM:如何在组织(ORG)下所有项目中限制特定角色分配给用户创建的服务账号?
此限制仅适用于用户创建的服务账号(user created service accounts)。
核心解决方案:组织级IAM拒绝策略
要覆盖整个组织下的所有项目并精准限制目标主体,直接使用组织级IAM拒绝策略即可实现,无需逐个配置项目。
具体配置步骤
进入组织级拒绝策略页面
以组织管理员身份登录GCP控制台,导航至IAM & Admin > 拒绝策略,确保选中组织根节点(而非单个项目)。创建拒绝规则
新建拒绝策略时,配置以下关键项:- 拒绝权限:指定
iam.roles.bind,并关联你要限制的特定角色(例如roles/compute.admin,可同时添加多个目标角色)。 - 主体过滤条件:通过表达式精准匹配用户创建的服务账号,排除GCP系统托管的服务账号,表达式示例:
resource.type == "iam.googleapis.com/ServiceAccount" && !resource.name.endsWith("@gcp-sa-iam.iam.gserviceaccount.com") && !resource.name.startsWith("projects/-/serviceAccounts/service-") - 作用范围:设置为整个组织,确保所有子项目自动继承该限制。
- 拒绝权限:指定
保存并生效策略
确认配置无误后保存策略,通常几分钟内即可在全组织范围内生效。
验证效果
- 尝试在组织内任意项目中,将指定角色分配给用户创建的服务账号,系统会返回权限拒绝提示。
- 分配该角色给普通用户、GCP系统服务账号则不受此限制。
内容的提问来源于stack exchange,提问作者user2284636
相关产品推荐
相关产品推荐

