HSM 节流
当您的工作负载超过 AWS CloudHSM 集群的硬件安全模块(HSM)容量时,您将收到报错消息,指出 HSM 忙碌或已被节流。发生这种情况时,您可能会看到 HSM 的吞吐量降低或拒绝请求的比率上升。此外,HSM 可能会发送以下繁忙错误。
在 PKCS11 中,繁忙错误映射到
CKR_FUNCTION_FAILED
。出现此错误可能有多种原因,但如果 HSM 节流导致此错误,则您的日志中将显示以下日志行:[cloudhsm_provider::hsm1::hsm_connection::e2e_encryption::error] Failed to prepare E2E response. Error: Received error response code from Server. Response Code: 187
[cloudhsm_pkcs11::decryption::aes_gcm] Received error from the server. Error: This operation is already in progress. Internal error code: 0x000000BB
在 JCE 中,繁忙错误映射到
com.amazonaws.cloudhsm.jce.jni.exception.InternalException: Unexpected error with the Provider: The HSM could not queue the request for processing.
其他 SDK 的繁忙错误会打印以下消息:
Received error response code from Server. Response Code: 187
在 PKCS11 中,繁忙错误映射到
CKR_OPERATION_ACTIVE
错误。在 JCE 中,繁忙错误映射到
CFM2Exception
,状态为0xBB (187)
。应用程序可以使用CFM2Exception
上的getStatus()
功能检查 HSM 返回的状态。其他 SDK 的繁忙错误会打印以下消息:
HSM Error: HSM is already busy generating the keys(or random bytes) for another request.
解决方案
您可以通过完成以下一项或多项操作来解决这些问题:
为您的应用程序层中被拒绝的 HSM 操作添加重试命令。在启用重试命令之前,请确保您的集群大小足以满足峰值负载。
注意
对于客户端软件开发工具包 5.8.0 及更高版本,重试命令默认处于启用状态。有关每个 SDK 的重试命令配置的详细信息,请参阅 客户端软件开发工具包 5 配置工具的高级配置。
按照 在 AWS CloudHSM 集群中扩展 HSM 中的说明向您的集群添加更多 HSM。
重要
我们建议您对集群执行负载测试,以确定您的峰值负载预期,然后添加 HSM 以确保高可用性。