连接和断开 Amazon CloudHSM 密钥存储 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

连接和断开 Amazon CloudHSM 密钥存储

新的 Amazon CloudHSM 密钥存储未连接。您需要先将 Amazon KMS keys 连接到其关联的 Amazon CloudHSM 集群,然后才能在 Amazon CloudHSM 密钥存储中创建和使用这些密钥。您可以随时连接和断开 Amazon CloudHSM 密钥存储,并查看其连接状态

您无需连接 Amazon CloudHSM 密钥存储。您可以将 Amazon CloudHSM 密钥存储保持在无限期断开的状态并且仅在您需要使用它时进行连接。但是,您可能希望定期测试连接以验证设置是否正确以及自定义密钥存储是否可以连接。

注意

仅当密钥存储从未连接或您显式断开密钥存储连接时,Amazon CloudHSM 密钥存储才会具有 DISCONNECTED 状态。如果您的 Amazon CloudHSM 密钥存储状态为 CONNECTED,但您在使用它时遇到问题,请确保其关联的 Amazon CloudHSM 集群处于活动状态,并且包含至少一个活动 HSM。如需帮助解决连接失败问题,请参阅 对自定义密钥存储进行故障排除

连接 Amazon CloudHSM 密钥存储

当您连接 Amazon CloudHSM 密钥存储时,Amazon KMS 会查找关联的 Amazon CloudHSM 集群,连接到该集群,并以 kmsuser 加密用户(CU)身份登录 Amazon CloudHSM 客户端,然后轮换 kmsuser 密码。只要 Amazon CloudHSM 密钥存储处于连接状态,Amazon KMS 仍然保持登录到 Amazon CloudHSM 客户端的状态。

为了建立连接,Amazon KMS 在集群的 Virtual Private Cloud (VPC) 中创建一个名为 kms-<custom key store ID>安全组。该安全组具有一个允许来自集群安全组的入站流量的规则。Amazon KMS 还会在集群的私有子网的每个可用区中创建一个弹性网络接口 (ENI)。Amazon KMS 会将 ENI 添加到 kms-<cluster ID> 安全组和集群的安全组。每个 ENI 的描述都是 KMS managed ENI for cluster <cluster-ID>

连接过程可能需要较长时间才能完成;最多 20 分钟。

在连接 Amazon CloudHSM 密钥存储之前,请验证它是否符合要求。

  • 其关联的 Amazon CloudHSM 集群必须至少包含一个活动 HSM。要查找集群中的 HSM 数量,请在Amazon CloudHSM控制台中查看集群或使用DescribeClusters操作。如有必要,您可以添加 HSM

  • 集群必须具有 kmsuser 加密用户(CU)账户,但当您连接 Amazon CloudHSM 密钥存储时,该 CU 无法登录到集群。要获取有关注销的帮助,请参阅 如何注销并重新连接

  • Amazon CloudHSM 密钥存储的连接状态不能是 DISCONNECTINGFAILED。要查看连接状态,请使用Amazon KMS控制台或DescribeCustomKeyStores响应。如果连接状态为 FAILED,请断开自定义密钥存储,修复问题,然后连接它。

如需帮助解决连接失败问题,请参阅 如何修复连接故障

连接 Amazon CloudHSM 密钥存储后,您可以在其中创建 KMS 密钥,然后在加密操作中使用现有 KMS 密钥。

断开 Amazon CloudHSM 密钥存储的连接

当您断开 Amazon CloudHSM 密钥存储时,Amazon KMS 将从 Amazon CloudHSM 客户端注销,从关联的 Amazon CloudHSM 集群断开,然后移除它创建用于支持连接的网络基础设施。

当某个 Amazon CloudHSM 密钥存储断开时,您可以管理 Amazon CloudHSM 密钥存储及其 KMS 密钥,但无法在 Amazon CloudHSM 密钥存储中创建或使用 KMS 密钥。密钥存储的连接状态为 DISCONNECTED,自定义密钥存储中的 KMS 密钥的密钥状态Unavailable,除非它们是 PendingDeletion。您可以随时重新连接 Amazon CloudHSM 密钥存储。

当您断开自定义密钥存储时,密钥存储中的 KMS 密钥立即变得不可用(视最终一致性而定)。不过,在再次使用 KMS 密钥(例如解密数据密钥)之前,使用受 KMS 密钥保护的数据密钥加密的资源不会受到影响。此问题会影响 Amazon Web Services,因为许多服务使用数据密钥来保护您的资源。有关更多信息,请参阅 不可用的 KMS 密钥如何影响数据密钥

注意

虽然自定义密钥存储已断开连接,但在自定义密钥存储中创建 KMS 密钥或在加密操作中使用现有 KMS 密钥的所有尝试都将失败。此操作可以阻止用户存储和访问敏感数据。

为了更好地估计断开自定义密钥存储的影响,请在自定义密钥存储中标识 KMS 密钥,并确定其过去的使用情况

您可能出于以下原因断开 Amazon CloudHSM 密钥存储:

  • 轮换 kmsuser 密码。每当 Amazon KMS 连接到 Amazon CloudHSM 集群时,它就会更改 kmsuser 密码。要强制轮换密码,只需断开并重新连接。

  • 审核 Amazon CloudHSM 集群中的 KMS 密钥的密钥材料。当您断开自定义密钥存储时,Amazon KMS 会退出 Amazon CloudHSM 客户端中的 kmsuser 加密用户账户。这样,您便能以 kmsuser CU 身份登录到集群并审核和管理 KMS 密钥的密钥材料。

  • 在 Amazon CloudHSM 密钥存储中立即禁用所有 KMS 密钥。您可以使用Amazon Web Services Management Console或DisableKey操作禁用和重新启用密Amazon CloudHSM钥存储中的 KMS 密钥。这些操作会快速完成,但它们一次只针对一个 KMS 密钥。断开 Amazon CloudHSM 密钥存储的连接会立即将 Amazon CloudHSM 密钥中的所有 KMS 密钥的密钥状态更改为 Unavailable,这将阻止在任何加密操作中使用这些 KMS 密钥。

  • 修复失败的连接尝试。如果连接 Amazon CloudHSM 密钥存储的尝试失败(自定义密钥存储的连接状态为 FAILED),则必须在尝试再次连接 Amazon CloudHSM 密钥存储之前将其断开。

连接 Amazon CloudHSM 密钥存储(控制台)

要在 Amazon Web Services Management Console 中连接 Amazon CloudHSM 密钥存储,请首先从 Custom key stores(自定义密钥存储)页面中选择 Amazon CloudHSM 密钥存储。连接过程可能最多需要 20 分钟才能完成。

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Key Management Service (Amazon KMS) 控制台:https://console.aws.amazon.com/kms

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。

  3. 在导航窗格中,选择自定义密钥存储Amazon CloudHSM 密钥存储

  4. 选择要连接的 Amazon CloudHSM 密钥存储的行。

    如果Amazon CloudHSM密钥库的连接状态为 “失败”,则必须在连接自定义密钥库之前断开其连接。

  5. Key store actions(密钥存储操作)菜单中选择 Connect(连接)。

Amazon KMS 将开始连接自定义密钥存储的过程。它将查找关联的 Amazon CloudHSM 集群,构建所需的网络基础设施,连接到网络基础设施,以 kmsuser CU 身份登录到 Amazon CloudHSM 集群,然后轮换 kmsuser 密码。操作完成后,连接状态更改为 “已连接”。

如果操作失败,则会出现一条描述失败原因的错误消息。在尝试再次连接之前,请查看 Amazon CloudHSM 密钥存储的连接状态。如果失败,则必须先断开自定义密钥存储库的连接,然后再重新连接。如果您需要帮助,请参阅对自定义密钥存储进行故障排除

下一步:在 Amazon CloudHSM 密钥存储中创建 KMS 密钥

连接自定义密钥存储 (API)

要连接已断开连接的Amazon CloudHSM密钥库,请使用ConnectCustomKeyStore操作。关联的 Amazon CloudHSM 集群必须包含至少一个活动 HSM,且连接状态不能为 FAILED

连接过程需要较长时间才能完成;最多 20 分钟。除非该过程迅速失败,否则 操作将返回 HTTP 200 响应和无属性的 JSON 对象。但是,此初始响应不指示连接是否成功。要确定自定义密钥库的连接状态,请参阅DescribeCustomKeyStores响应。

本部分中的示例使用 Amazon Command Line Interface (Amazon CLI),但您可以使用任何受支持的编程语言。

要确定 Amazon CloudHSM 密钥存储,请使用自定义密钥存储 ID。您可以在控制台的自定义密钥存储页面上找到 ID,也可以使用不带参数的DescribeCustomKeyStores操作来找到 ID。在运行此示例之前,请将示例 ID 替换为有效的 ID。

$ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

要验证Amazon CloudHSM密钥库是否已连接,请使用DescribeCustomKeyStores操作。默认情况下,此操作将返回您的账户和区域中的所有自定义密钥存储。但您可以使用 CustomKeyStoreIdCustomKeyStoreName 参数(但不能同时使用两者)将响应限制到特定自定义密钥存储。ConnectionStateCONNECTED 表示自定义密钥存储已连接到其 Amazon CloudHSM 集群。

注意

DescribeCustomKeyStores 响应中添加了 CustomKeyStoreType 字段,以区分 Amazon CloudHSM 密钥存储和外部密钥存储。

$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0 { "CustomKeyStores": [ "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleCloudHSMKeyStore", "CloudHsmClusterId": "cluster-1a23b4cdefg", "CustomKeyStoreType": "AWS_CLOUDHSM", "TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "CONNECTED" ], }

如果 ConnectionState 值为 FAILED,ConnectionErrorCode 元素将指示失败的原因。在此情况下,Amazon KMS 在您的账户中找不到集群 ID 为 cluster-1a23b4cdefg 的 Amazon CloudHSM 集群。如果您删除了该集群,则可以从原始集群的备份还原它,然后编辑自定义密钥存储的集群 ID。有关响应连接错误代码的帮助信息,请参阅 如何修复连接故障

$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0 { "CustomKeyStores": [ "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CloudHsmClusterId": "cluster-1a23b4cdefg", "CustomKeyStoreType": "AWS_CLOUDHSM", "TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "FAILED" "ConnectionErrorCode": "CLUSTER_NOT_FOUND" ], }

下一步:在 Amazon CloudHSM 密钥存储中创建 KMS 密钥

断开 Amazon CloudHSM 密钥存储(控制台)

要在 Amazon Web Services Management Console 中断开已连接的 Amazon CloudHSM 密钥存储,请首先从 Custom Key Stores(自定义密钥存储)页面选择该 Amazon CloudHSM 密钥存储。

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Key Management Service (Amazon KMS) 控制台:https://console.aws.amazon.com/kms

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。

  3. 在导航窗格中,选择自定义密钥存储Amazon CloudHSM 密钥存储

  4. 选择要断开连接的外部密钥存储的行。

  5. Key store actions(密钥存储操作)菜单中选择 Disconnect(断开连接)。

操作完成后,连接状态将从 “断开连接” 更改为 “已断开连接”。如果操作失败,则会出现一条错误消息,描述问题并提供有关如何修复它的帮助。如果您需要更多帮助,请参阅对自定义密钥存储进行故障排除

断开 Amazon CloudHSM 密钥存储(API)

要断开连接的Amazon CloudHSM密钥存储库,请使用DisconnectCustomKeyStore操作。如果此操作成功,则 Amazon KMS 返回 HTTP 200 响应和无属性的 JSON 对象。

本部分中的示例使用 Amazon Command Line Interface (Amazon CLI),但您可以使用任何受支持的编程语言。

本示例将断开 Amazon CloudHSM 密钥存储。在运行此示例之前,请将示例 ID 替换为有效的 ID。

$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

要验证Amazon CloudHSM密钥存储是否已断开连接,请使用DescribeCustomKeyStores操作。默认情况下,此操作将返回您的账户和区域中的所有自定义密钥存储。但您可以使用 CustomKeyStoreIdCustomKeyStoreName 参数(但不能同时使用两者)将响应限制到特定自定义密钥存储。DISCONNECTEDConnectionState 值表示 Amazon CloudHSM 密钥存储示例未连接到其 Amazon CloudHSM 集群。

$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0 { "CustomKeyStores": [ "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionState": "DISCONNECTED", "CreationDate": "1.499288695918E9", "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CustomKeyStoreType": "AWS_CLOUDHSM", "TrustAnchorCertificate": "<certificate string appears here>" ], }