控制对 AWS CloudHSM 密钥存储的访问 - AWS Key Management Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

控制对 AWS CloudHSM 密钥存储的访问

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

向 AWS CloudHSM 密钥存储管理员和用户授权

在设计您的 AWS CloudHSM 密钥存储时,请确保使用和管理它的主体仅具有其所需的权限。以下列表描述了 AWS CloudHSM 密钥存储管理员和用户所需的最低权限。

  • 创建和管理 AWS CloudHSM 密钥存储的主体需要以下权限才能使用 AWS CloudHSM 密钥存储 API 操作。

    • cloudhsm:DescribeClusters

    • kms:CreateCustomKeyStore

    • kms:ConnectCustomKeyStore

    • kms:DeleteCustomKeyStore

    • kms:DescribeCustomKeyStores

    • kms:DisconnectCustomKeyStore

    • kms:UpdateCustomKeyStore

    • iam:CreateServiceLinkedRole

  • 创建和管理与您的 AWS CloudHSM 密钥存储关联的 AWS CloudHSM 集群的主体需要创建和初始化 AWS CloudHSM 集群的权限。这包括创建或使用 Amazonn 虚拟私有云(VPC)、创建子网和创建 Amazon EC2 实例所需的权限。他们可能还需要创建和删除 HSM 以及管理备份。有关所需权限的列表,请参阅《AWS CloudHSM User Guide》中的 Identity and access management for AWS CloudHSM

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

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

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

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

关于 AWS KMS 服务相关角色

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

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudhsm:Describe*", "ec2:CreateNetworkInterface", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:DeleteSecurityGroup", "ec2:DescribeVpcs", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces" ], "Resource": "*" } ] }

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

区域

与AWS CloudHSM密钥库功能一样,该AWSServiceRoleForKeyManagementServiceCustomKeyStores角色在所有可用AWS 区域的地方AWS KMSAWS CloudHSM都受支持。有关每项服务支持的 AWS 区域 的列表,请参阅《Amazon Web Services 一般参考》中的 AWS Key Management Service Endpoints and QuotasAWS CloudHSM endpoints and quotas

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

创建服务相关角色

AWS KMS如果角色尚不存在,则在创建AWS CloudHSM密钥库AWS 账户时会在中自动创建AWSServiceRoleForKeyManagementServiceCustomKeyStores服务相关角色。您无法直接创建或重新创建此服务相关角色。

编辑服务相关角色描述

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

删除服务相关角色

AWS KMSAWS 账户即使您已经删除了所有AWS CloudHSM密钥库,也不会从中删除AWSServiceRoleForKeyManagementServiceCustomKeyStores服务相关角色。尽管目前没有删除AWSServiceRoleForKeyManagementServiceCustomKeyStores服务相关角色的程序,AWS KMS但除非您有有效的AWS CloudHSM密钥存储,否则不要代入该角色或使用其权限。