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에서 사용 중인 오류는 0xBB (187)의 상태로 CFM2Exception로 매핑됩니다. 애플리케이션은 HSM에 의해 반환되는 상태를 확인하기 위해 getStatus() 기능을 CFM2Exception에 사용할 수 있다.

  • 다른 SDK의 사용 중인 오류는 HSM Error: HSM is already busy generating the keys(or random bytes) for another request.이라는 메시지를 출력합니다.

해결 방법

다음 작업 중 하나 이상을 수행하여 이러한 문제를 해결할 수 있습니다.

  • 애플리케이션 계층에서 거부된 HSM 작업에 대한 재시도 명령을 추가합니다. 재시도 명령을 활성화하기 전에 클러스터의 크기가 최대 부하를 충족할 수 있도록 적절한지 확인하십시오.

    참고

    클라이언트 SDK 5.8.0 이상의 경우 재시도 명령이 기본적으로 켜져 있습니다. 각 SDK의 재시도 명령 구성에 대한 자세한 내용은 클라이언트 SDK 5 구성 도구의 고급 구성을 참조하십시오.

  • AWS CloudHSM 클러스터에서 HSM 크기 조정의 지침에 따라 클러스터에 HSM을 더 추가하세요.

    중요

    클러스터의 부하 테스트를 통해 예상해야 하는 최대 부하를 확인한 다음 HSM을 하나 더 추가하여 고가용성을 보장하는 것이 좋습니다.