

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사용자 지정 키 스토어 문제 해결
<a name="fix-keystore"></a>

AWS CloudHSM 키 스토어는 가용성과 복원력을 제공하도록 설계되었습니다. 그러나 AWS CloudHSM 키 스토어를 계속 작동하려면 몇 가지 오류 조건을 복구해야 할 수 있습니다.

**Topics**
+ [사용 불가 KMS 키를 수정하는 방법](#fix-unavailable-cmks)
+ [오류가 발생하는 KMS 키를 수정하는 방법](#fix-cmk-failed)
+ [연결 오류를 수정하는 방법](#fix-keystore-failed)
+ [암호화 작업 실패에 응답하는 방법](#fix-keystore-communication)
+ [유효하지 않은 `kmsuser` 자격 증명을 수정하는 방법](#fix-keystore-password)
+ [불필요한 키 구성 요소를 삭제하는 방법](#fix-keystore-orphaned-key)
+ [KMS 키에서 삭제된 키 구성 요소를 복구하는 방법](#fix-keystore-recover-backing-key)
+ [`kmsuser`로 로그인하는 방법](#fix-login-as-kmsuser)

## 사용 불가 KMS 키를 수정하는 방법
<a name="fix-unavailable-cmks"></a>

[키 스토어에서 ](key-state.md)의 AWS CloudHSM 키 상태는 일반적으로 입니다`Enabled`. AWS KMS keys 모든 KMS 키와 마찬가지로 키 스토어에서 KMS 키를 비활성화하거나 삭제를 예약하면 AWS CloudHSM 키 상태가 변경됩니다. 하지만 다른 KMS 키와 달리 사용자 지정 키 스토어의 KMS 키는 [키 상태](key-state.md)가 `Unavailable`일 수도 있습니다.

키 상태가 `Unavailable`이면 KMS 키가 의도적으로 [연결 해제](disconnect-keystore.md)된 사용자 지정 키 스토어에 있고, 연결 실패 시 재연결을 시도한다는 것을 나타냅니다. KMS 키가 사용 불가 상태인 경우에는 KMS 키를 확인 및 관리할 수 있지만, 이를 [암호화 작업](manage-cmk-keystore.md#use-cmk-keystore)에 사용할 수 없습니다.

KMS 키의 키 상태를 확인하려면 **(고객 관리형 키** 페이지에서 KMS 키의 **상태** 필드를 확인합니다. 또는 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 작업을 사용해 응답의 `KeyState` 요소를 확인합니다. 자세한 내용은 [키 식별 및 보기](viewing-keys.md)을 참조하세요.

연결이 해제된 사용자 지정 키 스토어에서 KMS 키의 키 상태는 `Unavailable` 또는 `PendingDeletion`이 됩니다. 사용자 지정 키 스토어가 연결 해제되었더라도 사용자 지정 키 스토어에서 삭제가 예약된 KMS 키의 키 상태는 `Pending Deletion`입니다. 따라서 사용자 지정 키 스토어를 재연결하지 않고도 예약된 키 삭제를 취소할 수 있습니다.

사용 불가 상태인 KMS 키를 수정하려면 [사용자 지정 키 스토어를 다시 연결합니다](disconnect-keystore.md). 사용자 지정 키 스토어가 다시 연결되고 나면 사용자 지정 키 스토어의 KMS 키 상태가 이전 상태(`Enabled` 또는 `Disabled`)로 자동 복구됩니다. 삭제 보류 중인 KMS 키는 `PendingDeletion` 상태로 유지됩니다. 하지만 문제가 지속되는 동안 [사용 불가 상태인 KMS 키를 활성화 및 비활성화](enabling-keys.md)해도 키 상태는 변경되지 않습니다. 이러한 활성화 또는 비활성화 작업은 키가 사용 가능한 상태가 될 때만 효과가 있습니다.

연결 실패에 대한 도움말은 [연결 오류를 수정하는 방법](#fix-keystore-failed) 단원을 참조하십시오.

## 오류가 발생하는 KMS 키를 수정하는 방법
<a name="fix-cmk-failed"></a>

 AWS CloudHSM 키 스토어에서 KMS 키를 생성하고 사용하는 데 발생하는 문제는 AWS CloudHSM 키 스토어, 연결된 AWS CloudHSM 클러스터, KMS 키 또는 키 구성 요소의 문제로 인해 발생할 수 있습니다.

 AWS CloudHSM 키 스토어가 AWS CloudHSM 클러스터에서 연결 해제되면 사용자 지정 키 스토어에 있는 KMS 키의 키 상태는 입니다`Unavailable`. 연결 해제된 키 스토어에서 KMS AWS CloudHSM 키를 생성하라는 모든 요청은 `CustomKeyStoreInvalidStateException` 예외를 반환합니다. 데이터 키를 암호화, 해독 또는 생성하라는 모든 요청은 `KMSInvalidStateException` 예외 메시지를 반환합니다. 문제를 해결하려면 [AWS CloudHSM 키 스토어를 다시 연결합니다](connect-keystore.md).

그러나 AWS CloudHSM 키 스토어에서 [암호화 작업에](manage-cmk-keystore.md#use-cmk-keystore) KMS 키를 사용하려는 시도는 키 상태가 `Enabled`이고 키 AWS CloudHSM 스토어의 연결 상태가 인 경우에도 실패할 수 있습니다`Connected`. 이 오류는 다음 문제 중 하나로 인해 발생할 수 있습니다.
+ KMS 키에 대한 키 구성 요소가 연결 AWS CloudHSM 클러스터에서 삭제되었을 수 있습니다. 조사하려면 KMS 키의 키 구성 요소의 [키 ID를 확인](find-handle-for-cmk-id.md)하고 필요할 경우 [키 구성 요소 복구](#fix-keystore-recover-backing-key)를 시도합니다.
+  AWS CloudHSM 키 스토어와 연결된 AWS CloudHSM 클러스터에서 모든 HSMs이 삭제되었습니다. 암호화 작업의 키 스토어에서 KMS AWS CloudHSM 키를 사용하려면 클러스터에 하나 이상의 활성 HSM이 AWS CloudHSM 포함되어야 합니다. AWS CloudHSM 클러스터에서 HSMs의 수와 상태를 확인하려면 [AWS CloudHSM 콘솔 또는 DescribeClusters 작업을 사용합니다](https://docs.aws.amazon.com/cloudhsm/latest/userguide/add-remove-hsm.html). [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 클러스터에 HSM을 추가하려면 AWS CloudHSM 콘솔 또는 [CreateHsm](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) 작업을 사용합니다.
+  AWS CloudHSM 키 스토어와 연결된 AWS CloudHSM 클러스터가 삭제되었습니다. 이 문제를 수정하려면 원래 클러스터와 관련된 [백업에서 클러스터를 생성](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)합니다(예: 원래 클러스터의 백업이나 원래 클러스터를 생성하는 데 사용된 백업). 그런 다음, 사용자 지정 키 스토어 설정에서 [클러스터 ID를 편집](update-keystore.md)합니다. 지침은 [KMS 키에서 삭제된 키 구성 요소를 복구하는 방법](#fix-keystore-recover-backing-key) 섹션을 참조하세요.
+ 사용자 지정 키 스토어와 연결된 AWS CloudHSM 클러스터에 사용 가능한 PKCS \$111 세션이 없습니다. 이는 일반적으로 트래픽을 처리하기 위해 추가 세션이 필요한 버스트 트래픽이 높은 기간 동안 발생합니다. PKCS \$111 세션에 대한 오류 메시지와 함께 `KMSInternalException`에 응답하려면 요청을 백오프하고 다시 시도합니다.

## 연결 오류를 수정하는 방법
<a name="fix-keystore-failed"></a>

[AWS CloudHSM 키 스토어를 클러스터에 연결](connect-keystore.md)하려고 하는데 작업이 실패하면 AWS CloudHSM 키 스토어의 연결 상태가 로 변경됩니다`FAILED`. AWS CloudHSM AWS CloudHSM 키 스토어의 연결 상태를 찾으려면 콘솔 또는 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용합니다 AWS KMS .

또는, 일부 연결 시도가 쉽게 감지되는 클러스터 구성 오류로 인해 빠르게 실패합니다. 이 경우 연결 상태는 여전히 `DISCONNECTED`입니다. 이러한 실패는 시도가 실패한 이유를 설명하는 오류 메시지 또는 [예외](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html#API_ConnectCustomKeyStore_Errors)를 반환합니다. 예외 설명 및 [클러스터 요구 사항을](create-keystore.md#before-keystore) 검토하고, 문제를 해결하고, 필요한 경우 [AWS CloudHSM 키 스토어를 업데이트](update-keystore.md)하고, 다시 연결을 시도합니다.

연결 상태가 `FAILED`인 경우 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 실행하고 응답에서 `ConnectionErrorCode` 요소를 확인합니다.

**참고**  
 AWS CloudHSM 키 스토어의 연결 상태가 인 경우 다시 연결하기 전에 [AWS CloudHSM 키 스토어의 연결을 해제](disconnect-keystore.md)해야 `FAILED`합니다. AWS CloudHSM 키 스토어를 연결 `FAILED` 상태로 연결할 수 없습니다.
+ `CLUSTER_NOT_FOUND`는가 지정된 AWS CloudHSM 클러스터 ID로 클러스터를 찾을 AWS KMS 수 없음을 나타냅니다. 잘못된 클러스터 ID가 API 작업에 제공되었거나 클러스터가 삭제되었지만 대체되지 않았기 때문에 이런 문제가 발생할 수 있습니다. 이 오류를 해결하려면 AWS CloudHSM 콘솔 또는 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 작업을 사용하여 클러스터 ID를 확인합니다. 클러스터가 삭제된 경우에는 원래 클러스터의 [최신 백업에서 클러스터를 생성](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)합니다. 그런 다음 [AWS CloudHSM 키 스토어의 연결을](disconnect-keystore.md) 해제하고 [AWS CloudHSM 키 스토어 클러스터 ID 설정을 편집한](update-keystore.md) 다음 [AWS CloudHSM 키 스토어를 클러스터에 다시 연결합니다](connect-keystore.md).
+ `INSUFFICIENT_CLOUDHSM_HSMS`는 연결된 AWS CloudHSM 클러스터에 HSMs이 포함되어 있지 않음을 나타냅니다. 연결을 하려면 클러스터에 최소 하나의 HSM이 포함되어 있어야 합니다. 클러스터에서 HSM의 수를 확인하려면 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 작업을 사용합니다. 이 오류를 해결하려면 클러스터에 [최소 하나의 HSM을 추가](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-hsm.html)합니다. 여러 개의 HSM을 추가하는 경우에는 서로 다른 가용 영역에서 이들을 생성하는 것이 가장 좋습니다.
+ `INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET`는 AWS CloudHSM 클러스터와 연결된 하나 이상의 프라이빗 서브넷에 사용 가능한 IP 주소가 없기 때문에가 AWS CloudHSM 키 스토어를 클러스터에 AWS KMS 연결할 수 없음을 나타냅니다. [https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html) AWS CloudHSM 키 스토어 연결에는 연결된 각 프라이빗 서브넷에 1개의 무료 IP 주소가 필요하지만 2개가 선호됩니다.

  기존 서브넷에 [IP 주소](https://aws.amazon.com/premiumsupport/knowledge-center/vpc-ip-address-range/)(CIDR 블록)를 추가할 수 없습니다. 가능한 경우, 서브넷에서 사용 중인 다른 리소스(예: 사용하지 않은 EC2 인스턴스, 탄력적 네트워크 ㅇ니터페이스)를 이동하거나 삭제합니다. 그렇지 않으면 [사용 가능한 주소 공간이 더](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-sizing) 많은 신규 또는 기존 프라이빗 서브넷이 있는 [클러스터의 최근 백업에서](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html) AWS CloudHSM 클러스터를 생성할 수 있습니다. 그런 다음 새 클러스터를 AWS CloudHSM 키 스토어와 연결하려면 [사용자 지정 키 스토어의 연결을 해제](disconnect-keystore.md)하고 AWS CloudHSM 키 스토어의 [클러스터 ID를 새 클러스터의 ID로 변경](update-keystore.md)한 다음 다시 연결을 시도합니다.
**작은 정보**  
[`kmsuser` 암호 재설정을](#fix-keystore-password) 방지하려면 AWS CloudHSM 클러스터의 최신 백업을 사용합니다.
+ `INTERNAL_ERROR`는가 내부 오류로 인해 요청을 완료할 AWS KMS 수 없음을 나타냅니다. 요청을 다시 시도하세요. `ConnectCustomKeyStore` 요청의 경우 연결을 다시 시도하기 전에 AWS CloudHSM 키 스토어의 연결을 해제합니다.
+ `INVALID_CREDENTIALS`는가 올바른 `kmsuser` 계정 암호가 없기 때문에 연결된 AWS CloudHSM 클러스터에 AWS KMS 로그인할 수 없음을 나타냅니다. 이러한 오류에 대한 도움말은 [유효하지 않은 `kmsuser` 자격 증명을 수정하는 방법](#fix-keystore-password) 섹션을 참조하세요.
+ `NETWORK_ERRORS`는 일반적으로 일시적인 네트워크 문제를 나타냅니다. [AWS CloudHSM 키 스토어의 연결을](disconnect-keystore.md) 해제하고 몇 분 정도 기다린 다음 다시 연결을 시도합니다.
+ `SUBNET_NOT_FOUND`는 AWS CloudHSM 클러스터 구성에서 하나 이상의 서브넷이 삭제되었음을 나타냅니다. 가 클러스터 구성에서 모든 서브넷을 찾을 AWS KMS 수 없는 경우 AWS CloudHSM 키 스토어를 AWS CloudHSM 클러스터에 연결하려는 시도가 실패합니다.

  이 오류를 해결하려면 동일한 [클러스터의 최근 백업에서 클러스터를 생성합니다](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html). AWS CloudHSM (이 프로세스는 VPC 및 프라이빗 서브넷을 사용하여 새 클러스터 구성을 만듭니다.) 새 클러스터가 [사용자 지정 키 스토어에 대한 요구 사항](create-keystore.md#before-keystore)을 충족하는지 확인하고, 새 클러스터 ID를 적어 둡니다. 그런 다음 새 클러스터를 AWS CloudHSM 키 스토어와 연결하려면 [사용자 지정 키 스토어의 연결을 해제](disconnect-keystore.md)하고 AWS CloudHSM 키 스토어의 [클러스터 ID를 새 클러스터의 ID로 변경](update-keystore.md)한 다음 다시 연결을 시도합니다.
**작은 정보**  
[`kmsuser` 암호 재설정을](#fix-keystore-password) 방지하려면 AWS CloudHSM 클러스터의 최신 백업을 사용합니다.
+ `USER_LOCKED_OUT`은 너무 많은 암호 시도의 실패로 인해 [`kmsuser` CU(Crypto User) 계정](keystore-cloudhsm.md#concept-kmsuser)이 연결된 AWS CloudHSM 클러스터에 액세스할 수 없도록 잠겨 있음을 나타냅니다. 이러한 오류에 대한 도움말은 [유효하지 않은 `kmsuser` 자격 증명을 수정하는 방법](#fix-keystore-password) 섹션을 참조하세요.

  이 오류를 해결하려면 [AWS CloudHSM 키 스토어의 연결을](disconnect-keystore.md) 해제하고 CloudHSM CLI의 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html) 명령을 사용하여 `kmsuser` 계정 암호를 변경합니다. 그런 다음, 사용자 지정 키 스토어의 [`kmsuser` 암호 설정을 편집](update-keystore.md)하고 다시 연결을 시도합니다. 도움말은 [유효하지 않은 `kmsuser` 자격 증명을 수정하는 방법](#fix-keystore-password) 주제에 설명되어 있는 절차를 참조하세요.
+ `USER_LOGGED_IN`는 `kmsuser` CU 계정이 연결된 AWS CloudHSM 클러스터에 로그인되었음을 나타냅니다. 이렇게 하면가 `kmsuser` 계정 암호를 교체하고 클러스터에 로그인할 수 AWS KMS 없습니다. 이 오류를 해결하려면 클러스터에서 `kmsuser` CU를 로그아웃합니다. 클러스터에 로그인하도록 `kmsuser` 암호를 변경한 경우 키 스토어의 AWS CloudHSM 키 스토어 암호 값도 업데이트해야 합니다. 도움말은 [로그아웃 및 재연결 방법](#login-kmsuser-2)를 참조하십시오.
+ `USER_NOT_FOUND`는가 연결된 AWS CloudHSM 클러스터에서 `kmsuser` CU 계정을 찾을 수 AWS KMS 없음을 나타냅니다. 이 오류를 해결하려면 클러스터에서 [`kmsuser` CU 계정을 생성한](create-keystore.md#kmsuser-concept) 다음 [키 스토어의 키 스토어 암호 값을 업데이트](update-keystore.md)합니다. AWS CloudHSM 도움말은 [유효하지 않은 `kmsuser` 자격 증명을 수정하는 방법](#fix-keystore-password)를 참조하십시오.

## 암호화 작업 실패에 응답하는 방법
<a name="fix-keystore-communication"></a>

사용자 지정 키 스토어에서 KMS 키를 사용하는 암호화 작업은 `KMSInvalidStateException` 오류와 함께 실패할 수 있습니다. 다음과 같은 오류 메시지가 `KMSInvalidStateException`과 함께 나타날 수 있습니다.


|  | 
| --- |
| KMS는 CloudHSM 클러스터와 통신할 수 없습니다. 일시적인 네트워크 문제일 수 있습니다. 이 오류가 반복적으로 표시되면 AWS CloudHSM 클러스터의 VPC에 대한 네트워크 ACLs 및 보안 그룹 규칙이 올바른지 확인합니다. | 
+ HTTPS 400 오류이지만 일시적인 네트워크 문제로 인해 발생할 수 있습니다. 응답하려면 먼저 요청을 다시 시도합니다. 그러나 계속 실패하면 네트워킹 구성 요소의 구성을 검사하십시오. 이 오류는 나가는 트래픽을 차단하는 방화벽 규칙 또는 VPC 보안 그룹 규칙과 같은 네트워킹 구성 요소의 잘못된 구성으로 인해 발생할 수 있습니다. 예를 들어 KMS는 IPv6를 통해 AWS CloudHSM 클러스터와 통신할 수 없습니다. 사전 조건에 대한 자세한 내용은 [AWS CloudHSM 키 스토어 생성](create-keystore.md) 페이지를 참조하세요.


|  | 
| --- |
| kmsuser가 잠겨 있기 때문에 KMS가 AWS CloudHSM 클러스터와 통신할 수 없습니다. 이 오류가 반복적으로 표시되면 AWS CloudHSM 키 스토어의 연결을 해제하고 kmsuser 계정 암호를 재설정합니다. 사용자 지정 키 스토어의 kmsuser 암호를 업데이트하고 요청을 다시 시도하세요. | 
+ 이 오류 메시지는 너무 많은 암호 시도의 실패로 인해 [`kmsuser` CU(Crypto User) 계정](keystore-cloudhsm.md#concept-kmsuser)이 연결된 AWS CloudHSM 클러스터에 액세스할 수 없도록 잠겨 있음을 나타냅니다. 이러한 오류에 대한 도움말은 [연결 해제 및 로그인 방법](#login-kmsuser-1) 섹션을 참조하세요.

## 유효하지 않은 `kmsuser` 자격 증명을 수정하는 방법
<a name="fix-keystore-password"></a>

[AWS CloudHSM 키 스토어를 연결](connect-keystore.md)하면가 연결된 AWS CloudHSM 클러스터에 CU([`kmsuser`Crypto User](keystore-cloudhsm.md#concept-kmsuser))로 AWS KMS 로그인합니다. AWS CloudHSM 키 스토어의 연결이 끊어질 때까지 로그인된 상태로 유지됩니다. [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 응답에서는 `ConnectionState`의 값이 `FAILED`, `ConnectionErrorCode` 값이 `INVALID_CREDENTIALS`로 표시됩니다(아래 예제 참조).

 AWS CloudHSM 키 스토어의 연결을 해제하고 `kmsuser` 암호를 AWS KMS 변경하면는 `kmsuser` CU 계정의 자격 증명으로 AWS CloudHSM 클러스터에 로그인할 수 없습니다. 따라서 AWS CloudHSM 키 스토어를 연결하려는 모든 시도가 실패합니다. 다음 예와 같이 `DescribeCustomKeyStores` 응답은 `ConnectionState` 값을 `FAILED`로 표시하고 `ConnectionErrorCode` 값을 `INVALID_CREDENTIALS`로 표시합니다.

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

또한 올바르지 않은 암호로 클러스터에 로그인하려는 시도가 5번 실패하면 AWS CloudHSM 이 사용자 계정을 잠급니다. 클러스터에 로그인하려면 계정 암호를 변경해야 합니다.

가 클러스터에 `kmsuser` CU로 로그인하려고 할 때 잠금 응답을 AWS KMS 받으면 AWS CloudHSM 키 스토어 연결 요청이 실패합니다. [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 응답에서 `ConnectionState`의 값은 `FAILED`, `ConnectionErrorCode`의 값은 `USER_LOCKED_OUT`입니다(아래 예제 참조).

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

이러한 조건 중 하나를 복구하려면 다음 절차를 따르세요.

1. [AWS CloudHSM 키 스토어의 연결을](disconnect-keystore.md) 해제합니다.

1. [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 실행하고 응답에서 `ConnectionErrorCode` 요소의 값을 확인합니다.
   + `ConnectionErrorCode` 값이 `INVALID_CREDENTIALS`인 경우에는 `kmsuser` 계정의 현재 암호를 확인합니다. 필요한 경우, CloudHSM CLI에서 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html) 명령을 사용하여 암호를 알려진 값으로 설정합니다.
   + `ConnectionErrorCode` 값이 `USER_LOCKED_OUT`인 경우, CloudHSM CLI에서 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html) 명령을 사용하여 `kmsuser` 암호를 변경해야 합니다.

1. 클러스터의 현재 `kmsuser` 암호와 일치하도록 [`kmsuser` 암호 설정을 편집](update-keystore.md)합니다. 이 작업은 AWS KMS 에 클러스터에 로그인하기 위해 사용하는 암호를 알려줍니다. 클러스터의 `kmsuser` 암호는 변경되지 않습니다.

1. [사용자 지정 키 스토어를 연결합니다](connect-keystore.md).

## 불필요한 키 구성 요소를 삭제하는 방법
<a name="fix-keystore-orphaned-key"></a>

 AWS CloudHSM 키 스토어에서 KMS 키 삭제를 예약한 후 연결된 AWS CloudHSM 클러스터에서 해당 키 구성 요소를 수동으로 삭제해야 할 수 있습니다.

 AWS CloudHSM 키 스토어에서 KMS 키를 생성하면는에서 KMS 키 메타데이터를 AWS KMS 생성하고 연결된 AWS CloudHSM 클러스터에서 키 구성 요소를 AWS KMS 생성합니다. AWS CloudHSM 키 스토어에서 KMS 키 삭제를 예약할 때 대기 기간이 지나면가 KMS 키 메타데이터를 AWS KMS 삭제합니다. 그런 다음 AWS CloudHSM 클러스터에서 해당 키 구성 요소를 삭제하기 위해 AWS KMS 최선을 다합니다. AWS CloudHSM 키 스토어와의 연결이 끊어지거나 `kmsuser` 암호가 변경되는 경우와 같이가 클러스터에 액세스할 수 AWS KMS 없는 경우 시도가 실패할 수 있습니다. AWS KMS 는 클러스터 백업에서 키 구성 요소를 삭제하려고 시도하지 않습니다.

AWS KMS 는 AWS CloudTrail 로그의 `DeleteKey` 이벤트 항목에 있는 클러스터에서 키 구성 요소를 삭제하려는 시도의 결과를 보고합니다. 이는 다음 예제 항목에서 보듯이 `additionalEventData` 요소의 `backingKeysDeletionStatus` 요소에 표시됩니다. 항목에는 KMS 키 ARN, AWS CloudHSM 클러스터 ID 및 키 구성 요소의 ID(`backing-key-id`)도 포함됩니다.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "accountId": "111122223333",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-12-10T14:23:51Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "DeleteKey",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements":  {
        "keyId":"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    "additionalEventData": {
        "customKeyStoreId": "cks-1234567890abcdef0",
        "clusterId": "cluster-1a23b4cdefg",
        "backingKeys": "[{\"backingKeyId\":\"backing-key-id\"}]",
        "backingKeysDeletionStatus": "[{\"backingKeyId\":\"backing-key-id\",\"deletionStatus\":\"FAILURE\"}]"
    },
    "eventID": "c21f1f47-f52b-4ffe-bff0-6d994403cf40",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsServiceEvent",
    "recipientAccountId": "111122223333",
    "managementEvent": true,
    "eventCategory": "Management"
}
```

**참고**  
다음 절차에서는 AWS CloudHSM 클라이언트 SDK 5 명령줄 도구인 [CloudHSM CLI](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli.html)를 사용합니다. CloudHSM CLI에서 `key-handle`을 `key-reference`로 대체합니다.  
2025년 1월 1일에 AWS CloudHSM 는 클라이언트 SDK 3 명령줄 도구, CloudHSM 관리 유틸리티(CMU) 및 키 관리 유틸리티(KMU)에 대한 지원을 종료합니다. Client SDK 3 명령줄 도구와 Client SDK 5 명령줄 도구의 차이점에 대한 자세한 내용은 *AWS CloudHSM 사용 설명서*의 [클라이언트 SDK 3 CMU 및 KMU에서 클라이언트 SDK 5 CloudHSM CLI로 마이그레이션](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-migrate-from-kmu-cmu.html)을 참조하세요.

다음 절차에서는 연결된 AWS CloudHSM 클러스터에서 분리된 키 구성 요소를 삭제하는 방법을 보여줍니다.

1.  AWS CloudHSM 키 스토어가 아직 연결 해제되지 않은 경우에 설명된 대로 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-login.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-login.html)합니다[연결 해제 및 로그인 방법](#login-kmsuser-1).
**참고**  
사용자 지정 키 스토어의 연결이 해제된 상태에서는 사용자 지정 키 스토어에서 KMS 키를 생성하거나, 암호화 작업을 위해 기존 KMS 키를 사용하려는 모든 시도가 실패합니다. 이 작업은 사용자가 기밀 데이터를 저장하거나 액세스하지 못하도록 차단합니다.

1. CloudHSM CLI의 [key delete](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-delete.html) 명령을 사용하여 클러스터의 HSM에서 키를 삭제합니다.

    AWS CloudHSM 키 스토어에서 KMS 키를 사용하는 암호화 작업에 대한 모든 CloudTrail 로그 항목에는 `customKeyStoreId` 및가 있는 `additionalEventData` 필드가 포함됩니다`backingKey`. `backingKeyId` 필드에 반환되는 값은 CloudHSM 키 `id` 속성입니다. `id`를 기준으로 **key delete** 작업을 필터링하여 CloudTrail 로그에서 식별한 분리된 키 구성 요소를 삭제하는 것이 좋습니다.

   AWS CloudHSM 는 `backingKeyId` 값을 16진수 값으로 인식합니다. `id`를 기준으로 필터링하려면 `Ox` 앞에 `backingKeyId`를 추가해야 합니다. 예를 들어 CloudTrail 로그의 `backingKeyId`가 `1a2b3c45678abcdef`인 경우 `0x1a2b3c45678abcdef`를 기준으로 필터링합니다.

   다음 예제에서는 클러스터의 HSMs에서 키를 삭제합니다. `backing-key-id`는 CloudTrail 로그 항목에 나열됩니다. 이 명령을 실행하기 전에 예제 키 `backing-key-id`를 계정의 유효한 값으로 바꿉니다.

   ```
   aws-cloudhsm key delete --filter attr.id="0x<backing-key-id>"
   {
     "error_code": 0,
     "data": {
       "message": "Key deleted successfully"
     }
   }
   ```

1. 에 설명된 대로 AWS CloudHSM 키 스토어를 로그아웃하고 다시 연결합니다[로그아웃 및 재연결 방법](#login-kmsuser-2).

## KMS 키에서 삭제된 키 구성 요소를 복구하는 방법
<a name="fix-keystore-recover-backing-key"></a>

의 키 구성 요소가 AWS KMS key 삭제되면 KMS 키를 사용할 수 없으며 KMS 키로 암호화된 모든 사이퍼텍스트를 복호화할 수 없습니다. 이는 키 스토어의 KMS 키에 대한 AWS CloudHSM 키 구성 요소가 연결된 AWS CloudHSM 클러스터에서 삭제될 때 발생할 수 있습니다. 하지만 키 구성 요소를 복구하는 것이 가능할 수 있습니다.

 AWS CloudHSM 키 스토어에서 AWS KMS key (KMS 키)를 생성하면는 연결된 AWS CloudHSM 클러스터에 AWS KMS 로그인하고 KMS 키에 대한 키 구성 요소를 생성합니다. 또한 AWS CloudHSM 키 스토어가 연결되어 있는 동안 자신만 알고 로그인한 상태로 유지되는 값으로 암호를 변경합니다. 키 소유자이자 키를 생성한 CU만 키를 삭제할 수 있기 때문에 HSM에서 실수로 키가 삭제될 일이 없습니다.

하지만 KMS 키의 키 구성 요소가 클러스터의 HSM에서 삭제된 경우 KMS 키 상태가 궁극적으로 `UNAVAILABLE`로 변경됩니다. 암호화 작업에서 KMS 키를 사용하려고 시도하면 `KMSInvalidStateException` 예외 메시지와 함께 작업이 실패합니다. 가장 중요한 것은 KMS 키 하에서 암호화된 데이터는 해독이 불가능합니다.

특정 상황에서 키 구성 요소가 포함된 [백업에서 클러스터를 생성](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)하여 삭제된 키 구성 요소를 복구할 수 있습니다. 이 전략은 삭제 전 키가 존재한 동안 최소 하나의 백업이 생성되었을 때만 효과가 있습니다.

다음 프로세스를 이용해 키 구성 요소를 복구합니다.

1. 키 구성 요소가 포함된 클러스터 백업을 찾습니다. 백업에는 클러스터와 암호화된 데이터를 지원하는 데 필요한 모든 사용자와 키도 포함되어 있어야 합니다.

   [DescribeBackups](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeBackups.html) 작업을 사용해 클러스터의 백업을 나열합니다. 그런 다음, 백업을 선택하는 데 도움이 되는 백업 타임스탬프를 사용합니다. 출력을 AWS CloudHSM 키 스토어와 연결된 클러스터로 제한하려면 다음 예제와 같이 `Filters` 파라미터를 사용합니다.

   ```
   $ aws cloudhsmv2 describe-backups --filters clusterIds=<cluster ID>
   {
       "Backups": [
           {
               "ClusterId": "cluster-1a23b4cdefg",
               "BackupId": "backup-9g87f6edcba",
               "CreateTimestamp": 1536667238.328,
               "BackupState": "READY"
           },
                ...
       ]
   }
   ```

1. [선택한 백업에서 클러스터를 생성합니다](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html). 백업에 삭제된 키와 기타 사용자 및 클러스터에서 필요한 키가 포함되어 있는지 확인합니다.

1. 속성을 편집할 수 있도록 [AWS CloudHSM 키 스토어의 연결을](disconnect-keystore.md) 해제합니다.

1.  AWS CloudHSM 키 스토어의 [클러스터 ID를 편집](update-keystore.md)합니다. 백업에서 생성한 클러스터의 클러스터 ID를 입력합니다. 클러스터가 원래 클러스터와 백업 기록을 공유하기 때문에 새 클러스터 ID는 유효해야 합니다.

1. [AWS CloudHSM 키 스토어를 다시 연결합니다](connect-keystore.md).

## `kmsuser`로 로그인하는 방법
<a name="fix-login-as-kmsuser"></a>

키 스토어 AWS KMS 의 AWS CloudHSM 클러스터에서 AWS CloudHSM 키 구성 요소를 생성하고 관리하기 위해 [`kmsuser`는 CU(Crypto User) 계정을](keystore-cloudhsm.md#concept-kmsuser) 사용합니다. 클러스터에서 [`kmsuser` CU 계정을 생성하고](create-keystore.md#before-keystore) AWS CloudHSM 키 스토어를 생성할 AWS KMS 때 해당 암호를에 제공합니다.

일반적으로는 `kmsuser` 계정을 AWS KMS 관리합니다. 그러나 일부 작업의 경우 AWS CloudHSM 키 스토어의 연결을 해제하고, 클러스터에 `kmsuser` CU로 로그인하고, [CloudHSM 명령줄 인터페이스(CLI)](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli.html)를 사용해야 합니다.

**참고**  
사용자 지정 키 스토어의 연결이 해제된 상태에서는 사용자 지정 키 스토어에서 KMS 키를 생성하거나, 암호화 작업을 위해 기존 KMS 키를 사용하려는 모든 시도가 실패합니다. 이 작업은 사용자가 기밀 데이터를 저장하거나 액세스하지 못하도록 차단합니다.

이 주제에서는 [AWS CloudHSM 키 스토어의 연결을 해제하고 로 로그인](#login-kmsuser-1)하고`kmsuser`, AWS CloudHSM 명령줄 도구를 실행하고, [AWS CloudHSM 키 스토어를 로그아웃했다가 다시 연결하는](#login-kmsuser-2) 방법을 설명합니다.

**Topics**
+ [연결 해제 및 로그인 방법](#login-kmsuser-1)
+ [로그아웃 및 재연결 방법](#login-kmsuser-2)

### 연결 해제 및 로그인 방법
<a name="login-kmsuser-1"></a>

연결 클러스터에 `kmsuser` Crypto User(CU)로 로그인해야 할 때마다 다음 절차를 따릅니다.

**참고**  
다음 절차에서는 AWS CloudHSM 클라이언트 SDK 5 명령줄 도구인 [CloudHSM CLI](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli.html)를 사용합니다. CloudHSM CLI에서 `key-handle`을 `key-reference`로 대체합니다.  
2025년 1월 1일에 AWS CloudHSM 는 클라이언트 SDK 3 명령줄 도구, CloudHSM 관리 유틸리티(CMU) 및 키 관리 유틸리티(KMU)에 대한 지원을 종료합니다. Client SDK 3 명령줄 도구와 Client SDK 5 명령줄 도구의 차이점에 대한 자세한 내용은 *AWS CloudHSM 사용 설명서*의 [클라이언트 SDK 3 CMU 및 KMU에서 클라이언트 SDK 5 CloudHSM CLI로 마이그레이션](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-migrate-from-kmu-cmu.html)을 참조하세요.

1. 아직 연결 해제되지 않은 경우 AWS CloudHSM 키 스토어의 연결을 해제합니다. AWS KMS 콘솔 또는 AWS KMS API를 사용할 수 있습니다.

    AWS CloudHSM 키가 연결되어 있는 동안 AWS KMS 는 로 로그인됩니다`kmsuser`. 따라서 `kmsuser`로 로그인하거나 `kmsuser` 암호를 변경할 수 없습니다.

   예를 들어 이 명령은 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisconnectCustomKeyStore.html)를 사용해 예제 키 스토어의 연결을 해제합니다. 예제 AWS CloudHSM 키 스토어 ID를 유효한 키 스토어 ID로 바꿉니다.

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

1. **login** 명령을 사용하고 관리자로 로그인합니다. *AWS CloudHSM 사용 설명서*의 [CloudHSM CLI 사용](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-getting-started.html#w17aac19c11c13b7) 섹션에 설명된 절차를 사용합니다.

   ```
   aws-cloudhsm > login --username admin --role admin
             Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "admin",
       "role": "admin"
     }
   }
   ```

1. CloudHSM CLI의 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html) 명령을 사용하여 `kmsuser` 계정의 암호를 알고 있는 암호로 변경합니다( AWS CloudHSM 키 스토어를 연결할 때에서 암호AWS KMS 교체). 암호는 7\$132자의 영숫자로만 구성되어야 합니다. 대소문자가 구분되며 어떤 특수 문자도 포함해서는 안 됩니다.

1. 설정한 암호를 사용하여 `kmsuser`로 로그인합니다. 자세한 지침은 *AWS CloudHSM 사용 설명서*의 [시작하기](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-getting-started.html#w17aac19c11c13b7) 섹션을 참조하세요.

   ```
   aws-cloudhsm > login --username kmsuser --role crypto-user
             Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "kmsuser",
       "role": "crypto-user"
     }
   }
   ```

### 로그아웃 및 재연결 방법
<a name="login-kmsuser-2"></a>

`kmsuser` Crypto User(CU)로 로그아웃하고 키 저장소를 다시 연결해야 할 때마다 다음 절차를 따르세요.

**참고**  
다음 절차에서는 AWS CloudHSM 클라이언트 SDK 5 명령줄 도구인 [CloudHSM CLI](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli.html)를 사용합니다. CloudHSM CLI에서 `key-handle`을 `key-reference`로 대체합니다.  
2025년 1월 1일에 AWS CloudHSM 는 클라이언트 SDK 3 명령줄 도구, CloudHSM 관리 유틸리티(CMU) 및 키 관리 유틸리티(KMU)에 대한 지원을 종료합니다. Client SDK 3 명령줄 도구와 Client SDK 5 명령줄 도구의 차이점에 대한 자세한 내용은 *AWS CloudHSM 사용 설명서*의 [클라이언트 SDK 3 CMU 및 KMU에서 클라이언트 SDK 5 CloudHSM CLI로 마이그레이션](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-migrate-from-kmu-cmu.html)을 참조하세요.

1. 작업을 수행한 다음, CloudHSM CLI의 [https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-logout.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-logout.html) 명령을 사용하여 로그아웃합니다. 로그아웃하지 않으면 AWS CloudHSM 키 스토어 재연결 시도가 실패합니다.

   ```
   aws-cloudhsm  logout
   {
     "error_code": 0,
     "data": "Logout successful"
   }
   ```

1. [사용자 지정 키 스토어에 대한 `kmsuser` 암호 설정](update-keystore.md)을 편집합니다.

   클러스터 AWS KMS 의 `kmsuser`에 대한 현재 암호를 알려줍니다. 이 단계를 생략하면 AWS KMS 가 클러스터에 로 로그인할 수 없으며 `kmsuser`사용자 지정 키 스토어를 다시 연결하려는 모든 시도가 실패합니다. AWS KMS 콘솔 또는 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 작업의 `KeyStorePassword` 파라미터를 사용할 수 있습니다.

   예를 들어이 명령은 현재 암호가 AWS KMS 임을 알려줍니다`tempPassword`. 예제 암호를 실제 암호로 바꿉니다.

   ```
   $ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --key-store-password tempPassword
   ```

1.  AWS KMS 키 스토어를 AWS CloudHSM 클러스터에 다시 연결합니다. 예제 AWS CloudHSM 키 스토어 ID를 유효한 키 스토어 ID로 바꿉니다. 연결 프로세스 중에는 암호만 알고 있는 값으로 `kmsuser` 암호를 AWS KMS 변경합니다.

   [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) 작업이 신속하게 값을 반환하지만, 연결 프로세스의 소요 시간이 연장될 수 있습니다. 하지만 이러한 초기 응답은 연결 프로세스가 성공했음을 의미하지는 않습니다.

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

1. [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 작업을 사용하여 AWS CloudHSM 키 스토어가 연결되어 있는지 확인합니다. 예제 AWS CloudHSM 키 스토어 ID를 유효한 키 스토어 ID로 바꿉니다.

   이 예제에서 연결 상태 필드는 AWS CloudHSM 키 스토어가 이제 연결되었음을 보여줍니다.

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