AWS Key Management Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

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

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

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

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

    • cloudhsm:DescribeClusters

    • kms:CreateCustomKeyStore

    • kms:ConnectCustomKeyStore

    • kms:DisconnectCustomKeyStore

    • kms:UpdateCustomKeyStore

    • kms:DeleteCustomKeyStore

    • kms:DescribeCustomKeyStores

    • iam:CreateServiceLinkedRole

     

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

     

  • 在您的自定义密钥存储中创建和管理客户主密钥 (CMK) 的委托人需要具有与在 AWS KMS 中创建和管理任何 CMK 的人员相同的权限。例如,这些委托人需要 IAM 策略和 kms:CreateKey 权限。无需额外权限。自定义密钥存储中的 CMK 的默认密钥策略与 AWS KMS 中 CMK 的默认密钥策略相同。

     

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

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

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

关于 AWS KMS 服务相关角色

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

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

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

区域

与自定义密钥存储功能一样,AWS KMS 和 AWS CloudHSM 适用于的所有 AWS 区域都支持 AWSServiceRoleForKeyManagementServiceCustomKeyStores 角色, except for 欧洲(斯德哥尔摩), AWS GovCloud(美国东部), and AWS GovCloud(美国西部)。有关每个服务支持的 AWS 区域的列表,请参阅 AWS Key Management ServiceAWS CloudHSM

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

创建服务相关角色

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

编辑服务相关角色描述

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

删除服务相关角色

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