在某个 资源上设置组织政策时,该资源的所有后代都会默认继承这项组织政策。如果您在组织资源上设置组织政策,则所有子资源都会继承这些限制。
您可以在子资源上设置具有不同配置的相同组织政策,根据层次结构评估规则和组织政策中定义的限制类型,该组织政策将覆盖或与继承的政策合并。
准备工作
示例层次结构
在下面的资源层次结构图中,每个资源都设置了一个组织政策,该政策会强制执行旧版托管限制条件,并定义该政策是否继承其父级资源的政策。彩色形状代表组织政策允许或拒绝的值。
限制条件是针对 Google Cloud 服务或 服务 Google Cloud 列表强制执行的特定限制类型。在上面的示例中,Constraint 表示限制条件默认值,用于定义在组织政策中未定义限制条件时的行为。在此示例中,限制条件默认值允许所有值。限制条件下面的节点定义了组织政策,这些组织政策通过允许或拒绝值来覆盖限制条件默认值。
每个节点上的有效政策根据继承规则进行评估。如果未设置组织政策,则资源会继承默认限制条件行为。如果您设置了组织政策,则将改用您的政策。在上面的示例中,组织节点 定义的政策允许红色 方形和绿色 圆圈。
在该层次结构中,组织节点 下面的资源会按如下方式进行评估:
资源 1 定义的政策将
inheritFromParent设为TRUE并 允许 蓝色菱形。该资源会继承组织节点 中的政策并将其与为资源 1 设置的政策合并。因此有效 政策的评估结果为允许红色 方形、绿色 圆形和 蓝色菱形。资源 2 定义的政策将
inheritFromParent设为TRUE并 拒绝 绿色 圆圈。在协调政策时,系统始终优先采用拒绝值。该资源会继承组织节点 中的政策并将其与为资源 2 设置的政策合并。因此有效政策的评估结果 为仅允许红色 方形。资源 3 定义的政策将
inheritFromParent设为FALSE并 允许 黄色 六边形。该资源不会继承组织节点 中的政策,因此有效政策的评估结果为仅允许黄色六边形。资源 4 定义的政策将
inheritFromParent设为FALSE并包含restoreDefault值。该资源不会继承 组织节点 中的政策,而是使用默认限制行为 ,因此有效政策的评估结果为允许 所有 值。
层次结构评估规则
下列规则管理如何在给定资源评估组织政策。您需要具备 Organization Policy Administrator 角色才能设置组织政策。
自动强制执行的限制条件
如果组织政策未强制执行,则它会从强制执行组织政策的最小祖先实体继承。如果祖先层次结构中未强制执行任何组织政策,则强制执行 Google 管理的限制条件默认行为。
如果组织政策限制条件的 Google 管理的默认行为限制了某项操作,则即使您从未明确定义组织政策,该操作也会受到限制。如需允许这些操作,您必须创建组织政策来替换父级政策。
如需查看具有限制操作的 Google 管理的默认 行为的组织政策限制条件列表,请参阅 组织政策限制条件。
继承
默认情况下,资源设置的组织政策会取代层次结构中其父级资源设置的任何政策。但是,如果资源设置了 inheritFromParent = true,则该资源的有效政策为父级资源的有效政策经继承、合并和协调之后产生的结果。例如:
- 某文件夹拒绝
projects/123值。 - 该文件夹下的项目拒绝
projects/456值。
这两个政策会合并,因此本例中得到的有效政策为同时拒绝 projects/123 和 projects/456。
继承默认行为
默认行为永远不会合并。设置政策后,它始终会替换任何默认行为。例如:
- 默认情况下,
constraints/iam.allowServiceAccountCredentialLifetimeExtension在组织级层设置为DENY。 - 对于此限制条件,该组织下的项目直接允许
SomeServiceAccount值。
由于默认行为永远不会合并,并且始终会被替换,因此这会产生允许 SomeServiceAccount 的有效政策。相比之下,如果在组织级层将政策 明确 设置为
DENY,则“DENY 值优先”规则将适用,并且有效政策将为 DENY。
拒绝继承
如果资源具有包含 inheritFromParent = false 的政策,则不会从其父级资源继承组织政策。相反地,除非您设置了允许或拒绝值的政策,否则该资源会继承限制条件的默认行为。
协调政策冲突
当资源继承组织政策时,继承的政策会与父级资源的组织政策合并和协调。使用列表规则评估组织政策时,DENY
值始终优先。例如:
- 某文件夹拒绝
projects/123值。 - 该文件夹下的项目允许
projects/123值。
在这种情况下,系统会合并这些政策并优先采用 DENY 值。有效政策会拒绝所有值,并以相同方式评估父级资源或子资源是否拒绝值。我们建议您不要在允许列表和拒绝列表中包含同一个值。否则,您的政策可能更难理解。
具有布尔值规则的组织政策不会合并及协调政策。如果在资源上指定了政策,则使用 TRUE 或 FALSE
值来确定有效政策。例如:
某文件夹的
constraints/iam.managed.disableServiceAccountCreation设为enforced: true。该文件夹下项目的
constraints/iam.managed.disableServiceAccountCreation设为enforced: false。
系统会忽略在该文件夹上设置的 enforced: true 值,因为项目本身定义了 enforced: false。组织政策不会对该项目强制执行。
重置为默认政策
调用 RestoreDefault 即可让组织政策针对该资源使用限制条件的默认行为。子资源也会继承该行为。