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

在自定义密钥存储中使用 KMS 密钥

自定义密钥存储中创建对称 KMS 密钥后,您可以将其用于以下加密操作:

自定义密钥存储中不支持非对称 KMS 密钥和非对称数据密钥对。因此,您不能使用特定于非对称 KMS 密钥的操作——SignVerifyGetPublicKey。此外,自定义密钥存储不支持生成非对称密钥对的 GenerateDataKeyPairGenerateDataKeyPairWithoutPlaintext

当您在请求中使用 KMS 密钥时,按 KMS 密钥的 ID 或别名对其进行标识;您无需指定自定义密钥存储或 Amazon CloudHSM 集群。响应包含为任何对称 KMS 密钥返回的相同字段。

但是,在自定义密钥存储中使用 KMS 密钥时,加密操作完全在与自定义密钥存储关联的 Amazon CloudHSM 集群中执行。该操作使用集群中与您选择的 KMS 密钥关联的密钥材料。

要做到这一点,必须满足以下条件。

  • KMS 密钥的密钥状态必须为 Enabled。若要查找密钥状态,请使用 Amazon Web Services Management Console 中的 Status(状态)字段或 DescribeKey 响应中的 KeyState 字段。

  • 自定义密钥存储必须连接到其 Amazon CloudHSM 集群。其在 Amazon Web Services Management Console 中的状态或在 DescribeCustomKeyStores 相应中的 ConnectionState 必须为 CONNECTED

  • 与自定义密钥存储关联的 Amazon CloudHSM 集群必须包含至少一个活动 HSM。要查找集群中的活动 HSM 的数量,请使用 Amazon KMS 控制台、Amazon CloudHSM 控制台或 DescribeClusters 操作。

  • Amazon CloudHSM 集群必须包含 KMS 密钥的密钥材料。如果已从集群中删除密钥材料,或者已从未包含密钥材料的备份中创建 HSM,则加密操作将失败。

如果未满足这些条件,则加密操作失败,并且 Amazon KMS 会返回 KMSInvalidStateException 异常。通常,您只需重新连接自定义密钥存储。有关其他帮助,请参阅如何修复失败的 KMS 密钥

在自定义密钥存储中使用 KMS 密钥时,请注意每个自定义密钥存储中的 KMS 密钥针对加密操作请求共享每秒配额。如果您超过该配额,则 Amazon KMS 将返回 ThrottlingException。如果与自定义密钥存储关联的 Amazon CloudHSM 正在处理大量命令(包括与自定义密钥存储不相关的命令),则您可能以较低速率获得 ThrottlingException。如果您收到任何请求的 ThrottlingException,请降低您的请求速率并重试这些命令。有关自定义密钥存储中加密操作的请求配额的详细信息,请参阅 自定义密钥存储配额