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

如何在GCP中为除单个子文件夹外的所有子文件夹分配组织策略及角色

解决GCP中两项权限/策略分配排除指定子文件夹的需求

一、组织策略分配排除指定子文件夹

GCP组织策略支持通过父层级规则例外或子层级覆盖两种方式,实现排除指定子文件夹的需求:

方案1:父层级策略添加排除规则

直接在父文件夹的组织策略中配置例外,无需在子文件夹单独操作:

  1. 创建策略配置文件(如org-policy-config.yaml),替换占位符为实际ID:
constraint: constraints/compute.disableSerialPortAccess # 替换为目标约束ID
listPolicy:
  allValues: ALLOW # 根据约束需求设置ALLOW/DENY
  exclusions:
  - values:
      - folders/[EXCLUDED_FOLDER_ID] # 替换为需排除的子文件夹ID
  1. 执行命令将策略应用到父文件夹:
gcloud resource-manager org-policies set-policy org-policy-config.yaml --folder=[PARENT_FOLDER_ID]

方案2:子文件夹覆盖父层级策略

如果父层级已应用策略,直接在目标子文件夹设置反向规则:

# 示例:关闭排除文件夹的"禁用串口访问"约束,覆盖父层级配置
gcloud resource-manager org-policies disable-enforce constraints/compute.disableSerialPortAccess --folder=[EXCLUDED_FOLDER_ID]

二、IAM角色分配排除指定子文件夹

可通过条件绑定或子层级拒绝权限两种方式实现需求:

方案1:父层级条件绑定角色

在父文件夹绑定角色时添加条件,限制角色仅应用于除指定子文件夹外的资源:

gcloud resource-manager folders add-iam-policy-binding [PARENT_FOLDER_ID] \
  --member=user:your-user@domain.com \ # 替换为目标成员(用户/服务账号等)
  --role=roles/compute.viewer \ # 替换为目标角色ID
  --condition="expression=resource.name != 'folders/[EXCLUDED_FOLDER_ID]',title=exclude_target_folder,description=Assign role to all subfolders except the specified one"

说明:条件仅对继承父文件夹权限的子资源生效,子文件夹直接添加的权限不受影响。

方案2:子层级添加拒绝权限

先在父文件夹分配角色,再在排除的子文件夹添加拒绝规则:

  1. 父文件夹分配角色:
gcloud resource-manager folders add-iam-policy-binding [PARENT_FOLDER_ID] \
  --member=user:your-user@domain.com \
  --role=roles/compute.viewer
  1. 排除文件夹添加拒绝规则:
gcloud resource-manager folders add-iam-policy-binding [EXCLUDED_FOLDER_ID] \
  --member=user:your-user@domain.com \
  --role=roles/compute.viewer \
  --deny

说明:拒绝权限优先级高于允许权限,该成员在排除文件夹中将无法使用目标角色的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:47:01