使用限制条件

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

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

准备工作

所需的角色

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

此预定义角色包含管理组织政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需管理组织政策,您必须拥有以下权限:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

您也可以使用自定义角色或其他预定义角色来获取这些权限。

将列表限制条件与组织政策结合使用

对组织资源设置强制执行

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

使用列表限制条件的组织政策,其允许或拒绝的值数量不得超过 500 个,且不得超过 32 KB。如果创建或更新了组织政策,使其包含的值超过 500 个,或大小超过 32 KB,则无法成功保存,并且请求将返回错误。

v2 API

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

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

    其中:

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

    • LIST_CONSTRAINT 是您要强制执行的服务的列表限制条件。

    您还可以将组织政策应用于分别带有 --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/LIST_CONSTRAINT
      spec:
        rules:
        - values:
          deniedValues:
          - VALUE_A
      
    2. 运行 set-policy 命令:

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

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

    该命令的输出将为:

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - values:
            deniedValues:
            - VALUE_A
    

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

v1 API

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

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --organization ORGANIZATION_ID
    

    其中:

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

    • LIST_CONSTRAINT 是您要强制执行的服务的列表限制条件。

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

    由于未设置政策,因此返回的政策不完整,如以下示例所示:

    constraint: "constraints/LIST_CONSTRAINT"
    etag: BwVJi0OOESU=
    
  2. 使用 deny 命令为要限制访问的服务添加拒绝的值。

    gcloud resource-manager org-policies deny \
      LIST_CONSTRAINT VALUE_A \
      --organization ORGANIZATION_ID
    

    该命令的输出将为:

    constraint: constraints/LIST_CONSTRAINT
    etag: BwVJi0OOESU=
    listPolicy:
      deniedValues:
        - VALUE_A
    updateTime: CURRENT_TIME
    
  3. 使用 describe --effective 查看当前的有效政策。

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization ORGANIZATION_ID
    

    该命令的输出将为:

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      deniedValues:
        - VALUE_A
    

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

对组织政策所做的更改最长可能需要 15 分钟才能完全强制执行。

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

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

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

v2 API

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

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

    其中:

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

    • LIST_CONSTRAINT 是您要强制执行的服务的列表限制条件。

    您还可以将组织政策应用于分别带有 --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/LIST_CONSTRAINT
      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 \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    该命令的输出将为:

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

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

v1 API

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

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --organization ORGANIZATION_ID
    

    其中:

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

    • LIST_CONSTRAINT 是您要强制执行的服务的列表限制条件。

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

    由于未设置政策,因此返回的政策不完整,如以下示例所示:

    constraint: "constraints/LIST_CONSTRAINT"
    etag: BwVJi0OOESU=
    
  2. 使用 deny 命令为要限制访问的服务添加拒绝的值。under: 前缀设置限制条件以拒绝命名资源及其所有子资源。

    gcloud resource-manager org-policies deny \
      LIST_CONSTRAINT under:folders/VALUE_A \
      --organization ORGANIZATION_ID
    

    其中:

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

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

    • VALUE_BVALUE_C 是层次结构中的项目,VALUE_A 是它们的父级。

    Deny 命令的输出将为:

    constraint: constraints/LIST_CONSTRAINT
    etag: BwVJi0OOESU=
    listPolicy:
      deniedValues:
        - under:folders/VALUE_A
    updateTime: CURRENT_TIME
    

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

    • under:organizations/VALUE_X

    • under:projects/VALUE_Y

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

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization ORGANIZATION_ID
    

    该命令的输出将为:

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      deniedValues:
        - under:folders/VALUE_A
    

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

对组织政策所做的更改最长可能需要 15 分钟才能完全强制执行。

合并项目的组织政策

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

v2 API

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

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

    其中:

    • PROJECT_ID 是项目的唯一标识符

    • LIST_CONSTRAINT 是您要强制执行的服务的列表限制条件。

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

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

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

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

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

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

      name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
      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 \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

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

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

v1 API

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

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --project PROJECT_ID
    

    其中:

    • PROJECT_ID 是项目的唯一标识符

    • LIST_CONSTRAINT 是您要强制执行的服务的列表限制条件。

    由于未设置政策,因此返回的政策不完整,如以下示例所示:

    constraint: "constraints/LIST_CONSTRAINT"
    etag: BwVJi0OOESU=
    
  2. 使用 describe --effective 命令显示当前的有效政策:

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --project PROJECT_ID
    

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

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      deniedValues:
        - VALUE_A
    
  3. 使用 set-policy 命令针对项目设置政策。

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

      constraint: constraints/LIST_CONSTRAINT
      listPolicy:
        deniedValues:
          - VALUE_B
          - VALUE_C
        inheritFromParent: true
      
    2. 运行 set-policy 命令:

      gcloud resource-manager org-policies set-policy \
        --project PROJECT_ID /tmp/policy.yaml
      
    3. 该命令的输出将为:

      constraint: constraints/LIST_CONSTRAINT
      etag: BwVLO2timxY=
      listPolicy:
        deniedValues:
          - VALUE_B
          - VALUE_C
        inheritFromParent: true
      
  4. 再次使用 describe --effective 命令显示更新后的政策:

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --project PROJECT_ID
    

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

    constraint: constraints/LIST_CONSTRAINT
      listPolicy:
        deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    

对组织政策所做的更改最长可能需要 15 分钟才能完全强制执行。

恢复默认限制条件行为

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

v2 API

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

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

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

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

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

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

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

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

v1 API

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

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --project PROJECT_ID
    

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

    constraint: constraints/LIST_CONSTRAINT
      listPolicy:
        deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    
  2. 使用 set-policy 命令针对项目设置政策。

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

      restoreDefault: {}
      constraint: constraints/LIST_CONSTRAINT
      
    2. 运行 set-policy 命令:

      gcloud resource-manager org-policies set-policy \
        --project PROJECT_ID /tmp/restore-policy.yaml
      
    3. 该命令的输出将为:

      constraint: constraints/LIST_CONSTRAINT
      etag: BwVJi9D3VLY=
      restoreDefault: {}
      
  3. 获取有效政策,以验证默认行为:

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --project PROJECT_ID
    

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

    Constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      allValues: ALLOW
    

对组织政策所做的更改最长可能需要 15 分钟才能完全强制执行。

删除组织政策

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

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

v2 API

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

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

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

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

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

    该命令的输出将为:

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

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

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

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

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

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

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

    该命令的输出将为:

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

v1 API

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

    gcloud resource-manager org-policies delete \
      LIST_CONSTRAINT --organization ORGANIZATION_ID
    

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

    Deleted [<Empty>].
    
  2. 获取组织的有效政策,以验证其是否未强制执行:

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization ORGANIZATION_ID
    

    该命令的输出将为:

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      allValues: ALLOW
    

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

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

    gcloud resource-manager org-policies delete \
      LIST_CONSTRAINT --project PROJECT_ID
    

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

    Deleted [<Empty>].
    
  2. 获取项目的有效政策,以验证其是否未强制执行:

    gcloud resource-manager org-policies describe \
      --effective \
      LIST_CONSTRAINT --project PROJECT_ID
    

    该命令的输出将为:

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      allValues: ALLOW
    

对组织政策所做的更改最长可能需要 15 分钟才能完全强制执行。

在组织政策中使用布尔值限制条件

对组织资源设置强制执行

您可以针对组织资源设置组织政策,以强制执行布尔值限制条件。以下流程介绍如何使用 Google Cloud CLI 设置组织政策。如需了解如何使用 Google Cloud 控制台查看和设置组织政策,请参阅创建和管理政策

v2 API

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

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --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/BOOLEAN_CONSTRAINT
      spec:
        rules:
          - enforce: true
      
    2. 运行 set-policy 命令:

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

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

    该命令的输出将为:

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

v1 API

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

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --organization ORGANIZATION_ID
    

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

    由于未设置政策,因此返回的政策不完整,如以下示例所示:

    booleanPolicy: {}
    constraint: "constraints/BOOLEAN_CONSTRAINT"
    
  2. 使用 enable-enforce 命令设置政策,以便对组织强制执行:

    gcloud resource-manager org-policies enable-enforce \
      BOOLEAN_CONSTRAINT --organization ORGANIZATION_ID
    

    该命令的输出将为:

    booleanPolicy:
      enforced: true
    constraint: constraints/BOOLEAN_CONSTRAINT
    etag: BwVJitxdiwY=
    
  3. 使用 describe --effective 查看当前的有效政策:

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization ORGANIZATION_ID
    

    该命令的输出将为:

    booleanPolicy:
      enforced: true
    constraint: constraints/BOOLEAN_CONSTRAINT
    

对组织政策所做的更改最长可能需要 15 分钟才能完全强制执行。

替换项目的组织政策

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

v2 API

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

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

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

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

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

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

    该命令的输出将为:

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

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

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

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

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

    该命令的输出将为:

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

v1 API

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

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --project PROJECT_ID
    

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

    booleanPolicy: {}
    constraint: "constraints/BOOLEAN_CONSTRAINT"
    
  2. 获取项目的有效政策,以确认对在该项目强制执行限制条件。

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project PROJECT_ID
    

    该命令的输出将为:

    booleanPolicy:
      enforced: true
    constraint: constraints/BOOLEAN_CONSTRAINT
    
  3. 使用 disable-enforce 命令针对项目设置政策,使之不强制执行限制条件:

    gcloud resource-manager org-policies disable-enforce \
      BOOLEAN_CONSTRAINT --project PROJECT_ID
    

    该命令的输出将为:

    booleanPolicy: {}
    constraint: constraints/BOOLEAN_CONSTRAINT
    etag: BwVJivdnXvM=
    
  4. 获取有效政策,以显示不再对项目强制执行该政策。

    gcloud resource-manager org-policies describe \
      --effective \
      BOOLEAN_CONSTRAINT --project PROJECT_ID
    

    该命令的输出将为:

    booleanPolicy: {}
    constraint: constraints/BOOLEAN_CONSTRAINT
    

对组织政策所做的更改最长可能需要 15 分钟才能完全强制执行。

删除组织政策

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

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

v2 API

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

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

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

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

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

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

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

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

    该命令的输出将为:

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

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

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

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

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

v1 API

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

    gcloud resource-manager org-policies delete \
      BOOLEAN_CONSTRAINT --organization ORGANIZATION_ID
    

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

    Deleted [<Empty>].
    
  2. 获取组织的有效政策,以验证其是否未强制执行:

    gcloud resource-manager org-policies describe \
      --effective \
      BOOLEAN_CONSTRAINT --organization ORGANIZATION_ID
    

    该命令的输出将为:

    booleanPolicy: {}
    constraint: constraints/BOOLEAN_CONSTRAINT
    
  3. 使用 delete 命令删除项目中的组织政策:

    gcloud resource-manager org-policies delete \
      BOOLEAN_CONSTRAINT --project PROJECT_ID
    

    该命令的输出将为:

    Deleted [<Empty>].
    
  4. 获取项目的有效政策,以验证其是否未强制执行:

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project PROJECT_ID
    

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

    booleanPolicy: {}
    constraint: constraints/BOOLEAN_CONSTRAINT
    

对组织政策所做的更改最长可能需要 15 分钟才能完全强制执行。