KMS 키 및 키 구성 요소 찾기 - AWS Key Management Service

KMS 키 및 키 구성 요소 찾기

사용자 지정 키 스토어를 관리하는 경우에는 각각의 사용자 지정 키 스토어에서 KMS 키를 식별해야 할 수도 있습니다. 예를 들어, 다음 작업 중 일부를 수행해야 할 수 있습니다.

  • AWS CloudTrail 로그에서 사용자 지정 키 스토어의 KMS 키를 추적합니다.

  • 사용자 지정 키 스토어의 연결 해제가 KMS 키에 어떤 영향을 미치는 예측합니다.

  • 사용자 지정 키 스토어를 삭제하기 전에 KMS 키 삭제를 예약합니다.

뿐만 아니라 KMS 키에서 키 구성 요소 역할을 하는 AWS CloudHSM 클러스터에서 키를 식별하고 싶을 수 있습니다. AWS KMS가 KMS 키와 그 키 구성 요소를 관리하더라도 사용자가 여전히 AWS CloudHSM 클러스터와 그 HSM 및 백업, HSM의 키에 대한 제어 권한과 관리 책임을 보유합니다. 키 구성 요소를 감사하거나, 실수로 삭제되지 않도록 보호하거나, KMS 키 삭제 이후 HSM 및 클러스터 백업에서 이를 삭제하기 위해 키 식별이 필요할 수 있습니다.

사용자 지정 키 스토어에 있는 KMS 키의 모든 키 구성 요소는 kmsuserCU(Crypto User)가 소유합니다. AWS KMS는 AWS CloudHSM에서만 볼 수 있는 키 라벨 속성을 KMS 키의 Amazon 리소스 이름(ARN)으로 설정합니다.

KMS 키 및 키 구성 요소를 찾으려면 다음 기법 중 하나를 사용합니다.

사용자 지정 키 스토어에서 KMS 키 찾기

사용자 지정 키 스토어를 관리하는 경우에는 각각의 사용자 지정 키 스토어에서 KMS 키를 식별해야 할 수도 있습니다. 이 정보를 사용하여 AWS CloudTrail 로그에서 KMS 키 작업을 추적하거나, 사용자 지정 키 스토어의 연결 해제가 KMS 키에 미치는 영향을 예측하거나, 사용자 지정 키 스토어를 삭제하기 전에 KMS 키 삭제를 예약할 수 있습니다.

사용자 지정 키 스토어에서 KMS 키를 찾으려면(콘솔)

특정한 사용자 지정 키 스토어에서 KMS 키를 찾으려면 고객 관리형 키(Customer Managed Keys) 페이지에서 사용자 지정 키 스토어 이름(Custom Key Store Name) 또는 사용자 지정 키 스토어 ID(Custom Key Store ID) 필드의 값을 확인합니다. 사용자 지정 키 스토어에서 KMS 키를 식별하려면 출처(Origin) 값이 CloudHSM인 KMS 키를 찾습니다. 화면에 열 옵션을 추가하려면 페이지의 오른쪽 상단 모서리에서 기어 아이콘을 선택합니다.

사용자 지정 키 스토어에서 KMS 키를 찾으려면(API)

사용자 지정 키 스토어에서 KMS 키를 찾으려면 ListKeysDescribeKey 작업을 사용하고 CustomKeyStoreId 값을 필터링합니다. 예제를 실행하기 앞서 가상의 사용자 지정 키 스토어 ID를 유효한 값으로 대체합니다.

Bash

특정한 사용자 지정 키 스토어에서 KMS 키를 찾으려면 계정 및 리전의 모든 KMS 키를 확인합니다. 그런 다음, 사용자 지정 키 스토어의 ID를 필터링합니다.

for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text) ; do aws kms describe-key --key-id $key | grep '"CustomKeyStoreId": "cks-1234567890abcdef0"' --context 100; done

계정 및 리전의 모든 사용자 지정 키 스토어에서 KMS 키를 확인하려면 cks-로 시작하는 CustomKeyStoreId 값을 검색합니다.

for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text) ; do aws kms describe-key --key-id $key | grep '"CustomKeyStoreId": "cks-"' --context 100; done
PowerShell

특정한 사용자 지정 키 스토어에서 KMS 키를 찾으려면 Get-KmsKeyList Get-KmsKey cmdlets를 사용해 계정 및 리전에서 모든 KMS 키를 확인합니다. 그런 다음, 사용자 지정 키 스토어의 ID를 필터링합니다.

PS C:\> (Get-KMSKeyList).KeyArn | foreach {Get-KMSKey -KeyId $_} | where CustomKeyStoreId -eq 'cks-1234567890abcdef0'

계정 및 리전의 모든 사용자 지정 키 스토어에서 KMS 키를 확인하려면 -like 비교 연산자를 사용합니다. 모든 사용자 지정 키 스토어 식별자는 cks-로 시작합니다.

PS C:\> (Get-KMSKeyList).KeyArn | foreach {Get-KMSKey -KeyId $_} | where CustomKeyStoreId -like 'cks*'

사용자 지정 키 스토어에서 모든 키 찾기

사용자 지정 키 스토어에서 키 구성 요소 역할을 하는 AWS CloudHSM 클러스터의 키를 식별할 수 있습니다. 이를 위해 cloudhsm_mgmt_util의 findAllKeys 명령을 사용하여 kmsuser가 소유 또는 공유하는 모든 키의 키 핸들을 찾습니다. 사용자가 kmsuser로 로그인해서 AWS KMS 밖에서 키를 생성한 경우가 아니라면 kmsuser가 소유하는 모든 키들은 AWS KMS KMS 키의 키 구성 요소를 나타냅니다.

클러스터의 CO(Crypto Officer)는 사용자 지정 키 스토어의 연결을 해제하지 않고도 이 명령을 실행할 수 있습니다.

  1. cloudhsm_mgmt_util 실행 준비 주제에 설명된 절차를 사용하여 cloudhsm_mgmt_util을 시작합니다.

  2. CO(Crypto Officer) 계정을 사용해 cloudhsm_mgmt_util에 로그인합니다.

  3. listUsers 명령을 사용해 kmsuser CU(Crypto User)의 사용자 ID를 찾습니다.

    이 예제에서 kmsuser의 사용자 ID는 3입니다.

    aws-cloudhsm> listUsers Users on server 0(10.0.0.1): Number of users found:3 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CU kmsuser NO 0 NO
  4. findAllKeys 명령을 사용해 kmsuser가 소유 또는 공유하는 모든 키의 키 핸들을 찾습니다. 예제 사용자 ID를 클러스터에 있는 kmsuser의 실제 사용자 ID로 바꿉니다.

    예제 출력은 클러스터의 두 HSM 모두에서 kmsuser가 키 핸들이 8, 9 및 262162인 키를 소유하고 있음을 보여줍니다.

    aws-cloudhsm> findAllKeys 3 0 Keys on server 0(10.0.0.1): Number of keys found 3 number of keys matched from start index 0::6 8,9,262162 findAllKeys success on server 0(10.0.0.1) Keys on server 1(10.0.0.2): Number of keys found 6 number of keys matched from start index 0::6 8,9,262162 findAllKeys success on server 1(10.0.0.2)

키의 KMS 키 찾기

클러스터에서 kmsuser가 소유하고 있는 키의 키 핸들을 알고 있는 경우에는 키 라벨을 사용해 사용자 지정 키 스토어의 연결 KMS 키를 식별할 수 있습니다.

AWS KMS는 AWS CloudHSM 클러스터에서 KMS 키용 키 구성 요소를 생성할 때 키 라벨에 KMS 키의 Amazon 리소스 이름(ARN)을 기록합니다. 라벨 값을 변경한 경우가 아니라면 key_mgmt_util 또는 cloudhsm_mgmt_util의 getAttribute 명령을 사용해 키를 KMS 키에 연결할 수 있습니다.

이 절차를 실행하려면 kmsuser CU로 로그인할 수 있도록 사용자 지정 키 스토어를 임시로 연결 해제해야 합니다.

참고

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

  1. 이미 연결이 해제되지 않은 경우에는 사용자 지정 키 스토어의 연결을 해제한 다음, kmsuser로 key_mgmt_util에 로그인합니다(연결 해제 및 로그인 방법 설명 참조).

  2. key_mgmt_util 또는 cloudhsm_mgmt_util에서 getAttribute 명령을 사용하여 특정 키 핸들에 대한 레이블 속성(OBJ_ATTR_LABEL, 속성 3)을 가져옵니다.

    예를 들어 이 명령은 cloudhsm_mgmt_util에서 getAttribute를 사용해 키 핸들이 3인 키의 라벨 속성(속성 262162)을 확인합니다. 출력은 키 262162가 ARN이 arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab인 KMS 키의 키 구성 요소 역할을 한다는 것을 보여줍니다. 이 명령을 실행하기 앞서 예제에 나온 키 핸들을 유효한 키 핸들로 대체합니다.

    키 속성 목록은 listAttributes 명령을 사용하거나 AWS CloudHSM 사용 설명서키 속성 참조를 참조하십시오.

    aws-cloudhsm> getAttribute 262162 3 Attribute Value on server 0(10.0.1.10): OBJ_ATTR_LABEL arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
  3. key_mgmt_util 또는 cloudhsm_mgmt_util을 로그아웃하고 사용자 지정 키 스토어의 연결을 해제합니다(로그아웃 및 재연결 방법 참조).

KMS 키의 키 찾기

사용자 지정 키 스토어에서 KMS 키의 KMS ID를 사용해 키 구성 요소 역할을 하는 클러스터의 키를 식별할 수 있습니다. 그런 다음, 키 핸들을 사용해 AWS CloudHSM 클라이언트 명령에서 키를 식별할 수 있습니다.

AWS KMS는 AWS CloudHSM 클러스터에서 KMS 키용 키 구성 요소를 생성할 때 키 라벨에 KMS 키의 Amazon 리소스 이름(ARN)을 기록합니다. 라벨 값을 변경한 경우가 아니라면 key_mgmt_util의 findKey 명령을 사용해 KMS 키의 키 구성 요소에 대한 키 핸들을 확인할 수 있습니다. 이 절차를 실행하려면 kmsuser CU로 로그인할 수 있도록 사용자 지정 키 스토어를 임시로 연결 해제해야 합니다.

참고

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

  1. 이미 연결이 해제되지 않은 경우에는 사용자 지정 키 스토어의 연결을 해제한 다음, kmsuser로 key_mgmt_util에 로그인합니다(연결 해제 및 로그인 방법 설명 참조).

  2. key_mgmt_util의 findKey 명령을 사용해 사용자 지정 키 스토어의 KMS 키 ARN과 일치하는 라벨을 가진 키를 검색합니다. 예제와 같이 -l('label'에서는 소문자 L) 파라미터 값의 KMS 키 ARN을 유효한 KMS 키 ARN으로 바꿉니다.

    예를 들어 이 명령은 예제 KMS 키 ARN과 일치하는 라벨을 가진 키, 즉 arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab을 찾습니다. 예제 출력은 키 핸들이 262162인 키가 라벨에 지정된 KMS 키 ARN을 가지고 있음을 보여줍니다. 이제 다른 key_mgmt_util 명령에서 이 키 핸들을 사용할 수 있습니다.

    Command: findKey -l arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Total number of keys present 1 number of keys matched from start index 0::1 262162 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
  3. key_mgmt_util에서 로그아웃하고 사용자 지정 키 스토어를 다시 연결합니다(로그아웃 및 재연결 방법 설명 참조).