限制条件是针对某项 Google Cloud 服务或一组 Google Cloud 服务的限制类型。您可以将限制条件视为定义受控行为的蓝图,然后将该蓝图作为组织政策应用于资源层次结构节点,以实施限制条件中定义的规则。随后,映射到该限制条件并与该资源层次结构节点相关联的 Google Cloud 服务便会实施组织策略中配置的限制。
限制条件具有类型,决定了可输入且可用于检查强制执行情况的组织政策值。实施的 GCP 服务将评估限制条件类型和值以确定限制。如需了解详情,请参阅组织政策限制条件。
进行层次结构评估期间,系统会采用当前资源层次结构节点上设置的组织政策。如果 inheritFromParent
设为 TRUE
,则系统会启用组织政策继承与合并机制。
限制条件特性
每个限制条件都由以下特性定义:
- 名称:限制条件的唯一名称。
- 例如
constraints/compute.disableSerialPortAccess
。
- 例如
- 显示名:限制条件的易记名称。
- 说明:有关哪些 Google Cloud 服务实施哪些限制的详细信息。
- 默认行为:当政策中缺少用户定义的配置时的行为。
限制条件的类型
列表限制条件
列表限制条件允许或禁止组织政策中定义的值列表。该值列表以层次结构子树字符串的形式表示。子树字符串指定了其适用的资源类型。例如,对于 constraints/compute.trustedImageProjects
,项目 ID 列表以 projects/
PROJECT_ID 形式表示。
下表介绍了实施政策方面的一些常见限制条件配置:
政策 | 限制条件配置 |
---|---|
允许一组特定的值 | 将允许值字段 (ListPolicy.allowed_values ) 设置为一组字符串将 ListPolicy.all_values 设置为 ALL_VALUES_UNSPECIFIED |
拒绝一组特定的值 | 将拒绝值字段 (ListPolicy.denied_values ) 设置为一组字符串将 ListPolicy.all_values 设置为 ALL_VALUES_UNSPECIFIED |
拒绝某个值及其所有子值 | 将拒绝值字段 (ListPolicy.denied_values ) 设置为子树字符串,例如 organizations/1234 将 ListPolicy.all_values 设置为 ALL_VALUES_UNSPECIFIED |
允许所有的有效值 | 将 ListPolicy.all_values 设置为 ALLOW 不设置 ListPolicy.allowed_values 或 ListPolicy.denied_values |
拒绝所有值 | 将 ListPolicy.all_values 设置为 DENY 不设置 ListPolicy.allowed_values 或 ListPolicy.denied_values |
您也可以为值指定 prefix:value
形式的前缀,然后为值赋予其他含义:
is:
- 针对确切的值应用比较。此行为与未加前缀时的行为一样;当值包含冒号时,必需使用此前缀。under:
- 针对值及其所有子值应用比较。如果允许或拒绝使用该前缀的资源,则其子资源也会遭到拒绝。提供的值必须是层次结构子树字符串,如以下示例所示:organizations/ORGANIZATION_ID
folders/FOLDER_ID
projects/PROJECT_ID
一些限制条件与使用层次结构子树字符串作为值不兼容。如需了解支持使用层次结构子树值前缀的限制条件,请参阅组织政策限制条件。
层次结构子树值前缀是测试版功能,可能会以不向后兼容的方式更改,并且不在任何服务等级协议 (SLA) 或弃用政策的涵盖范围内。如需详细了解如何在限制条件中使用带前缀的值,请参阅针对层次结构子树设置强制执行。
如果您未提供值列表,则系统会根据具体的限制条件使用以下可能的默认值:
ALLOW
- 允许任何有效值。DENY
- 拒绝所有值。
布尔值限制条件
布尔值限制条件可能会实施,也可能不会实施。将 Policy.enforced
设置为 True
时,系统就会实施此政策。
例如,constraints/compute.disableSerialPortAccess
有两种可能的状态:
- TRUE - 实施
disableSerialPortAccess
限制条件,并且不允许串行端口访问。 - FALSE - 不实施或检查
disableSerialPortAccess
限制条件,因此允许串行端口访问。
如果您未设置政策,或者将政策设置为 RestoreDefault
,则允许串行端口访问,因为限制条件默认值为允许。