사용자 지정 키 스토어에서 KMS 키 생성
사용자 지정 키 스토어를 생성한 후에는 키 스토어에서 AWS KMS keys를 생성할 수 있습니다. AWS KMS가 생성하는 키 구성 요소가 있는 대칭 암호화 KMS 키여야 합니다. 비대칭 KMS 키, HMAC KMS 키 또는 사용자 지정 키 스토어에 가져온 키 구성 요소가 있는 KMS 키는 생성할 수 없습니다. 또한 사용자 지정 키 스토어에서 대칭 암호화 KMS 키를 사용하여 비대칭 데이터 키 페어를 생성할 수 없습니다.
AWS KMS에서 KMS 키를 사용하고 관리하는 것과 동일한 방식으로 사용자 지정 키 스토어에서 KMS 키를 사용하고 관리합니다. 예를 들어 다음 중 하나를 수행할 수 있습니다.
-
암호화 작업에 KMS 키를 사용합니다.
-
KMS 키에 IAM 및 키 정책을 설정합니다.
-
별칭 만들기는 KMS 키와 연결됩니다.
-
KMS 키에 태그를 연결합니다.
-
KMS 키를 사용하거나 사용하지 않도록 설정합니다.
-
KMS 키의 삭제를 예약합니다.
사용자 지정 키 스토어에서 KMS 키를 생성하려면 사용자 지정 키 스토어가 연결 AWS CloudHSM 클러스터에 연결되어 있어야 하고, 클러스터에서 서로 다른 가용 영역에 최소 두 개의 활성 HSM이 포함되어 있어야 합니다. 연결 상태 및 HSM 수를 찾으려면 AWS Management Console에서 사용자 지정 키 스토어 페이지를 봅니다. API 작업을 사용할 때 DescribeCustomKeyStores 작업을 사용해 해당되는 사용자 지정 키 스토어가 연결되어 있는지 확인합니다. AWS CloudHSM DescribeClusters 작업을 사용해 클러스터 및 가용 영역에서 활성 HSM의 수를 확인합니다.
사용자 지정 키 스토어에서 KMS 키를 생성할 때 AWS KMS가 AWS KMS에 KMS 키를 생성합니다. 하지만 연결 AWS CloudHSM 클러스터에서 KMS 키용 키 구성 요소를 생성합니다. 특히, AWS KMS는 생성한 kmsuser CU로 클러스터에 로그인합니다. 그런 다음, 클러스터에서 지속적이고 추출 불가능한 256비트 고급 암호화 표준(AES) 대칭 키를 생성합니다. AWS KMS는 클러스터에서만 표시되는 키 라벨 속성의 값을 KMS 키의 Amazon 리소스 이름(ARN)으로 설정합니다.
명령이 성공하면 새 KMS 키의 키 상태는 Enabled
가 되고 오리진은 AWS_CLOUDHSM
이 됩니다. 생성 이후에 KMS 키의 출처를 변경할 수 없습니다. 콘솔에서 또는 DescribeKey 작업을 사용하여 사용자 지정 키 스토어에서 KMS 키를 볼 때는 키 ID, 키 상태, 생성 날짜 같은 일반적인 속성들을 확인할 수 있습니다. 하지만 사용자 지정 키 스토어 ID와 AWS CloudHSM 클러스터 ID(선택 사항)을 확인할 수도 있습니다. 자세한 내용은 사용자 지정 키 스토어에서 KMS 키 보기 단원을 참조하세요.
사용자 지정 키 스토어에서 KMS 키를 생성하려는 시도가 실패할 때 오류 메시지를 사용하면 원인을 판단하는 데 도움이 됩니다. 사용자 지정 키 스토어가 연결되어 있지 않거나(CustomKeyStoreInvalidStateException
) 연결 AWS CloudHSM 클러스터에 이 작업에 필요한 두 개의 활성 HSM이 포함되어 있지 않다는(CloudHsmClusterInvalidConfigurationException
) 의미일 수 있습니다. 도움말은 사용자 지정 키 스토어 문제 해결 단원을 참조하십시오.
사용자 지정 키 스토어에 KMS 키를 생성하는 작업의 AWS CloudTrail 로그 예제는 CreateKey 섹션을 참조하세요.
사용자 지정 키 스토어에서 KMS 키 생성(콘솔)
다음 절차를 이용해 사용자 지정 키 스토어에서 대칭 암호화 KMS 키를 생성합니다.
-
AWS Management Console에 로그인하고 https://console.aws.amazon.com/kms
에서 AWS Key Management Service(AWS KMS) 콘솔을 엽니다. -
AWS 리전을 변경하려면 페이지의 오른쪽 상단 모서리에 있는 리전 선택기를 사용합니다.
-
탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.
-
키 생성(Create key)을 선택합니다.
-
대칭(Symmetric)을 선택합니다.
-
키 사용(Key usage)에서 암호화 및 복호화(Encrypt and decrypt) 옵션이 선택됩니다. 변경할 수 없습니다.
-
고급 옵션을 선택합니다.
-
키 구성 요소 출처(Key material origin)에서 사용자 지정 키 스토어(CloudHSM)(Custom key store(CloudHSM))를 선택합니다.
-
다음을 선택합니다.
-
새 KMS 키에 대한 사용자 지정 키 스토어를 선택합니다. 사용자 지정 키 스토어를 새로 생성하려면 Create custom key store(사용자 지정 키 스토어 생성)를 선택합니다.
선택한 사용자 지정 키 스토어의 상태는 CONNECTED(연결 상태)여야 합니다. 연결 AWS CloudHSM 클러스터는 활성 상태여야 하고 서로 다른 가용 영역에 최소 2개의 활성 HSM을 포함하고 있어야 합니다.
사용자 지정 키 스토어를 연결하는 방법에 대한 도움말은 사용자 지정 키 스토어 연결 및 연결 해제 단원을 참조하십시오. HSM 추가에 대한 도움말은 AWS CloudHSM 사용 설명서의 HSM 추가를 참조하십시오.
-
다음을 선택합니다.
-
KMS 키의 별칭과 설명을 입력합니다.
-
(선택 사항). 태그 추가(Add Tags) 페이지에서 KMS 키를 식별 및 분류하는 태그를 추가합니다.
AWS 리소스에 태그를 추가하면 AWS에서 사용 내역 및 비용을 태그별로 집계한 비용 할당 보고서를 생성합니다. KMS 키에 대한 액세스를 제어하는 데에도 태그를 사용할 수 있습니다. KMS 키 태그 지정에 대한 자세한 내용은 키 태그 지정 및 AWS KMS의 ABAC 단원을 참조하십시오.
-
다음을 선택합니다.
-
키 관리자(Key Administrators) 섹션에서 KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다. 자세한 내용은 키 관리자가 KMS 키를 관리하도록 허용을 참조하십시오.
참고 IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 사용 권한을 제공할 수 있습니다.
-
(선택 사항) 이러한 키 관리자가 KMS 키를 삭제하지 못하도록 하려면 페이지 하단에 있는 키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key) 확인란의 선택을 취소합니다.
-
다음을 선택합니다.
-
이 계정 섹션에서 암호화 작업에 CMK를 사용할 수 있는 이 AWS 계정의 IAM 사용자 및 역할을 선택합니다. 자세한 내용은 키 사용자가 KMS 키를 사용하도록 허용을 참조하십시오.
참고 IAM 정책은 다른 IAM 사용자 및 역할에 KMS 키 사용 권한을 제공할 수 있습니다.
-
(선택 사항) 다른 AWS 계정이 암호화 작업에서 이 KMS 키를 사용하도록 허용할 수 있습니다. 이렇게 하려면 페이지 하단의 기타(Other)AWS 계정 섹션에서 다른 AWS 계정 추가(Add another)를 선택하고 외부 계정의 AWS 계정 ID를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.
참고 다른 AWS 계정의 관리자는 사용자에 대해 IAM 정책을 생성하여 KMS 키에 대한 액세스도 허용해야 합니다. 자세한 정보는 다른 계정의 사용자가 CMK를 사용하도록 허용을 참조하십시오.
-
다음을 선택합니다.
-
선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.
완료했으면 마침(Finish)을 선택하여 키를 생성합니다.
절차가 성공하면 화면에서 선택한 사용자 지정 키 스토어에 새 KMS 키가 표시됩니다. 새 KMS 키의 이름 또는 별칭을 선택하면 세부 정보 페이지에 KMS 키의 출처(CloudHSM), 사용자 지정 키 스토어의 이름 및 ID, AWS CloudHSM 클러스터의 ID가 표시됩니다. 이 절차가 실패하면 실패 원인을 설명하는 오류 메시지가 나타납니다.
사용자 지정 키 스토어에서 KMS 키를 손쉽게 식별하려면 고객 관리형 키(Customer managed keys) 페이지에서 사용자 지정 키 스토어 ID(Custom key store ID) 열을 화면에 추가합니다. 오른쪽 상단의 기어 아이콘을 클릭하고 Custom key store ID(사용자 지정 키 스토어 ID)를 선택합니다.
사용자 지정 키 스토어에서 KMS 키 생성(API)
사용자 지정 키 스토어에서 AWS KMS key (KMS 키)를 새로 생성하려면 CreateKey 작업을 사용합니다. CustomKeyStoreId
파라미터를 사용하여 사용자 지정 키 스토어를 식별하고 AWS_CLOUDHSM
의 Origin
값을 지정합니다.
Policy
파라미터를 사용해 키 정책을 지정할 수도 있습니다. 언제든 키 정책(PutKeyPolicy)을 변경하고 설명 및 태그 등의 선택적 요소를 추가할 수 있습니다.
이 단원의 예제는 AWS Command Line Interface(AWS CLI)
다음 예제는 사용자 지정 키 스토어가 연결된 AWS CloudHSM 클러스터에 연결되어 있는지 확인하기 위해 DescribeCustomKeyStores 작업을 호출하는 것으로 시작합니다. 기본적으로 이 작업은 계정 및 리전에서 모든 사용자 지정 키 스토어를 반환합니다. 특정한 사용자 지정 키 스토어만 설명하려면 CustomKeyStoreId
또는 CustomKeyStoreName
파라미터를 사용합니다(둘 모두를 사용해서는 안 됨).
이 명령을 실행하기 앞서 예제에 나온 사용자 지정 키 스토어 ID를 유효한 ID로 대체합니다.
$
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" ], }
다음 예제 명령은 DescribeClusters 작업을 사용해 ExampleKeyStore
(cluster-1a23b4cdefg) 에 연결된 AWS CloudHSM 클러스터가 최소 두 개의 활성 HSM을 가지고 있는지 확인합니다. 클러스터의 HSM 수가 2개 미만이면 CreateKey
작업이 실패합니다.
$
aws cloudhsmv2 describe-clusters
{ "Clusters": [ { "SubnetMapping": { ... }, "CreateTimestamp": 1507133412.351, "ClusterId": "cluster-1a23b4cdefg", "SecurityGroup": "sg-865af2fb", "HsmType": "hsm1.medium", "VpcId": "vpc-1a2b3c4d", "BackupPolicy": "DEFAULT", "Certificates": { "ClusterCertificate": "-----BEGIN CERTIFICATE-----\...\n-----END CERTIFICATE-----\n" }, "Hsms": [ { "AvailabilityZone": "us-west-2a", "EniIp": "10.0.1.11", "ClusterId": "cluster-1a23b4cdefg", "EniId": "eni-ea8647e1", "StateMessage": "HSM created.", "SubnetId": "subnet-a6b10bd1", "HsmId": "hsm-abcdefghijk", "State": "ACTIVE" }, { "AvailabilityZone": "us-west-2b", "EniIp": "10.0.0.2", "ClusterId": "cluster-1a23b4cdefg", "EniId": "eni-ea8647e1", "StateMessage": "HSM created.", "SubnetId": "subnet-b6b10bd2", "HsmId": "hsm-zyxwvutsrqp", "State": "ACTIVE" }, ], "State": "ACTIVE" } ] }
이 예제 명령은 CreateKey 작업을 사용해 KMS 키의 사용자 지정 키 스토어를 생성합니다. 사용자 지정 키 스토어에서 KMS 키를 생성하려면 사용자 지정 키 스토어 이름의 ID를 제공하고 AWS_CLOUDHSM
의 Origin
값을 지정해야 합니다.
응답에는 사용자 지정 키 스토어 및 AWS CloudHSM 클러스터의 ID가 포함되어 있습니다.
이 명령을 실행하기 앞서 예제에 나온 사용자 지정 키 스토어 ID를 유효한 ID로 대체합니다.
$
aws kms create-key --origin AWS_CLOUDHSM --custom-key-store-id
cks-1234567890abcdef0
{ "KeyMetadata": { "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1.499288695918E9, "Description": "Example key", "Enabled": true, "MultiRegion": false, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_CLOUDHSM" "CloudHsmClusterId": "cluster-1a23b4cdefg", "CustomKeyStoreId": "cks-1234567890abcdef0" "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }