IBM Cloud Docs
用户角色和资源

用户角色和资源

IBM® Key Protect for IBM Cloud® 支持集中式访问控制系统,该系统利用 IBM Cloud® Identity and Access Management 来帮助您为用户分配正确的角色以及对帐户,服务实例,加密密钥和密钥环的访问权。

由于 Key Protect 是一个密钥管理系统,其本质上涉及加密重要且通常保密的数据,因此帐户,服务实例,加密密钥和密钥环上的许可权结构必须强大且灵活。 为此,可以根据所讨论的管理级别,以不同的组合分配 IBM Cloud® Identity and Access Management 角色。

这些不同种类的访问类似于许多种类的生活情境。 一个人可能是一家公司的创始人和 CEO,却只是当地俱乐部的普通成员,同样也完全没有写交通罚单的权限。 以类似的方式,Key Protect 角色是在 Key Protect的特定部分的上下文中分配的,但为了使事情更简单,Key Protect 会在特定资源上定义“缺省”角色,除非另行指定 (我们稍后将进行更详细的讨论)。

几乎所有 IBM Cloud 产品都有两个主要管理区域: 帐户 (也称为“平台”) 和该帐户拥有的 服务实例。 例如,大型银行可能只有一个帐户 (由高管领导控制),并且针对银行内的每个组织单元都有单独的服务实例 (例如,一个单元可能管理银行帐户,而另一个单元管理贷款)。 虽然在帐户级别具有权限的用户可能也具有对各种实例的权限 (也许尽管并非总是如此,但也可能存在其他方式),但请注意,为帐户角色提供的名称与为服务实例中的角色提供的名称不同,反映了帐户角色与服务实例角色之间的这种差异。 有关这些角色及其名称和许可权的更多信息,请查看 IAM 角色和操作

IAM 访问权的工作方式

在帐户中设置和组织资源组之后,您可以利用以下几个策略来简化访问管理过程:

访问组
您可以通过授予对访问组中所有身份的相同访问权 (而不是针对单个用户,服务标识或可信概要文件多次分配相同的访问权) 来最小限度地管理分配的策略数。 必须先邀请用户加入您的帐户,然后才能将其添加到访问组。 如果用户有资格使用作为访问组成员的可信概要文件,那么您不需要邀请他们加入您的帐户。
可信概要文件
如果您的组织具有企业目录,那么可信概要文件可以减少管理访问权的时间和工作量。 它简化了企业中联合用户的 IBM Cloud 帐户的登录过程。 您可以通过创建可信概要文件自动授予联合用户或计算资源对帐户的访问权。 对于联合用户,根据 SAML 属性添加条件以定义哪些联合用户可以应用概要文件。 对于计算资源,请指定特定资源,或者根据资源属性添加条件以定义哪些计算资源可以应用概要文件。 对于这两种实体类型,授予的访问级别由每个可信概要文件中指定的访问策略或可信概要文件所属的访问组确定。 但是,可信概要文件不需要邀请联合用户加入帐户,只有由外部身份提供者 (IdP) 联合的用户才能应用可信概要文件。

当您是多个访问组的成员时,当您访问帐户时,将同时应用所有策略。 作为联合用户,您可以选择应用不同的可信概要文件,但在登录时仅选择一个要应用的概要文件。 例如,如果要完成与开发者相关的任务,请在登录时选择 Developer 概要文件。 如果要完成与管理员相关的任务,请选择具有特权许可权的 Admin 概要文件。 这样,您就可以减少错误地执行特权操作的风险。

策略由主体、目标和角色组成。 这里的主体是访问组或受信任的配置文件。 目标是指希望主体访问的内容,如资源组中的一组资源、服务实例、账户中的所有服务或服务的所有实例。 角色定义了授予的访问权限级别。

有关平台和服务角色如何在 Key Protect中工作的更多信息,请查看 平台角色和服务角色

最佳实践

帐户中允许的策略总数存在 限制。 您可以使用一些策略来确保未达到限制,并减少管理帐户中身份 (用户,服务标识或可信概要文件) 的访问权所花费的时间:

  • 使用最小特权原则并仅分配必需的访问权。 这可帮助您确保帐户中的身份仅限于要允许的操作。 例如,为需要访问帐户和每个服务实例 (及其关联密钥) 的用户创建新策略,而不是由共享其凭证的帐户所有者 (缺省情况下为他们提供对其帐户下所有资源的 管理员管理员 访问权)。
  • 向资源组添加资源以进一步最小化必需策略的数量。 例如,您可能有一个团队在使用帐户中的特定资源的项目上工作。 使用仅向特定资源组中的资源分配访问权的策略将团队成员添加到访问组或可信概要文件。 这样,您就不需要为每个团队成员的每个资源分配策略。 有关分配细颗粒度访问权的更多信息,请查看 将细颗粒度访问权分配给单个密钥
  • 使用访问组来简化对需要相同访问级别的身份的管理访问。 您可以设置定义了特定策略的访问组,然后将这些身份添加到该组。 如果组成员稍后需要更多访问权,那么只需为访问组定义新策略。
  • 使用访问权管理标记可大规模控制对帐户中资源的访问权。 通过仅向具有附加的特定标记的资源分配访问权,可以避免对定义的策略进行多次更新。 有关更多信息,请参阅 使用标记控制对资源的访问
  • 使用可信概要文件可自动授予联合用户和计算资源对您的帐户的访问权。 通过这种方式,可以在登录期间将联合用户映射到一个或多个可信概要文件,方法是评估基于 SAML 的属性以确定他们可以应用哪些概要文件。 将可信概要文件用于计算资源可帮助您避免存储用于运行应用程序的凭证以及管理和轮换凭证。 您还可以添加可信概要文件以访问组,从而利用您已创建的策略集。
  • 定期审核谁可以管理访问控制和删除关键资源。 由于具有提升许可权的用户的错误和误用可能会导致帐户,服务实例和受服务实例中的密钥保护的数据受损,因此请确保通过审计具有这些角色的用户来维护正确的访问权。 请记住,缺省情况下,创建的任何新密钥,密钥环或服务实例都受现有角色定义约束。 如果不应该由分配为实例的 管理者 的新用户访问或修改新密钥,那么必须专门分配该限制,因为缺省情况下,实例管理者有权访问实例中的所有密钥,包括删除密钥的能力。

怎样才能制定良好的访问小组战略?

访问组是可以授予同一 IAM 访问权的分组中用户,服务标识和可信概要文件的组织。 单个访问组中的所有身份都继承相同的访问权。

分配对资源组和所包含资源的访问权的逻辑方法是 创建一个访问组,每个访问级别都是必需的。 然后可以将每个访问组映射到先前创建的资源组。 例如,要控制对 CustApp 项目的访问权,可以创建下列访问组:

  • 审计员组
  • 开发者组
  • 管理员组

为审计员组分配两个访问策略,授予查看器访问 CustApp-TestCustApp-Prod 资源和资源组的权限。 为开发人员组分配两个访问策略,授予编辑访问 CustApp-DevCustApp-Test 资源和资源组的权限。 为管理员组分配三个访问策略,授予管理员访问所有三个 CustApp 资源组及其资源的权限。

通过创建访问组并为其分配两个策略,可以为账户中的所有内容分配管理员访问权限。 要创建第一个策略,请在 帐户 中选择具有管理员平台角色和管理员服务角色的 所有启用身份和访问权的服务。 要创建第二个策略,请选择分配了管理员角色的 所有帐户管理服务

平台角色和服务角色

在此部分中,“对象”一词用作诸如密钥或密钥环或服务实例或帐户之类的广义术语。

如前所述,角色在平台 (帐户) 和服务级别都存在。 如果您不确定平台或服务角色允许用户执行什么操作,请记住平台角色主要与 IBM Cloud 服务 (例如 资源控制器 或 Cloud Identity and Access Management) 进行交互。 另一方面,服务内部的角色主要与相关 API 进行交互,在本例中是 Key Protect API。 因此,正如您所看到的那样,平台角色在服务实例中的使用范围有限 (对于 管理员 角色),无法为特定对象 (例如密钥环) 创建访问策略。

平台角色

  • 管理员: 具有对特定对象及其“子”对象 (例如,键是实例的子对象) 的全部权限,包括邀请新用户并对该对象分配角色的权限 (只有管理员才能分配角色)。 请注意,缺省情况下,管理员没有服务角色。 但是,他们可以将角色分配给自己。
  • 编辑器: 可以在帐户级别查看,创建和删除实例,但不能邀请新用户。 对服务实例中的对象 (例如密钥) 的使用有限,无法查看这些对象。
  • 操作员: 可以在帐户级别查看实例,但无法对其进行编辑。 对服务实例中的对象 (例如密钥) 的使用有限,无法查看这些对象。
  • 查看者: 可以在帐户级别查看实例,但无法对其进行编辑。 对服务实例中的对象 (例如密钥) 的使用有限,无法查看这些对象。

将在整个帐户上,特定服务实例上或服务实例内的对象中分配平台角色。

列出适用于Key Protect的平台管理角色。
操作 查看者 编辑者 运算符 管理员
查看 Key Protect 实例 复选标记图标 复选标记图标 复选标记图标 复选标记图标
创建 Key Protect 实例 复选标记图标 复选标记图标
删除 Key Protect 实例 复选标记图标 复选标记图标
邀请新用户并管理访问策略 复选标记图标

缺省情况下,当帐户级别角色授予用户对服务实例的特定许可权时,还可以在特定服务实例上分配角色。 例如,帐户 编辑者 (具有查看,创建和删除实例的能力,但不具有分配角色的能力) 可以成为特定服务实例的 管理员,从而允许他们在该服务实例中分配角色。

服务角色可以应用于服务实例中的三个第一类对象: 实例 整体,特定 密钥密钥环。 正如缺省情况下帐户角色具有对实例的许可权一样,缺省情况下实例管理员也具有对密钥和密钥环的许可权。 但是,如果需要,可以更细粒度地分配这些许可权,例如,仅向用户授予对特定密钥或密钥环的 管理者 角色,以及对整个实例的一些较低级别的许可权。

可以为每个实例分配服务角色,也可以为帐户中的所有实例分配服务角色。

服务实例角色

请注意,角色中包含的许可权为 加法。 例如,_管理者_具有 读者 具有的所有许可权以及更多许可权。 例外情况是 KeyPurge 角色,该角色包含不属于任何其他角色的 kms.secrets.purge 操作,因此必须显式设置。

  • 管理器: 具有对特定对象的完整权限范围 (例如,密钥的管理器能够打包,解包和删除密钥,以及读取和更新 Key Protect 策略 (例如 dualAuthDeleteallowedNetworkallowedIP 等) 的独占权限。
  • 写程序: 在使用对象 (包括检索密钥及其元数据的能力) 时,管理者具有大部分相同的权限,但通常无法删除或禁用该对象。
  • 读者: 可以使用对象 (例如,密钥阅读器可以合并和解包密钥),但不能创建,删除或修改对象。
  • ReaderPlus:拥有与阅读器相同的权限,还能检索标准密钥的有效载荷。
  • KeyPurge(钥匙清除):具有 在四小时后清除钥匙的 功能。
  • KmipAdapterManager:拥有管理访问通过 KMIP 协议 管理的资源所需的所有权限

下表显示了服务访问角色与 Key Protect 权限的映射关系。

列出适用于Key Protect关键资源的服务访问角色
操作 读者 ReaderPlus 写入者 管理者 KeyPurge KmipAdapterManager
创建密钥 复选标记图标 复选标记图标
导入密钥 复选标记图标 复选标记图标
检索密钥 复选标记图标 复选标记图标 复选标记图标
检索密钥元数据 复选标记图标 复选标记图标 复选标记图标 复选标记图标
检索密钥总计 复选标记图标 复选标记图标 复选标记图标 复选标记图标 复选标记图标
列出密钥 复选标记图标 复选标记图标 复选标记图标 复选标记图标 复选标记图标
列出密钥版本 复选标记图标 复选标记图标 复选标记图标 复选标记图标
打包密钥 复选标记图标 复选标记图标 复选标记图标 复选标记图标
解包密钥 复选标记图标 复选标记图标 复选标记图标 复选标记图标
重新打包密钥 复选标记图标 复选标记图标 复选标记图标 复选标记图标
轮换密钥 复选标记图标 复选标记图标
禁用密钥 复选标记图标
启用密钥 复选标记图标
密钥的调度删除 复选标记图标 复选标记图标
取消删除密钥 复选标记图标 复选标记图标
删除密钥 复选标记图标
复原密钥 复选标记图标
修补密钥 复选标记图标
同步密钥 复选标记图标 复选标记图标
4 小时后清除密钥 复选标记图标
列出适用于Key Protect钥匙圈资源的服务访问角色
操作 读者 ReaderPlus 写入者 管理者 KeyPurge KmipAdapterManager
创建密钥环 复选标记图标 复选标记图标
列出密钥环 复选标记图标 复选标记图标 复选标记图标 复选标记图标 复选标记图标
删除密钥环 复选标记图标
列出适用于Key Protect策略资源的服务访问角色
操作 读者 ReaderPlus 写入者 管理者 KeyPurge KmipAdapterManager
设置关键策略 复选标记图标
列出关键策略 复选标记图标
设置实例策略 复选标记图标
列出实例策略 复选标记图标
列出适用于导入令牌资源的服务访问角色
操作 读者 ReaderPlus 写入者 管理者 KeyPurge KmipAdapterManager
创建导入令牌 复选标记图标 复选标记图标
检索导入令牌 复选标记图标 复选标记图标
列出适用于Key Protect注册资源的服务访问角色
操作 读者 ReaderPlus 写入者 管理者 KeyPurge KmipAdapterManager
创建注册[^services-1] 复选标记图标 复选标记图标 复选标记图标 复选标记图标
列出密钥的注册 复选标记图标 复选标记图标 复选标记图标 复选标记图标
列出任何密钥的注册 复选标记图标 复选标记图标 复选标记图标 复选标记图标
更新注册[^services-2] 复选标记图标 复选标记图标 复选标记图标 复选标记图标
替换注册[^services-3] 复选标记图标 复选标记图标 复选标记图标 复选标记图标
删除注册[^services-4] 复选标记图标 复选标记图标 复选标记图标 复选标记图标

KeyPurge 角色仅授予清除密钥的能力,应视为可添加到其他服务访问角色 (例如 Manager)。

列出适用于Key Protect关键资源的服务访问角色
操作 读者 ReaderPlus 写入者 管理者 KeyPurge KmipAdapterManager
列出 KMIP 适配程序 复选标记图标 复选标记图标
创建 KMIP 适配器 复选标记图标 复选标记图标
检索 KMIP 适配器 复选标记图标 复选标记图标
删除 KMIP 适配器 复选标记图标 复选标记图标
列出 KMIP 适配器的 KMIP 对象 复选标记图标 复选标记图标
从 KMIP 适配器读取 KMIP 对象 复选标记图标 复选标记图标
从 KMIP 适配器删除 KMIP 对象 复选标记图标 复选标记图标
列出 KMIP 适配器的客户证书 复选标记图标 复选标记图标
为 KMIP 适配器添加客户证书 复选标记图标 复选标记图标
从 KMIP 适配器读取客户证书 复选标记图标 复选标记图标
从 KMIP 适配器中删除客户证书 复选标记图标 复选标记图标

写入器阅读器ReaderPlus 角色无法访问 KMIP 协议。

角色和 Cloud Identity and Access Management 策略

当 Key Protect 控制台允许用户使用这些角色进行细颗粒度访问控制时,请记住这些角色已连接到 Cloud Identity and Access Management 策略:

  • 服务名称 (对于 Key Protect,始终为 kms)
  • 服务实例标识
  • 密钥环标识
  • 资源类型 (仅支持 key )
  • 资源标识
  • 帐户标识 (应始终在策略中指定)

以下是 IAM API 返回的策略示例:

"resources": [
    {
        "attributes": [
            {
                "name": "accountId",
                "value": "$ACCOUNT_ID",
            },
            {
                "name": "serviceName",
                "value": "kms",
            },
            {
                "name": "resourceType",
                "value": "key",
            },
            {
                "name": "resource",
                "value": "$KEY_ID",
            },
            {
                "name": "keyRing",
                "value": "$KEY_RING_ID",
            }
        ]
    }
]

可以在策略中应用这些属性的任何组合。 如果该策略具有附加的管理员角色,那么这意味着应用了此策略的任何 user/service id/access group 都可以创建应用于已被授予的策略的子资源的策略。 换言之,所有子管理员用户只能具有与父管理员相同的访问权 (在其策略上指定的属性完全相同) 或小于父管理员的访问权 (在其策略上指定的属性和指定的其他属性完全相同)。

下一步

帐户所有者和管理员可以邀请用户并设置对应于用户可以执行的 Key Protect 操作的服务策略。

  • 有关在 IBM Cloud UI 中分配用户角色的更多信息,请参阅 管理 IAM 访问