控制对自定义密钥存储的访问 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

控制对自定义密钥存储的访问

您可以使用 IAM 策略控制对 Amazon KMS 自定义密钥存储和 Amazon CloudHSM 集群的访问。您可以使用 IAM 策略和密钥策略来控制对自定义密钥存储中的 Amazon KMS keys 的访问。我们建议您仅向用户、组和角色提供他们可能执行的任务所需的权限。

向自定义密钥存储管理员和用户授权

在设计您的自定义密钥存储时,请确保使用和管理它的委托人仅具有其所需的权限。以下列表描述了客户密钥存储管理员和用户所需的最低权限。

  • 创建和管理自定义密钥存储的委托人需要以下权限才能使用自定义密钥存储 API 操作。

    • cloudhsm:DescribeClusters

    • kms:CreateCustomKeyStore

    • kms:ConnectCustomKeyStore

    • kms:DisconnectCustomKeyStore

    • kms:UpdateCustomKeyStore

    • kms:DeleteCustomKeyStore

    • kms:DescribeCustomKeyStores

    • iam:CreateServiceLinkedRole

  • 创建和管理与您的自定义密钥存储关联的 Amazon CloudHSM 集群的委托人需要创建和初始化 Amazon CloudHSM 集群的权限。这包括创建或使用 Virtual Private Cloud、创建子网和创建 Amazon EC2 实例所需的权限。他们可能还需要创建和删除 HSM 以及管理备份。有关所需权限的列表,请参阅 Amazon CloudHSM 用户指南中的将用户权限限制为 Amazon CloudHSM 所需权限

  • 在您的自定义密钥存储中创建和管理 Amazon KMS keys 的委托人需要具有与在 Amazon KMS 中创建和管理任何 KMS 密钥的人员相同的权限。自定义密钥存储中的 KMS 密钥的默认密钥策略与 Amazon KMS 中 KMS 密钥的默认密钥策略相同。基于属性的访问控制 (ABAC) 使用标签和别名来控制对 KMS 密钥的访问,对自定义密钥存储中的 KMS 密钥也有效。

  • 使用自定义密钥存储中的 KMS 密钥进行加密操作的委托人需要使用 KMS 密钥执行加密操作的权限,如 kms:Decrypt。您可以在 IAM 或密钥策略中提供这些权限。但是,他们无需任何额外权限即可在自定义密钥存储中使用 KMS 密钥。

授权 Amazon KMS 管理 Amazon CloudHSM 和 Amazon EC2 资源

为了支持您的自定义密钥存储,Amazon KMS 需要获取有关您的 Amazon CloudHSM 集群的信息的权限。它还需要创建将您的自定义密钥存储连接到其 Amazon CloudHSM 集群的网络基础设施的权限。要获得这些权限,Amazon KMS 会在您的 Amazon Web Services 账户 中创建 AWSServiceRoleForKeyManagementServiceCustomKeyStores 服务相关角色。创建自定义密钥存储的用户必须具有能让其创建服务相关角色的 iam:CreateServiceLinkedRole 权限。

关于 Amazon KMS 服务相关角色

服务相关角色是一种 Amazon 角色,该角色可向一个 服务提供代表您调用其他 Amazon 服务的权限。该角色旨在使您能够更轻松地使用多项集成式 Amazon 服务的功能,而无需创建和维护复杂的 IAM 策略。

对于自定义密钥存储,Amazon KMS 使用 AWSKeyManagementServiceCustomKeyStoresServiceRolePolicy 策略创建 AWSServiceRoleForKeyManagementServiceCustomKeyStores 服务相关角色。此策略向该角色授予以下权限:

由于 AWSServiceRoleForKeyManagementServiceCustomKeyStores 服务相关角色仅信任 cks.kms.amazonaws.com,所以只有 Amazon KMS 可以代入此服务相关角色。该角色受限于 Amazon KMS 查看您的 Amazon CloudHSM 群集并将自定义密钥存储连接到其关联 Amazon CloudHSM 群集所需的操作。它不会向 Amazon KMS 提供任何额外权限。例如,Amazon KMS 无权创建、管理或删除您的 Amazon CloudHSM 集群、HSM 或备份。

地区

与自定义密钥存储功能一样,AWSServiceRoleForKeyManagementServiceCustomKeyStores 角色在提供 Amazon KMS 和 Amazon CloudHSM 的所有 Amazon Web Services 区域 中受到支持。有关每项服务支持的 Amazon Web Services 区域 的列表,请参阅 Amazon Web Services 一般参考中的 Amazon Key Management Service 终端节点和配额Amazon CloudHSM 终端节点和配额中。

有关 Amazon 服务如何使用服务相关角色的更多信息,请参阅 IAM 用户指南中的使用服务相关角色

创建服务相关角色

如果 AWSServiceRoleForKeyManagementServiceCustomKeyStores 服务相关角色不存在,当您创建自定义密钥存储时,Amazon KMS 会在您的 Amazon Web Services 账户 中自动创建该角色。您无法直接创建或重新创建此服务相关角色。

编辑服务相关角色描述

您无法在 AWSServiceRoleForKeyManagementServiceCustomKeyStores 服务相关角色中编辑角色名称或策略语句,但可以编辑角色描述。有关说明,请参阅 IAM 用户指南中的编辑服务相关角色

删除服务相关角色

Amazon KMS 不会从您的 Amazon Web Services 账户 中删除 AWSServiceRoleForKeyManagementServiceCustomKeyStores 服务相关角色。如果您已删除了所有自定义密钥存储并且不打算创建任何新的角色,则您不再需要此服务相关角色。除非您具有活动的自定义密钥存储,否则 Amazon KMS 不会代入此角色或使用其权限。但是,目前没有删除 AWSServiceRoleForKeyManagementServiceCustomKeyStores 服务相关角色的过程。