사용자 지정 키 스토어 문제 해결 - AWS Key Management Service

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

사용자 지정 키 스토어 문제 해결

AWS CloudHSM 키 스토어는 가용성 및 복원력을 갖추도록 설계되었습니다. 하지만 AWS CloudHSM 키 스토어가 계속 작동하도록 몇 가지 오류 조건을 복구해야 할 수도 있습니다.

사용 불가 KMS 키를 수정하는 방법

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

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

KMS 키의 키 상태를 확인하려면 (고객 관리형 키 페이지에서 KMS 키의 상태 필드를 확인합니다. 또는 DescribeKey작업을 사용하여 응답의 KeyState 요소를 확인합니다. 자세한 내용은 키 보기 단원을 참조하세요.

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

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

연결 실패에 대한 도움말은 연결 오류를 수정하는 방법 단원을 참조하십시오.

오류가 발생하는 KMS 키를 수정하는 방법

AWS CloudHSM 키 스토어에서 KMS 키를 생성 및 사용할 때 발생하는 문제는 AWS CloudHSM 키 스토어, 연결 AWS CloudHSM 클러스터, KMS 키 또는 키 구성 요소의 문제가 원인일 수 있습니다.

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

그러나 암호화 작업을 위해 AWS CloudHSM 키 스토어에서 KMS 키를 사용하려는 시도는 키 상태가 Enabled이고 AWS CloudHSM 키 스토어의 연결 상태가 Connected인 경우에도 실패할 수 있습니다. 이 오류는 다음 문제 중 하나로 인해 발생할 수 있습니다.

  • KMS 키에 대한 키 구성 요소가 연결 AWS CloudHSM 클러스터에서 삭제되었을 수 있습니다. 조사를 하려면 KMS 키 구성 요소의 키 핸들을 확인하고 필요할 경우 키 구성 요소 복구를 시도합니다.

  • AWS CloudHSM 키 스토어에 연결된 AWS CloudHSM 클러스터에서 모든 HSM이 삭제되었습니다. 암호화 작업에 AWS CloudHSM 키 스토어의 KMS 키를 사용하려면 해당 AWS CloudHSM 클러스터에 최소 하나의 활성 HSM이 포함되어 있어야 합니다. AWS CloudHSM클러스터의 HSM 수와 상태를 확인하려면 AWS CloudHSM콘솔 또는 DescribeClusters작업을 사용하십시오. 클러스터에 HSM을 추가하려면 AWS CloudHSM 콘솔 또는 작업을 사용하십시오. CreateHsm

  • AWS CloudHSM 키 스토어에 연결된 AWS CloudHSM 클러스터가 삭제되었습니다. 이 문제를 수정하려면 원래 클러스터와 관련된 백업에서 클러스터를 생성합니다(예: 원래 클러스터의 백업이나 원래 클러스터를 생성하는 데 사용된 백업). 그런 다음, 사용자 지정 키 스토어 설정에서 클러스터 ID를 편집합니다. 지침은 KMS 키에서 삭제된 키 구성 요소를 복구하는 방법 섹션을 잠조하세요.

  • 사용자 지정 키 스토어와 연결된 AWS CloudHSM 클러스터에 사용 가능한 PKCS #11 세션이 없습니다. 이는 일반적으로 트래픽을 처리하기 위해 추가 세션이 필요한 버스트 트래픽이 높은 기간 동안 발생합니다. PKCS #11 세션에 대한 오류 메시지와 함께 KMSInternalException에 응답하려면 요청을 백오프하고 다시 시도합니다.

연결 오류를 수정하는 방법

AWS CloudHSM 키 스토어를 해당 AWS CloudHSM 클러스터에 연결하려고 시도했지만 작업이 실패하면 AWS CloudHSM 키 스토어의 연결 상태가 FAILED로 변경됩니다. AWS CloudHSM키 저장소의 연결 상태를 찾으려면 AWS KMS 콘솔 또는 DescribeCustomKeyStores작업을 사용하십시오.

또는, 일부 연결 시도가 쉽게 감지되는 클러스터 구성 오류로 인해 빠르게 실패합니다. 이 경우 연결 상태는 여전히 DISCONNECTED입니다. 이러한 실패는 시도가 실패한 이유를 설명하는 오류 메시지 또는 예외를 반환합니다. 예외 설명과 클러스터 요구 사항을 검토하고, 문제를 수정하고, 필요한 경우 AWS CloudHSM 키 스토어를 업데이트하고 다시 연결을 시도합니다.

연결 상태가 FAILED 되면 DescribeCustomKeyStores작업을 실행하고 응답의 ConnectionErrorCode 요소를 확인합니다.

참고

AWS CloudHSM 키 스토어의 연결 상태가 FAILED면 재연결을 시도하기에 앞서 AWS CloudHSM 키 스토어를 연결 해제해야 합니다. 연결 상태가 FAILED인 AWS CloudHSM 키 스토어는 연결할 수 없습니다.

  • CLUSTER_NOT_FOUND는 AWS KMS가 지정된 클러스터 ID로 AWS CloudHSM 클러스터를 찾을 수 없음을 나타냅니다. 잘못된 클러스터 ID가 API 작업에 제공되었거나 클러스터가 삭제되었지만 대체되지 않았기 때문에 이런 문제가 발생할 수 있습니다. 이 오류를 해결하려면 AWS CloudHSM 콘솔이나 DescribeClusters작업 등을 사용하여 클러스터 ID를 확인하십시오. 클러스터가 삭제된 경우에는 원래 클러스터의 최신 백업에서 클러스터를 생성합니다. 그런 다음, AWS CloudHSM 키 스토어를 연결 해제하고, AWS CloudHSM 키 스토어 클러스터 ID 설정을 편집하고, 클러스터에 AWS CloudHSM 키 스토어를 다시 연결합니다.

  • INSUFFICIENT_CLOUDHSM_HSMS는 연결 AWS CloudHSM 클러스터에 어떤 HSM도 포함되어 있지 않음을 나타냅니다. 연결을 하려면 클러스터에 최소 하나의 HSM이 포함되어 있어야 합니다. 클러스터의 HSM 수를 찾으려면 DescribeClusters작업을 사용하십시오. 이 오류를 해결하려면 클러스터에 최소 하나의 HSM을 추가합니다. 여러 개의 HSM을 추가하는 경우에는 서로 다른 가용 영역에서 이들을 생성하는 것이 가장 좋습니다.

  • INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET클러스터와 연결된 하나 이상의 프라이빗 서브넷에 사용 가능한 IP 주소가 없기 때문에 AWS KMS가 AWS CloudHSM 키 스토어를 AWS CloudHSM 클러스터에 연결할 수 없음을 나타냅니다. AWS CloudHSM 키 스토어 연결에는 연결된 프라이빗 서브넷 각각에 사용 가능한 IP 주소가 1개 필요하지만 2개를 권장합니다.

    기존 서브넷에 IP 주소(CIDR 블록)를 추가할 수 없습니다. 가능한 경우, 서브넷에서 사용 중인 다른 리소스(예: 사용하지 않은 EC2 인스턴스, 탄력적 네트워크 ㅇ니터페이스)를 이동하거나 삭제합니다. 또는 자유 주소 영역이 많은 새로운 프라이빗 서브넷이나 기존 프라이빗 서브넷으로 AWS CloudHSM 클러스터의 최근 백업에서 클러스터를 만들 수 있습니다. 그런 다음 새 클러스터를 AWS CloudHSM 키 스토어와 연결하려면 사용자 지정 키 스토어를 연결 해제하고, 새 클러스터의 ID로 AWS CloudHSM 키 스토어의 클러스터 ID를 변경하고, 연결을 다시 시도합니다.

    작은 정보

    kmsuser 암호를 재설정하지 않으려면 AWS CloudHSM 클러스터의 최신 백업을 사용합니다.

  • INTERNAL_ERROR는 AWS KMS가 내부 오류로 인해 요청을 완료하지 못했음을 나타냅니다. 요청을 다시 시도하세요. ConnectCustomKeyStore 요청의 경우 AWS CloudHSM 키 스토어를 연결 해제한 후 다시 연결을 시도합니다.

  • INVALID_CREDENTIALSkmsuser 계정 암호가 올바르지 않기 때문에 AWS KMS가 연결 AWS CloudHSM 클러스터에 로그인할 수 없음을 나타냅니다. 이러한 오류에 대한 도움말은 유효하지 않은 kmsuser 자격 증명을 수정하는 방법 섹션을 참조하세요.

  • NETWORK_ERRORS는 일반적으로 일시적인 네트워크 문제를 나타냅니다. AWS CloudHSM 키 스토어를 연결 해제하고 몇 분 기다렸다가 다시 연결을 시도합니다.

  • SUBNET_NOT_FOUND는 AWS CloudHSM 클러스터 구성에서 하나 이상의 서브넷이 삭제되었음을 나타냅니다. AWS KMS가 클러스터 구성에서 서브넷을 모두 찾을 수 없는 경우, AWS CloudHSM 키 스토어를 AWS CloudHSM 클러스터에 연결하려는 시도가 실패합니다.

    이 오류를 해결하려면 동일한 AWS CloudHSM 클러스터의 최근 백업에서 클러스터를 생성합니다. (이 프로세스는 VPC 및 프라이빗 서브넷을 사용하여 새 클러스터 구성을 만듭니다.) 새 클러스터가 사용자 지정 키 스토어에 대한 요구 사항을 충족하는지 확인하고, 새 클러스터 ID를 적어 둡니다. 그런 다음 새 클러스터를 AWS CloudHSM 키 스토어와 연결하려면 사용자 지정 키 스토어를 연결 해제하고, 새 클러스터의 ID로 AWS CloudHSM 키 스토어의 클러스터 ID를 변경하고, 연결을 다시 시도합니다.

    작은 정보

    kmsuser 암호를 재설정하지 않으려면 AWS CloudHSM 클러스터의 최신 백업을 사용합니다.

  • USER_LOCKED_OUT은 너무 많은 암호 시도의 실패로 인해 kmsuser CU(Crypto User) 계정이 연결된 AWS CloudHSM 클러스터에 액세스할 수 없도록 잠겨 있음을 나타냅니다. 이러한 오류에 대한 도움말은 유효하지 않은 kmsuser 자격 증명을 수정하는 방법 섹션을 참조하세요.

    이러한 오류를 수정하려면 AWS CloudHSM 키 스토어를 연결 해제하고, cloudhsm_mgmt_util의 changePswd 명령을 사용해 kmsuser 계정 암호를 변경합니다. 그런 다음, 사용자 지정 키 스토어의 kmsuser 암호 설정을 편집하고 다시 연결을 시도합니다. 도움말은 유효하지 않은 kmsuser 자격 증명을 수정하는 방법 주제에 설명되어 있는 절차를 참조하세요.

  • USER_LOGGED_INkmsuser CU 계정이 연결된 AWS CloudHSM 클러스터에 로그인되었음을 나타냅니다. 이렇게 하면 AWS KMS가 kmsuser 계정 암호를 교체하고 클러스터에 로그인할 수 없습니다. 이 오류를 해결하려면 클러스터에서 kmsuser CU를 로그아웃합니다. 클러스터에 로그인하기 위해 kmsuser 암호를 변경한 경우 AWS CloudHSM 키 스토어에 대한 키 스토어 암호 값도 업데이트해야 합니다. 도움말은 로그아웃 및 재연결 방법를 참조하십시오.

  • USER_NOT_FOUND는 AWS KMS가 연결된 AWS CloudHSM 클러스터에서 kmsuser CU 계정을 찾을 수 없음을 나타냅니다. 이 오류를 해결하려면 클러스터에 kmsuser CU 계정을 생성한 다음 AWS CloudHSM 키 스토어에 대한 키 스토어 암호 값을 업데이트합니다. 도움말은 유효하지 않은 kmsuser 자격 증명을 수정하는 방법를 참조하십시오.

암호화 작업 실패에 응답하는 방법

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

KMS는 CloudHSM 클러스터와 통신할 수 없습니다. 일시적인 네트워크 문제일 수 있습니다. 이 오류가 반복해서 나타나는 경우 AWS CloudHSM 클러스터의 VPC에 대한 네트워크 ACL과 보안 그룹 규칙이 올바른지 확인하세요.
  • HTTPS 400 오류이지만 일시적인 네트워크 문제로 인해 발생할 수 있습니다. 응답하려면 먼저 요청을 다시 시도합니다. 그러나 계속 실패하면 네트워킹 구성 요소의 구성을 검사하십시오. 이 오류는 나가는 트래픽을 차단하는 방화벽 규칙 또는 VPC 보안 그룹 규칙과 같은 네트워킹 구성 요소의 잘못된 구성으로 인해 발생할 수 있습니다.

kmsuser가 잠겨 있기 때문에 KMS가 AWS CloudHSM 클러스터와 통신할 수 없습니다. 이 오류가 반복적으로 표시되면 AWS CloudHSM 키 스토어 연결을 끊고 kmsuser 계정 암호를 재설정하세요. 사용자 지정 키 스토어의 kmsuser 암호를 업데이트하고 요청을 다시 시도하세요.

유효하지 않은 kmsuser 자격 증명을 수정하는 방법

AWS CloudHSM 키 스토어를 연결하면 AWS KMS가 연결된 AWS CloudHSM 클러스터에 kmsuser CU(Crypto User)로 로그인합니다. AWS CloudHSM 키 스토어가 연결 해제되어 있는 한, 로그인 상태를 유지합니다. 다음 예와 같이 DescribeCustomKeyStores 응답은 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응답에는 ConnectionState 다음 FAILED 예와 같이 of 와 의 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 키 스토어를 연결 해제합니다.

  2. DescribeCustomKeyStores작업을 실행하고 응답의 ConnectionErrorCode 요소 값을 확인합니다.

    • ConnectionErrorCode 값이 INVALID_CREDENTIALS인 경우에는 kmsuser 계정의 현재 암호를 확인합니다. 필요한 경우, cloudhsm_mgmt_util에서 changePswd 명령을 사용하여 알려진 값으로 암호를 설정합니다.

    • ConnectionErrorCode 값이 USER_LOCKED_OUT인 경우, cloudhsm_mgmt_util의 changePswd 명령을 사용하여 kmsuser 암호를 변경해야 합니다.

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

  4. 사용자 지정 키 스토어를 연결합니다.

불필요한 키 구성 요소를 삭제하는 방법

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

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

AWS KMS는 AWS CloudTrail 로그의 DeleteKey 이벤트 항목을 통해 클러스터에서 키 구성 요소를 삭제하려는 시도의 결과를 보고합니다. 이는 다음 예제 항목에서 보듯이 additionalEventData 요소의 backingKeysDeletionStatus 요소에 표시됩니다. 또한 이 항목에는 KMS 키 ARN, AWS CloudHSM 클러스터 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": "eu-west-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": null, "responseElements": null, "additionalEventData": { "customKeyStoreId": "cks-1234567890abcdef0", "clusterId": "cluster-1a23b4cdefg", "backingKeys": "[{\"keyHandle\":\"01\",\"backingKeyId\":\"backing-key-id\"}]", "backingKeysDeletionStatus": "[{\"keyHandle\":\"16\",\"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 클러스터에서 키 구성 요소를 삭제하려면 다음과 같은 절차를 사용하세요. 이 예제에서는 AWS CLI 및 AWS CloudHSM 명령줄 도구를 사용하고 있지만, CLI 대신 AWS Management Console을 사용할 수 있습니다.

  1. 이미 연결 해제되지 않은 경우에는 AWS CloudHSM 키 스토어를 연결 해제한 다음 key_mgmt_util에 로그인합니다(연결 해제 및 로그인 방법 설명 참조).

  2. key_mgmt_util의 deleteKey 명령을 사용하여 클러스터의 HSM에서 키를 삭제합니다.

    예를 들어 이 명령은 클러스터의 HSM에서 키 262162를 삭제합니다. 키 핸들은 CloudTrail 로그 항목에 나열됩니다.

    Command: deleteKey -k 262162 Cfm3DeleteKey returned: 0x00 : HSM Return: SUCCESS Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
  3. key_mgmt_util에서 로그아웃되고 AWS CloudHSM 키 스토어를 다시 연결합니다(로그아웃 및 재연결 방법 설명 참조).

KMS 키에서 삭제된 키 구성 요소를 복구하는 방법

AWS KMS key의 키 구성 요소가 삭제되면 KMS 키를 사용할 수 없고, 해당 KMS로 암호화된 모든 암호화 텍스트를 복호화할 수 없습니다. AWS CloudHSM 키 스토어의 KMS 키용 키 구성 요소가 연결된 AWS CloudHSM 클러스터에서 삭제된 경우에 이런 문제가 발생할 수 있습니다. 하지만 키 구성 요소를 복구하는 것이 가능할 수 있습니다.

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

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

특정 상황에서 키 구성 요소가 포함된 백업에서 클러스터를 생성하여 삭제된 키 구성 요소를 복구할 수 있습니다. 이 전략은 삭제 전 키가 존재한 동안 최소 하나의 백업이 생성되었을 때만 효과가 있습니다.

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

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

    DescribeBackups작업을 사용하여 클러스터의 백업을 나열할 수 있습니다. 그런 다음, 백업을 선택하는 데 도움이 되는 백업 타임스탬프를 사용합니다. AWS CloudHSM 키 스토어에 연결된 클러스터로 출력을 제한하려면 Filters 파라미터를 사용합니다(아래 예제 참조).

    $ aws cloudhsmv2 describe-backups --filters clusterIds=<cluster ID> { "Backups": [ { "ClusterId": "cluster-1a23b4cdefg", "BackupId": "backup-9g87f6edcba", "CreateTimestamp": 1536667238.328, "BackupState": "READY" }, ... ] }
  2. 선택한 백업에서 클러스터를 생성합니다. 백업에 삭제된 키와 기타 사용자 및 클러스터에서 필요한 키가 포함되어 있는지 확인합니다.

  3. 속성을 편집할 수 있도록 AWS CloudHSM 키 스토어를 연결 해제합니다.

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

  5. AWS CloudHSM 키 스토어를 다시 연결합니다.

kmsuser로 로그인하는 방법

AWS CloudHSM 키 스토어에서 AWS CloudHSM 클러스터의 키 구성 요소를 생성 및 관리하기 위해 AWS KMS는 kmsuser CU(Crypto User) 계정을 사용합니다. 클러스터에서 kmsuser CU 계정을 생성하고 AWS CloudHSM 키 스토어를 생성할 때 AWS KMS에 암호를 제공합니다.

일반적으로 AWS KMS는 kmsuser 계정을 관리합니다. 하지만 일부 작업에서는 AWS CloudHSM 키 스토어를 연결 해제하고, kmsuser CU로 클러스터에 로그인하고, cloudhsm_mgmt_util 및 key_mgmt_util 명령줄 도구를 사용해야 합니다.

참고

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

이 주제에서는 AWS CloudHSM 키 스토어를 연결 해제하고 kmsuser로 로그인하고, AWS CloudHSM 명령줄 도구를 실행하고, AWS CloudHSM 키 스토어를 로그아웃한 후 다시 연결하는 방법을 설명합니다.

연결 해제 및 로그인 방법

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

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

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

    예를 들어, 이 명령은 예제 키 저장소의 연결을 끊는 DisconnectCustomKeyStore데 사용됩니다. 예제에 나온 AWS CloudHSM 키 스토어 ID를 유효한 ID로 바꿉니다.

    $ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
  2. cloudhsm_mgmt_util을 시작합니다. AWS CloudHSM 사용 설명서cloudhsm_mgmt_util 실행 준비에서 설명하는 프로시저를 사용합니다.

  3. AWS CloudHSM 클러스터의 cloudhsm_mgmt_util에 CO(Crypto Officer)로 로그인합니다.

    예를 들어 이 명령은 admin이라는 CO로 로그인합니다. 예제에 나온 CO 사용자 이름 및 암호를 유효한 이름과 암호로 바꿉니다.

    aws-cloudhsm>loginHSM CO admin <password> loginHSM success on server 0(10.0.2.9) loginHSM success on server 1(10.0.3.11) loginHSM success on server 2(10.0.1.12)
  4. changePswd 명령을 사용해 kmsuser 계정의 암호를 사용자가 알고 있는 암호로 변경합니다(AWS KMS는 AWS CloudHSM 키 스토어를 연결할 때 암호 교체). 암호는 7~32자의 영숫자로만 구성되어야 합니다. 대소문자가 구분되며 어떤 특수 문자도 포함해서는 안 됩니다.

    예를 들어 이 명령은 kmsuser 암호를 tempPassword로 변경합니다.

    aws-cloudhsm>changePswd CU kmsuser tempPassword *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. Cav server does NOT synchronize these changes with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Changing password for kmsuser(CU) on 3 nodes
  5. 설정한 암호를 사용해 kmsuser로 key_mgmt_util 또는 cloudhsm_mgmt_util에 로그인합니다. 자세한 지침은 cloudhsm_mgmt_util 시작하기key_mgmt_util 시작하기를 참조하세요. 사용하는 도구는 작업마다 다릅니다.

    예를 들어 이 명령은 key_mgmt_util에 로그인합니다.

    Command: loginHSM -u CU -s kmsuser -p tempPassword Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

로그아웃 및 재연결 방법

  1. 작업을 수행한 다음, 명령줄 도구를 로그아웃합니다. 로그아웃을 하지 않으면 AWS CloudHSM 키 스토어를 재시도하려는 연결이 실패합니다.

    Command: logoutHSM Cfm3LogoutHSM returned: 0x00 : HSM Return: SUCCESS Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
  2. 사용자 지정 키 스토어에 대한 kmsuser 암호 설정을 편집합니다.

    AWS KMS에 클러스터의 kmsuser의 현재 암호를 알려줍니다. 이 단계를 생략하면 AWS KMS가 kmsuser로 클러스터에 로그인할 수 없으며, 사용자 지정 키 스토어를 재연결하려는 모든 시도가 실패합니다. AWS KMS콘솔이나 UpdateCustomKeyStore작업 KeyStorePassword 파라미터를 사용할 수 있습니다.

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

    $ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --key-store-password tempPassword
  3. AWS CloudHSM 클러스터에 AWS KMS 키 스토어를 다시 연결합니다. 예제에 나온 AWS CloudHSM 키 스토어 ID를 유효한 ID로 바꿉니다. 연결 프로세스 동안 AWS KMS는 kmsuser 암호를 자신만 알고 있는 값으로 변경합니다.

    ConnectCustomKeyStore작업은 빠르게 되돌아오지만 연결 프로세스에 시간이 오래 걸릴 수 있습니다. 하지만 이러한 초기 응답은 연결 프로세스가 성공했음을 의미하지는 않습니다.

    $ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
  4. DescribeCustomKeyStores작업을 사용하여 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" ], }