什么是IAM政策?谁可以指定这些政策?
策略授予主体对于一组资源的一个或多个角色,以便可以在指定目标资源的上下文中执行特定操作。
下图有助于说明如何创建 IAM 策略。 首先,策略始终通过首先指定主体进行创建。 主题是特定用户,服务标识,访问组或可信概要文件。 其次,选择要允许用户访问的策略目标,例如:资源组中的所有服务、帐户中所有启用 IAM 的服务、帐户管理服务或特定服务实例。 最后,通过从可用角色中进行选择来完成访问策略。 这些角色定义了用户可以完成的具体操作。 根据选择的服务,可能会提供更多配置选项。
如果您具有合适的角色,那么可以分配和管理策略。 下表显示了策略管理任务以及每个任务所需的角色。
操作 | 必需的角色 |
---|---|
在帐户中为所有服务和实例创建策略 | 帐户所有者或所有帐户管理服务和所有启用“身份和访问权”的服务的管理员 |
创建关于帐户中某个服务的策略 | 帐户所有者、所有启用“身份和访问权”的服务的管理员,或帐户中服务的管理员 |
创建关于某个服务实例的策略 | 帐户所有者、所有启用“身份和访问权”的服务的管理员、帐户中服务的管理员、相关资源组中所有服务的管理员或服务实例的管理员 |
公共访问策略类型
您可以通过指定以下类型的访问策略来为用户、服务标识或访问组提供细颗粒度访问权:
- 所有帐户管理服务
- 专门的账户管理服务
- 所有 IAM 帐户管理服务,这是帐户管理服务的子集,其中包括 IAM 身份,IAM 访问管理,IAM 用户管理和 IAM 组
- 特定 IAM 服务
- 帐户内的所有资源
- 属于单个资源组的所有服务内的所有资源,以及管理该资源组的能力
- 资源组中单个服务内的所有资源,以及管理该资源组的能力
- 整个帐户中单个服务内的所有资源,而不考虑将其分配到的资源组
- 单个实例中的资源
- 实例内的单个资源类型,例如 Object Storage 实例中的存储区
如果要启用用户完全管理员访问权以完成 帐户管理任务,例如邀请和除去用户,查看计费和使用情况,管理服务标识,管理访问组,管理用户访问权以及对所有帐户资源的访问权,那么必须为用户分配以下访问权:
- 帐户中已分配管理员和管理员角色的 所有启用身份和访问权的服务 的策略。
- 具有在 所有帐户管理服务上分配的管理员角色的策略。
服务组
您可以分配对一组服务的访问权,以便仅需要单个策略来分配对多个服务的访问权。 这样,您可以减少帐户中的策略数,减少管理访问权的时间和工作量。
- 所有启用身份和访问权的服务: 所有使用 IAM 进行访问管理的目录服务。
- 所有帐户管理服务: 平台服务,例如计费和使用,许可证和权利,企业等。 有关更多信息,请参阅 分配对帐户管理服务的访问权。
- 所有 IAM 帐户管理服务: 帐户管理服务的子集,其中包括 IAM 平台服务 IAM Identity,IAM Access Management,IAM 用户,IAM 组和未来 IAM 服务。
分配 IBM Cloud 访问策略
要帮助您进一步了解如何通过使用 IBM Cloud 中与您可能熟悉的其他云提供者相关的访问策略来分配访问权,请查看以下详细信息和访问策略示例。
IBM Cloud IAM 策略由被授予访问权的身份 (主体) (例如用户或服务标识),被授予访问权的特定资源或服务 (目标) 以及用于定义所选资源或服务的上下文中允许的操作的角色组成。
在 IBM Cloud中,缺省情况下,用户,服务标识或访问组的成员没有任何访问权。 当了解如何允许或拒绝您完成特定操作时,IBM Cloud 访问模型很简单。 直到管理员分配具有特定访问角色的访问策略后,才会授予访问权。 IAM 系统不必评估许可和拒绝策略以确定允许的操作,而系统只需评估您具有策略的资源以及分配的角色允许的访问权级别。
要减少帐户中的策略数并仅保留每个用户所需的最低访问权,您可以识别和除去不常使用的访问策略。 有关更多信息,请参阅 管理不活动策略。
由于 IBM Cloud 是 基于属性的,因此在策略中指定资源时,可以为用户指定要访问的广泛资源集,例如资源组中的所有资源。 或者,您可以缩小用户对单个服务的特定实例或甚至子资源类型 (例如 Object Storage 存储区) 的访问范围。IBM Cloud IAM 提供了高级别的灵活性和粒度,可帮助您仅分配所需的访问权类型。 以下是您可以使用访问策略中的属性分配的不同访问级别的一些示例:
- 所有帐户管理服务
- 专门的账户管理服务
- 帐户中的所有已启用身份和访问权的服务,其中包括使用 IAM 进行访问管理的所有目录服务
- 属于资源组的所有资源
- 整个帐户中单个服务的所有资源类型,而不考虑资源组分配
- 帐户中服务的特定实例
- 实例中的单个子资源类型,例如,Object Storage 实例中的存储桶
如果特定预定义平台或服务角色不适合您在分配访问级别时所查找的内容,那么可以为特定服务创建 定制角色,然后从可用操作中进行选择,以创建符合组织需求的角色。
策略示例
此策略示例授予对属于标识为 abcd2e6fg1h74i44j5kl467m701n5289
且分配了 Viewer
平台角色的名为 default
的资源组的所有服务资源的访问权。 可以将此策略分配给用户,服务标识或访问组。 在这种情况下,会将其分配给 iam_id 为 IBMid-3IAMISBEST1
的用户。
访问组不是用户或服务标识之类的身份; 但是,它们是身份的分组机制。 可以将访问组定义为访问策略的主体集,并且对该组分配的访问权将应用于添加到该组的所有成员。
{
"type": "access",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-3IAMISBEST1"
}
]
}
],
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "7e522a19eb77477e88e96a600c44fb22"
},
{
"name": "resourceGroupId",
"value": "abcd2e6fg1h74i44j5kl467m701n5289"
}
]
}
]
}
除了可以提供对帐户中的服务,特定资源或资源组的访问权的用户,服务标识或访问组的访问策略外,IBM Cloud 还提供将称为服务的访问策略分配给服务授权的功能,该服务授权提供服务之间的访问权。 有关此策略类型的示例,请参阅 使用 API 创建授权。