Identity and Access Management (IAM) 提供了多种类型的政策,可帮助您控制主账号可以访问哪些资源。本页可帮助您了解这些政策类型的使用和管理方式之间的区别。
IAM 政策类型
IAM 提供以下类型的政策:
- 允许政策
- 拒绝政策
下表总结了这些政策类型之间的差异:
政策 | 政策函数 | 用于管理政策的 API | 政策与目标之间的关系 | 将政策附加到目标的方法 | 政策的父级资源 |
---|---|---|---|---|---|
允许政策 | 向主账号授予资源访问权限 | 您要管理允许政策的资源的 API |
一对一关系 每项允许政策都会附加到一个资源;每个资源只能有一项允许政策 |
在创建政策时指定资源 | 与允许政策附加到的资源相同 |
拒绝政策 | 确保主账号无法使用特定权限 | IAM v2 API |
一对多关系 每个拒绝政策都会附加到一个资源;每个资源最多可以有 500 个拒绝政策 |
在创建拒绝政策时指定资源 | 与拒绝政策附加到的资源相同 |
以下各部分详细介绍了每种政策类型。
授予主账号访问权限的政策
如需向主账号授予对资源的访问权限,请使用 IAM 允许政策。
借助允许政策,您可以授予对 Google Cloud 中资源的访问权限。允许政策由角色绑定和元数据组成。角色绑定指定了哪些主账号应对资源具有特定角色。
允许政策始终附加到单个资源。将允许政策附加到资源后,该政策会继承到该资源的后代。
如需创建和应用允许政策,您需要确定接受允许政策的资源,然后使用该资源的 setIamPolicy
方法来创建允许政策。允许政策中的所有主账号都会针对资源及其所有后代获得指定的角色。每个资源只能附加一项允许政策。
如需详细了解允许政策,请参阅了解允许政策。
拒绝主账号访问权限的政策
如需拒绝主账号访问资源,请使用 IAM 拒绝政策。IAM 拒绝政策可在 IAM v2 API 中使用。
拒绝政策和允许政策一样,始终会附加到单个资源。您可以将拒绝政策附加到项目、文件夹或组织。此项目、文件夹或组织还充当资源层次结构中政策的父级。将拒绝政策附加到资源后,该政策会继承到该资源的后代。
如需创建和应用拒绝政策,您可以使用 IAM v2 API。创建拒绝政策时,您需要指定拒绝政策所附加的资源。拒绝政策中的所有主账号都将无法使用指定的权限来访问该资源及其所有后代资源。每个资源最多可以附加 500 个拒绝政策。
如需详细了解拒绝政策,请参阅拒绝政策。
政策评估
当主账号尝试访问资源时,IAM 会评估所有相关的允许和拒绝政策,以查看主账号是否有权访问该资源。如果这些政策中有任何政策表明主账号不应有权访问相应资源,IAM 就会阻止访问。
实际上,IAM 会同时评估所有政策类型,然后汇总结果以确定主账号是否可以访问该资源。不过,不妨将此政策评估视为在以下阶段进行:
-
IAM 会检查所有相关的拒绝政策,以查看主账号的权限是否被拒绝。相关的拒绝政策是附加到资源的拒绝政策,以及任何继承的拒绝政策。
- 如果这些拒绝政策中有任何政策阻止主账号使用所需的权限,则 IAM 会阻止他们访问资源。
- 如果没有拒绝政策阻止主账号使用所需的权限,则 IAM 会继续下一步。
-
IAM 会检查所有相关的允许政策,以查看主账号是否具有所需权限。相关的允许政策是附加到资源的允许政策,以及任何继承的允许政策。
- 如果主账号没有所需的权限,则 IAM 将阻止它们访问资源。
- 如果主账号具有所需的权限,则 IAM 允许它们访问资源。
下图展示了此政策评估流程: