IAM 政策类型

Identity and Access Management (IAM) 提供了多种类型的政策,可帮助您控制主账号可以访问哪些资源。本页可帮助您了解这些政策类型的使用和管理方式之间的区别。

IAM 政策类型

IAM 提供以下类型的政策:

  • 允许政策
  • 拒绝政策
  • 主账号访问权限边界 (PAB) 政策

下表总结了这些政策类型之间的差异:

政策 政策函数 用于管理政策的 API 政策与目标之间的关系 将政策附加到目标的方法 政策的父级资源
允许政策 向主账号授予资源访问权限 您要管理允许政策的资源的 API

一对一关系

每项允许政策都会附加到一个资源;每个资源只能有一项允许政策

在创建政策时指定资源 与允许政策附加到的资源相同
拒绝政策 确保主账号无法使用特定权限 IAM v2 API

一对多关系

每个拒绝政策都会附加到一个资源;每个资源最多可以有 500 个拒绝政策

在创建拒绝政策时指定资源 与拒绝政策附加到的资源相同
PAB 政策 限制主账号可以访问的资源 IAM v3 API

多对多关系

每项 PAB 政策可附加到不限数量的主账号集;每个主账号集最多可以有 10 项 PAB 政策绑定到它

创建将 PAB 政策附加到主账号集的政策绑定 组织

以下各部分详细介绍了每种政策类型。

授予主账号访问权限的政策

如需向主账号授予对资源的访问权限,请使用 IAM 允许政策。

借助允许政策,您可以授予对 Google Cloud 中资源的访问权限。允许政策由角色绑定和元数据组成。角色绑定指定了哪些主账号应对资源具有特定角色。

允许政策始终附加到单个资源。将允许政策附加到资源后,该政策会继承到该资源的后代。

如需创建和应用允许政策,您需要确定接受允许政策的资源,然后使用该资源的 setIamPolicy 方法来创建允许政策。允许政策中的所有主账号都会针对资源及其所有后代获得指定的角色。每个资源只能附加一项允许政策。

如需详细了解允许政策,请参阅了解允许政策

拒绝主账号访问权限的政策

如需拒绝主账号访问资源,请使用 IAM 拒绝政策。IAM 拒绝政策可在 IAM v2 API 中使用。

拒绝政策和允许政策一样,始终会附加到单个资源。您可以将拒绝政策附加到项目、文件夹或组织。此项目、文件夹或组织还充当资源层次结构中政策的父级。将拒绝政策附加到资源后,该政策会继承到该资源的后代。

如需创建和应用拒绝政策,您可以使用 IAM v2 API。创建拒绝政策时,您需要指定拒绝政策所附加的资源。拒绝政策中的所有主账号都将无法使用指定的权限来访问该资源及其所有后代资源。每个资源最多可以附加 500 个拒绝政策。

如需详细了解拒绝政策,请参阅拒绝政策

用于限制主账号可访问的资源的政策

如需限制主账号可以访问的资源,请使用主账号访问权限边界政策。主账号访问权限边界政策可在 IAM v3 API 中使用。

如需创建和应用主账号访问边界政策,您需要创建主账号访问边界政策,然后创建政策绑定以将该政策关联到主账号集。

主账号访问权限边界政策始终是组织的子级。主账号访问权限边界政策的政策绑定是指与政策绑定中引用的主账号集最接近的项目、文件夹或组织的子级。

每个政策绑定都会将一个主账号访问边界政策绑定到一个主账号集。主账号访问边界政策可以绑定到任意数量的主账号集。每个主账号集最多可以有 10 个主账号访问权限边界政策绑定到它。删除主账号访问权限边界政策后,与该政策相关的所有政策绑定也会被删除。

如需详细了解 Principal Access Boundary Policy,请参阅Principal Access Boundary Policy

政策评估

当主账号尝试访问资源时,IAM 会评估所有相关的允许、拒绝和主账号访问权限边界政策,以查看主账号是否有权访问该资源。如果这些政策中有任何政策表明主账号不应能够访问资源,则 IAM 会阻止访问。

实际上,IAM 会同时评估所有政策类型,然后汇总结果以确定主账号是否可以访问该资源。不过,不妨将此政策评估视为在以下阶段进行:

  1. IAM 会检查所有相关的 Principal Access Boundary Policy,以查看主账号是否有资格访问该资源。在以下情况下,主账号访问权限边界政策是相关的:

    • 该政策已绑定到包含主账号的账号集
    • Principal Access Boundary Policy 会阻止主账号尝试使用的权限。主账号访问权限边界政策会阻止的权限取决于主账号访问权限边界政策的版本。您可以在创建主账号访问权限边界政策时指定政策版本。如需了解详情,请参阅主账号访问权限边界政策版本

    检查相关的 Principal Access Boundary Policy 后,IAM 会执行以下操作之一:

    • 如果相关主账号访问权限边界政策不包含主账号尝试访问的资源,则 IAM 会阻止他们访问该资源。
    • 如果相关主账号访问权限边界政策包含主账号尝试访问的资源,则 IAM 会继续执行下一步。
    • 如果没有相关的主账号访问边界政策,或者 IAM 无法评估相关的主账号访问边界政策,则 IAM 会继续执行下一步。
  2. IAM 会检查所有相关的拒绝政策,以查看主账号的权限是否被拒绝。相关的拒绝政策是附加到资源的拒绝政策,以及任何继承的拒绝政策

    • 如果这些拒绝政策中有任何政策阻止主账号使用所需的权限,则 IAM 会阻止他们访问资源。
    • 如果没有拒绝政策阻止主账号使用所需的权限,则 IAM 会继续下一步。
  3. IAM 会检查所有相关的允许政策,以查看主账号是否具有所需权限。相关的允许政策是附加到资源的允许政策,以及任何继承的允许政策

    • 如果主账号没有所需的权限,则 IAM 将阻止它们访问资源。
    • 如果主账号具有所需的权限,则 IAM 允许它们访问资源。

下图展示了此政策评估流程:

IAM 政策评估流程

IAM 政策评估流程

后续步骤