HSM 节流 - AWS CloudHSM

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 以确保高可用性。