使用限制条件

本指南介绍如何创建包含特定限制条件的组织政策。本页面上的示例中使用的限制条件不是真实的限制条件,而是用于教育目的的通用样本。

如需详细了解限制条件及其解决的问题,请参阅所有组织政策服务限制条件的列表

准备工作

所需的角色

如需获得管理组织政策所需的权限,请让您的管理员为您授予组织的 Organization Policy Administrator (roles/orgpolicy.policyAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

委托组织政策管理权限

如需将组织政策的管理权限委托给其他主账号,请向角色绑定添加条件

"bindings": [
  {
    "role": "roles/orgpolicy.policyAdmin",
    "members": [
      "PRINCIPAL_1",
      "PRINCIPAL_2"
    ],
    "condition": {
      "title": "TITLE",
      "description": "DESCRIPTION",
      "expression": "resource.matchTag('TAG_KEY', 'TAG_VALUE')"
    }
  }
]

替换以下内容:

  • PRINCIPAL_1,PRINCIPAL_2:您要向其委托组织政策管理员角色的主账号列表。

  • TITLE:条件表达式的标题&emdash;例如,“开发环境的组织政策管理员”。

  • DESCRIPTION:表达式的可选说明。

  • TAG_KEY:标记键的命名空间名称,例如 123456789012/environment

  • TAG_VALUE:标记值的名称。仅针对附加了此标记的资源授予角色&emdash;例如 development

如需详细了解如何在允许政策中使用条件,请参阅 IAM 条件概览

在组织政策中使用列表规则

您可以在组织资源上设置组织政策,以使用列表规则来拒绝访问特定服务。以下流程介绍如何使用 Google Cloud CLI 设置组织政策。如需了解如何使用 Trusted Cloud 控制台查看和设置组织政策,请参阅创建和管理政策

使用列表规则的组织政策的允许或拒绝值不得超过 500 个,且大小不得超过 32 KB。如果组织政策创建或更新后包含的值超过 500 个,或者大小超过 32 KB,则无法成功保存,并且相应请求会返回错误。

针对组织资源设置强制执行

如需使用 gcloud CLI 在组织中设置强制执行,请按以下步骤操作:

  1. 使用 describe 命令获取组织资源的当前政策。此命令返回直接应用于此资源的政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --organization=ORGANIZATION_ID
    

    替换以下内容:

    • ORGANIZATION_ID:组织资源的唯一标识符。组织 ID 采用十进制数字的格式,不能添加前导零。

    • CONSTRAINT_NAME:您要强制执行的服务的限制条件。例如,gcp.restrictNonCmekServices 限制条件会限制哪些服务可以在没有客户管理的加密密钥 (CMEK) 的情况下创建资源。

    您还可以将组织政策应用于分别带有 --folder--project 标志以及文件夹 ID项目 ID 的文件夹或项目。

    响应将返回当前组织政策(如果存在)。例如:

    name: projects/841166443394/policies/gcp.resourceLocations
    spec:
      etag: BwW5P5cEOGs=
      inheritFromParent: true
      rules:
      - condition:
          expression: resource.matchTagId("tagKeys/1111", "tagValues/2222")
        values:
          allowedValues:
          - in:us-east1-locations
      - condition:
          expression: resource.matchTag("123/env", "prod")
        values:
          allowedValues:
          - in:us-west1-locations
      - values:
          deniedValues:
          - in:asia-south1-locations
      updateTime: '2021-01-19T12:00:51.095Z'
    

    如果未设置政策,则会返回 NOT_FOUND 错误:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 使用 set-policy 命令针对组织设置政策。这会覆盖附加到资源的所有政策。

    1. 创建临时文件 /tmp/policy.yaml 以存储政策:

      name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - values:
            deniedValues:
            - VALUE_A
      
    2. 运行 set-policy 命令:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. 使用 describe --effective 查看当前的有效政策。 这会返回组织政策,因为此时它是在包含继承政策的资源层次结构中进行评估。

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    该命令的输出将为:

    name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
    spec:
      etag: BwVJi0OOESU=
      rules:
      - values:
          deniedValues:
          - VALUE_A
    

    由于该组织政策在组织层级设置,因此允许继承的所有子资源都将继承该政策。

对组织政策的更改最长可能需要 15 分钟才能完全实施。

针对层次结构子树设置强制执行

具有列表规则的限制条件选用明确拒绝的值来确定应该允许或拒绝的资源。一些限制条件还可以接受使用前缀 under: 的值,该前缀指定了以该资源作为根的子树。如果在允许或拒绝的值上使用 under: 前缀,则组织政策将应用于该资源及其所有子级。如需了解允许使用 under: 前缀的限制条件,请参阅组织政策限制条件页面。

使用 under: 前缀的值称为层次结构子树字符串。层次结构子树字符串指定了其适用的资源类型。例如,如果在设置 constraints/compute.storageResourceUseRestrictions 限制时使用 projects/PROJECT_ID 的子树字符串,系统将允许或拒绝针对 PROJECT_ID 及其所有子级使用 Compute Engine 存储。

  1. 使用 describe 命令获取组织资源的当前政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID
    

    替换以下内容:

    • ORGANIZATION_ID 是组织资源的唯一标识符。

    • CONSTRAINT_NAME 是您要强制执行的服务的限制条件。

    您还可以将组织政策应用于分别带有 --folder--project 标志以及文件夹 ID项目 ID 的文件夹或项目。

    如果未设置政策,则会返回 NOT_FOUND 错误:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 使用 set-policy 命令针对项目设置政策。 under: 前缀设置限制条件以拒绝命名资源及其所有子资源。

    1. 创建临时文件 /tmp/policy.yaml 以存储政策:

      name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - values:
            deniedValues:
            - under:folders/VALUE_A
      
    2. 运行 set-policy 命令:

      gcloud org-policies set-policy /tmp/policy.yaml
      

    其中:

    • under: 是一个前缀,表示后面跟一个子树字符串。

    • folders/VALUE_A 是要拒绝的根资源的文件夹 ID。将拒绝该资源及其在资源层次结构中的所有子级。

    如下列示例所示,您还可以将 under: 前缀应用于组织和项目:

    • under:organizations/VALUE_X

    • under:projects/VALUE_Y

  3. 使用 describe --effective 查看当前的有效政策。

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    该命令的输出将为:

    name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - values:
          deniedValues:
          - under:folders/VALUE_A
    

    现在,该政策的评估结果为拒绝文件夹 VALUE_A 及其所有子资源。

对组织政策的更改最长可能需要 15 分钟才能完全实施。

合并项目的组织政策

您可以在资源上设置组织政策,该政策将与从其父级资源继承的任何政策合并。然后,系统将对合并后的政策进行评估,根据继承规则创建新的有效政策。

  1. 使用 describe 命令获取资源的当前政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME \
      --project=PROJECT_ID
    

    替换以下内容:

    • PROJECT_ID:项目的唯一标识符

    • CONSTRAINT_NAME:您要强制执行的服务的限制条件。

    如果未设置政策,则会返回 NOT_FOUND 错误:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 使用 describe --effective 命令显示当前的有效政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    该命令的输出将包含从组织资源继承的拒绝值:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
    
  3. 使用 set-policy 命令针对项目设置政策。

    1. 创建临时文件 /tmp/policy.yaml 以存储政策:

      name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        inheritFromParent: true
        rules:
        - values:
            deniedValues:
            - VALUE_B
            - VALUE_C
      
    2. 运行 set-policy 命令:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. 再次使用 describe --effective 命令显示更新后的政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    该命令的输出将包含合并来自资源和父级的政策的有效结果:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - values:
          deniedValues:
            - VALUE_A
            - VALUE_B
            - VALUE_C
    

对组织政策的更改最长可能需要 15 分钟才能完全实施。

恢复默认限制条件行为

您可以使用 reset 命令重置政策,以便使用限制条件的默认行为。如需查看所有可用限制条件及其默认值的列表,请参阅组织政策限制条件。以下示例假定默认限制条件行为是允许所有值。

  1. 获取项目的有效政策,以显示当前合并后的政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    PROJECT_ID 替换为项目的唯一标识符。该命令的输出将为:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    
  2. 使用 reset 命令重置组织政策。

    gcloud org-policies reset CONSTRAINT_NAME \
        --project=PROJECT_ID
    
  3. 获取有效政策,以验证默认行为:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    该命令的输出将允许所有值:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - allowAll: true
    

对组织政策的更改最长可能需要 15 分钟才能完全实施。

删除组织政策

您可以删除资源中的组织政策。未设置组织政策的资源将继承其父级资源的任何政策。如果您删除组织资源上的组织政策,则有效政策将为限制条件的默认行为。

以下步骤描述了如何删除组织的组织政策。

  1. 使用 delete 命令删除组织资源的政策:

    gcloud org-policies delete \
      CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID 替换为组织资源的唯一标识符。该命令的输出将为:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME].
    {}
    
  2. 获取组织的有效政策,以验证其是否未强制执行:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    该命令的输出将为:

    name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - allowAll: true
    

以下步骤描述了如何删除项目的组织政策:

  1. 使用 delete 命令删除项目的政策:

    gcloud org-policies delete \
      CONSTRAINT_NAME \
      --project=PROJECT_ID
    

    其中,PROJECT_ID 是项目的唯一标识符。该命令的输出将为:

    Deleted policy
    [projects/PROJECT_ID/policies/CONSTRAINT_NAME].
    {}
    
  2. 获取项目的有效政策,以验证其是否未强制执行:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    该命令的输出将为:

    name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - allowAll: true
    

对组织政策的更改最长可能需要 15 分钟才能完全实施。

在组织政策中使用布尔值规则

针对组织资源设置强制执行

以下流程介绍如何使用 Google Cloud CLI 设置包含布尔值规则的组织政策。如需了解如何使用 Trusted Cloud 控制台查看和设置组织政策,请参阅创建和管理政策

  1. 使用 describe 命令获取组织资源的当前政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID 替换为组织资源的唯一标识符。您还可以将组织政策应用于分别带有 --folder--project 标志以及文件夹 ID项目 ID 的文件夹或项目。

    如果未设置政策,则会返回 NOT_FOUND 错误:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 使用 set-policy 命令针对项目设置政策。

    1. 创建临时文件 /tmp/policy.yaml 以存储政策:

      name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      
    2. 运行 set-policy 命令:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. 使用 describe --effective 查看当前的有效政策:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    该命令的输出将为:

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT
    spec:
      rules:
      - enforce: true
    

对组织政策的更改最长可能需要 15 分钟才能完全实施。

替换项目的组织政策

如需替换项目的组织政策,请设置一项政策,以停止对项目下方层次结构中的所有资源强制执行相应限制条件。

  1. 获取资源的当前政策,以显示其为空。

    gcloud org-policies describe \
      CONSTRAINT_NAME \
      --project=PROJECT_ID
    

    其中,PROJECT_ID 是项目的唯一标识符

    如果未设置政策,则会返回 NOT_FOUND 错误:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 获取项目的有效政策,以确认对在该项目强制执行限制条件。

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    该命令的输出将为:

    name: projects/PROJECT_ID/policies/BOOLEAN_CONSTRAINT
    spec:
      rules:
      - enforce: true
    
  3. 使用 set-policy 命令针对项目设置政策。

    1. 创建临时文件 /tmp/policy.yaml 以存储政策:

      name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: false
      
    2. 运行 set-policy 命令:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. 获取有效政策,以显示不再对项目强制执行该政策。

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    该命令的输出将为:

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT
    spec:
      rules:
      - enforce: false
    

对组织政策的更改最长可能需要 15 分钟才能完全实施。

删除组织政策

您可以删除资源中的组织政策。未设置组织政策的资源将继承其父级资源的任何政策。如果您删除组织资源上的组织政策,则有效政策将为限制条件的默认行为。

以下步骤描述了如何删除组织和项目的组织政策。

  1. 使用 delete 命令删除组织资源中的政策:

    gcloud org-policies delete \
      CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID 替换为组织资源的唯一标识符。该命令的输出将为:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME].
    {}
    
  2. 获取组织的有效政策,以验证其是否未强制执行:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --organization=ORGANIZATION_ID
    

    如果未设置政策,则会返回 NOT_FOUND 错误:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  3. 使用 delete 命令删除项目中的组织政策:

    gcloud org-policies delete \
      CONSTRAINT_NAME \
      --project=PROJECT_ID
    

    该命令的输出将为:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME].
    {}
    
  4. 获取项目的有效政策,以验证其是否未强制执行:

    gcloud org-policies describe \
      CONSTRAINT_NAME --effective \
      --project=PROJECT_ID
    

    PROJECT_ID 替换为项目的唯一标识符。

    如果未设置政策,则会返回 NOT_FOUND 错误:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

对组织政策的更改最长可能需要 15 分钟才能完全实施。

在组织政策中使用受管理的限制条件

受管理的限制条件基于自定义组织政策平台构建。他们可以使用组织政策服务的 Policy Simulator 并试运行组织政策,以便更安全地部署政策更改。

查看和识别受管理的限制条件

如需查看组织可用的受管限制条件,请执行以下操作:

控制台

  1. 在 Trusted Cloud 控制台中,转到组织政策页面。

    转到组织政策

  2. 从项目选择器中,选择要查看其组织政策的项目、文件夹或组织。随即显示的组织政策页面会显示适用于相应资源的组织政策限制条件列表。

  3. 您可以按限制条件类型过滤或排序组织政策列表,以查找受管理的限制条件。从列表中选择要查看详细信息的受管理限制。在随即显示的政策详情页面上,您可以查看相应组织政策的来源、针对相应资源的有效政策评估、针对相应资源的组织政策的当前配置、有关相应限制条件的详细信息,以及使用这些限制条件的限制条件的默认参数。

gcloud

如需列出组织政策中针对组织强制执行的受管理限制条件和自定义限制条件,请使用 org-policies list-custom-constraints 命令。

gcloud org-policies list-custom-constraints \
  --organization=ORGANIZATION_ID

ORGANIZATION_ID 替换为您的组织的 ID。

如需获取资源的特定受管理限制的详细信息,请使用 org-policies describe-custom-constraint 命令。

gcloud org-policies describe-custom-constraint CONSTRAINT_NAME \
    --organization=ORGANIZATION_ID

替换以下内容:

  • CONSTRAINT_NAME:您要获取详细信息的受管限制条件的名称。例如 iam.managed.disableServiceAccountKeyUpload

  • ORGANIZATION_ID:您的组织的 ID。

REST

如需列出组织政策中针对组织设置的受管理限制条件和自定义限制条件,请使用 organizations.customConstraints.list 方法。

  GET https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/customConstraints

ORGANIZATION_ID 替换为您的组织的 ID。

创建和更新受管理的限制条件

组织政策由限制条件的配置定义。这些政策可以在资源上设置、从父资源继承,也可以重置为 Google 管理的默认行为。

如需基于受管理的限制条件创建或更新组织政策,请执行以下操作:

控制台

  1. 在 Trusted Cloud 控制台中,转到组织政策页面。

转到组织政策

  1. 从项目选择器中,选择要为其修改组织政策的项目、文件夹或组织。随即显示的组织政策页面会显示可用于相应资源的可过滤组织政策限制条件列表。

  2. 从列表中选择要为其更新组织政策的受管理的限制条件。

  3. 如需为该资源更新组织政策,请点击管理政策

  4. 修改政策页面,选择覆盖父资源的政策

  5. 选择添加规则

  6. 强制执行下,选择开启还是关闭此组织政策的强制执行。

  7. (可选)如需使组织政策成为基于某个标记的条件政策,请点击添加条件。如果您向组织政策添加条件规则,则必须至少添加一个无条件规则,否则无法保存政策。 如需了解详情,请参阅设置带有标记的组织政策

  8. 如果此限制支持参数,这些参数会显示在参数下,并显示配置的值。如果未配置这些参数,则会显示 Google 管理的默认值。

    如需更改某个参数,请选择 修改

    1. 下,选择默认可重置此限制条件,以使用并显示 Google 管理的默认值。

    选择用户定义以配置参数。

    1. 对于接受值列表的参数,请在相应字段中输入允许或拒绝的值。选择 添加值以添加更多字段。

    用于验证参数值的通用表达式语言 (CEL) 表达式在有效值表达式下进行了说明。用户指定的所有值都必须满足该表达式。

    1. 对于布尔值参数,请选择 TrueFalse 来确定是否应应用相应参数。

    2. 点击保存

  9. (可选)如需在组织政策更改生效之前预览其影响,请点击测试更改。如需详细了解如何测试组织政策更改,请参阅使用 Policy Simulator 测试组织政策更改

  10. 如需在试运行模式下强制执行组织政策,请点击设置试运行政策。如需了解详情,请参阅以试运行模式创建组织政策

  11. 验证试运行模式下的组织政策是否按预期运行后,点击设置政策,设置正式政策。

gcloud

  1. 创建一个 YAML 文件来定义组织政策。如果此限制条件不支持参数,请省略 rules 下的 parameters 块。

    name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
    spec:
    rules:
        - enforce: ENFORCEMENT_STATE
          parameters:
            LIST_PARAMETER:
               - LIST_VALUE_1
               - LIST_VALUE_2
            BOOLEAN_PARAMETER: BOOLEAN_VALUE
    
    dryRunSpec:
      rules:
      - enforce: ENFORCEMENT_STATE
        parameters:
          LIST_PARAMETER:
             - LIST_VALUE_1
             - LIST_VALUE_2
          BOOLEAN_PARAMETER: BOOLEAN_VALUE
    

    替换以下内容:

    • RESOURCE_TYPE 替换为 organizationsfoldersprojects

    • RESOURCE_ID 替换为您的组织 ID、文件夹 ID、项目 ID 或项目编号,具体取决于在 RESOURCE_TYPE 中指定的资源类型。

    • CONSTRAINT_NAME 替换为您要设置的限制的名称。

    • ENFORCEMENT_STATE,其中 true 表示在设置时强制执行此组织政策,false 表示在设置时停用此组织政策。

    • LIST_PARAMETER 替换为要配置的列表形参数的名称。如需查看可用参数的列表,请参阅限制条件说明。

    • LIST_VALUE_1LIST_VALUE_2 和其他列表值,其中包含允许或拒绝的值列表,具体取决于此参数的配置。如需详细了解可接受的值,请参阅限制说明。

    • BOOLEAN_PARAMETER 替换为要配置的布尔形参的名称。如需查看可用参数的列表,请参阅限制条件说明。

    • BOOLEAN_VALUE 替换为 TrueFalse

    (可选)如需使组织政策成为基于某个标记的条件性政策,请向 rules 添加 condition 块。如果您向组织政策添加条件规则,则必须至少添加一个无条件规则,否则无法保存政策。如需了解详情,请参阅设置带有标记的组织政策

  2. 运行带有 dryRunSpec 标志的 org-policies set-policy 命令,以在预运行模式下设置组织政策:

     gcloud org-policies set-policy POLICY_PATH \
       --update-mask=dryRunSpec
    

    POLICY_PATH 替换为组织政策 YAML 文件的完整路径。

    如需详细了解组织政策的试运行模式,请参阅以试运行模式创建组织政策

  3. 使用 policy-intelligence simulate orgpolicy 命令预览组织政策更改在强制执行之前的影响:

    gcloud policy-intelligence simulate orgpolicy \
      --organization=ORGANIZATION_ID \
      --policies=POLICY_PATH
    

    替换以下内容:

    • ORGANIZATION_ID 替换为您的组织 ID,例如 1234567890123。不支持模拟多个组织中的更改。

    • POLICY_PATH 替换为组织政策 YAML 文件的完整路径。

    如需详细了解如何测试组织政策更改,请参阅使用 Policy Simulator 测试组织政策更改

  4. 在验证组织政策在试运行模式下是否按预期运行后,使用 org-policies set-policy 命令和 spec 标志设置有效政策:

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    POLICY_PATH 替换为组织政策 YAML 文件的完整路径。

REST

如需设置组织政策,请使用 organizations.policies.create 方法。

POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies

请求 JSON 正文包含组织政策的定义。 如果此限制条件不支持参数,请省略 rules 下的 parameters 块。

{
  "name": "RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME",
  "spec": {
    "rules": [
      {
        "enforce": ["ENFORCEMENT_STATE"],
        "parameters": {
          "LIST_PARAMETER": [
            "LIST_VALUE_1",
            "LIST_VALUE_2"
          ],
          BOOLEAN_PARAMETER: BOOLEAN_VALUE
        }
      }
    ]
  }
  "dryRunSpec": {
    "rules": [
      {
        "enforce": ["ENFORCEMENT_STATE"],
        "parameters": {
          "LIST_PARAMETER": [
            "LIST_VALUE_1",
            "LIST_VALUE_2"
          ],
          BOOLEAN_PARAMETER: BOOLEAN_VALUE
        }
      }
    ]
  }
}

替换以下内容:

  • RESOURCE_TYPE 替换为 organizationsfoldersprojects

  • RESOURCE_ID 替换为您的组织 ID、文件夹 ID、项目 ID 或项目编号,具体取决于在 RESOURCE_TYPE 中指定的资源类型。

  • CONSTRAINT_NAME 替换为您要设置的限制的名称。

  • ENFORCEMENT_STATE,其中 true 表示在设置时强制执行此组织政策,false 表示在设置时停用此组织政策。

  • LIST_PARAMETER 替换为要配置的列表形参数的名称。如需查看可用参数的列表,请参阅限制条件说明。

  • LIST_VALUE_1LIST_VALUE_2 和其他列表值,其中包含允许或拒绝的值列表,具体取决于此参数的配置。如需详细了解可接受的值,请参阅限制说明。

  • BOOLEAN_PARAMETER 替换为要配置的布尔形参的名称。如需查看可用参数的列表,请参阅限制条件说明。

  • BOOLEAN_VALUE 替换为 TrueFalse

(可选)如需使组织政策成为基于某个标记的条件性政策,请向 rules 添加 condition 块。如果您向组织政策添加条件规则,则必须至少添加一个无条件规则,否则无法保存政策。如需了解详情,请参阅设置带有标记的组织政策

如需详细了解组织政策的试运行模式,请参阅以试运行模式创建组织政策

对组织政策的更改最长可能需要 15 分钟才能完全实施。