API를 사용하여 KMS 키 보기 - AWS Key Management Service

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

API를 사용하여 KMS 키 보기

AWS Key Management Service(AWS KMS) API를 사용하여 KMS 키를 볼 수 있습니다. 이 섹션은 기존 KMS 키에 대한 세부 정보를 반환하는 여러 작업을 보여줍니다. 이 예제들은 AWS Command Line Interface(AWS CLI)를 사용하지만, 사용자는 어떤 지원되는 프로그래밍 언어라도 사용할 수 있습니다.

ListKeys: 모든 KMS 키의 ID 및 ARN 가져오기

ListKeys작업은 계정 및 지역에 있는 모든 KMS 키의 ID와 Amazon 리소스 이름 (ARN) 을 반환합니다.

예를 들면, ListKeys 작업 호출은 이 가상 계정에 있는 각 KMS 키의 ID와 ARN을 반환합니다. 다양한 프로그래밍 언어의 예는 KMS 키의 키 ID 및 키 ARN 가져오기 섹션을 참조하십시오.

$ aws kms list-keys { "Keys": [ { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } }

DescribeKey: KMS 키에 대한 세부 정보 가져오기

DescribeKey작업은 지정된 KMS 키에 대한 세부 정보를 반환합니다. KMS 키를 식별하려면 키 ID, 키 ARN, 별칭 이름 또는 별칭 ARN을 사용합니다.

호출자의 계정과 지역에 KMS 키만 표시하는 ListKeys작업과 달리 승인된 사용자는 이 DescribeKey 작업을 사용하여 다른 계정의 KMS 키에 대한 세부 정보를 가져올 수 있습니다.

참고

DescribeKey 응답에는 KeySpecCustomerMasterKeySpec 멤버가 모두 포함됩니다. CustomerMasterKeySpec 멤버는 더 이상 사용되지 않습니다.

예를 들면, DescribeKey 호출은 대칭 암호화 KMS 키에 관한 정보를 반환합니다. 응답에 포함되는 필드는 AWS KMS key 사양, 키 상태키 구성 요소 오리진(key material origin)에 따라 달라집니다. 다양한 프로그래밍 언어의 예는 AWS KMS key 보기 섹션을 참조하십시오.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1499988169.234, "MultiRegion": false, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

이 예제에서는 서명 및 확인에 사용되는 비대칭 KMS 키에 대한 DescribeKey 작업을 호출합니다. 응답에는 AWS KMS가 이 KMS 키에 대해 지원하는 서명 알고리즘이 포함됩니다.

$ aws kms describe-key --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 { "KeyMetadata": { "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "Origin": "AWS_KMS", "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyState": "Enabled", "KeyUsage": "SIGN_VERIFY", "CreationDate": 1569973196.214, "Description": "", "KeySpec": "ECC_NIST_P521", "CustomerMasterKeySpec": "ECC_NIST_P521", "AWSAccountId": "111122223333", "Enabled": true, "MultiRegion": false, "KeyManager": "CUSTOMER", "SigningAlgorithms": [ "ECDSA_SHA_512" ] } }

GetKeyPolicy: KMS 키에 연결된 키 정책 가져오기

GetKeyPolicy작업은 KMS 키에 연결된 키 정책을 가져옵니다. KMS 키를 식별하려면, 이 KMS 키의 키 ID, 키 ARN을 사용합니다. 또한 정책 이름은 항상 default로 지정해야 합니다. (출력을 읽기 어려운 경우 명령에 --output text 옵션을 추가합니다.) GetKeyPolicy는 호출자의 계정 및 리전에 있는 KMS 키에만 작동합니다.

다양한 프로그래밍 언어의 예는 키 정책 가져오기 섹션을 참조하세요.

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default { "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }

ListAliases: KMS 키의 별칭 이름 및 ARN 가져오기

ListAliases작업은 계정 및 지역의 별칭을 반환합니다. 응답의 TargetKeyId는 별칭에서 참조하는 KMS 키(있는 경우)의 키 ID를 표시합니다.

기본적으로 ListAliases 명령은 계정 및 리전의 별칭을 모두 반환합니다. 여기에는 사용자가 생성한 별칭고객 관리형 키에 연결한 별칭 및 AWS가 생성하고 계정의 AWS 관리형 키에 연결한 별칭이 포함됩니다. AWS 별칭은 이름이 aws/<service-name> 형식(예: aws/dynamodb)이기 때문에 인식할 수 있습니다.

응답에는 이 예제의 aws/redshift 별칭과 같이 TargetKeyId 필드가 없는 별칭도 포함될 수 있습니다. 이러한 별칭은 미리 정의된 별칭으로, AWS에서 생성했지만 아직 KMS 키와 연결되지 않은 별칭입니다.

다양한 프로그래밍 언어의 예는 별칭 나열 섹션을 참조하십시오.

$ aws kms list-aliases { "Aliases": [ { "AliasName": "alias/access-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1516435200.399, "LastUpdatedDate": 1516435200.399 }, { "AliasName": "alias/financeKey", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/financeKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1604958290.014, "LastUpdatedDate": 1604958290.014 }, { "AliasName": "alias/ECC-P521-Sign", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ECC-P521-Sign", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1693622000.704, "LastUpdatedDate": 1693622000.704 }, { "AliasName": "alias/ImportedKey", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ImportedKey", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "CreationDate": 1493622000.704, "LastUpdatedDate": 1521097200.235 }, { "AliasName": "alias/aws/dynamodb", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef", "CreationDate": 1521097200.454, "LastUpdatedDate": 1521097200.454 }, { "AliasName": "alias/aws/ebs", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs", "TargetKeyId": "abcd1234-09fe-ef90-09fe-ab0987654321", "CreationDate": 1466518990.200, "LastUpdatedDate": 1466518990.200 }, { "AliasName": "alias/aws/redshift", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/redshift" }, ] }

특정 KMS 키를 참조하는 별칭을 가져오려면 KeyId 파라미터를 사용합니다. 파라미터 값은 키 ID 또는 키 ARN일 수 있습니다. 별칭 이름이나 별칭 ARN을 지정할 수 없습니다.

다음 예제의 명령은 고객 관리형 키를 가리키는 별칭을 가져옵니다. 하지만 이 명령과 같은 명령을 사용하여 AWS 관리형 키를 참조하는 별칭을 찾을 수도 있습니다.

$ aws kms list-aliases --key-id arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321 { "Aliases": [ { "AliasName": "alias/access-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1516435200.399, "LastUpdatedDate": 1516435200.399 }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/financeKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "AliasName": "alias/financeKey", "CreationDate": 1604958290.014, "LastUpdatedDate": 1604958290.014 }, ] }

AWS 관리형 키의 별칭만 가져오려면 프로그래밍 언어의 기능을 사용하여 응답을 필터링합니다.

$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/aws/`)]'

ListResourceTags: KMS 키의 태그 가져오기

ListResourceTags작업은 지정된 KMS 키의 태그를 반환합니다. API는 하나의 KMS 키에 대한 태그를 반환하지만 루프에서 명령을 실행하여 계정 및 리전의 모든 KMS 키 또는 선택한 KMS 키 집합에 대한 태그를 가져올 수 있습니다. 이 API는 한 번에 한 페이지씩 반환하므로 여러 KMS 키에 많은 태그가 있는 경우 원하는 모든 태그를 가져오려면 프로그래밍 언어로 페이지 매김을 사용해야 할 수 있습니다.

ListResourceTags 작업은 모든 KMS 키에 대한 태그를 반환하지만 AWS 관리형 키에는 태그가 지정되지 않습니다. 이 작업은 호출자의 계정 및 지역의 KMS 키에만 작동합니다.

KMS 키의 태그를 찾으려면 ListResourceTags작업을 사용합니다. KeyId 파라미터가 필요합니다. 키 ID 또는 키 ARN을 허용합니다. 이 예제를 실행하기 전에 예제 키 ARN을 유효한 것으로 바꿉니다.

$ aws kms list-resource-tags --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab { "Tags": [ { "TagKey": "Department", "TagValue": "IT" }, { "TagKey": "Purpose", "TagValue": "Test" } ], "Truncated": false }

ListResourceTags 작업을 사용하여 특정 태그, 태그 키 또는 태그 값이 있는 계정 및 리전의 모든 KMS 키를 가져올 수 있습니다. 이렇게 하려면 프로그래밍 언어의 필터링 기능을 사용합니다.

예를 들어 다음 Bash 스크립트는 ListKeysListResourceTags 작업을 사용하여 태그 키가 있는 계정 및 지역의 모든 KMS 키를 가져옵니다. Project 두 작업 모두 결과의 첫 페이지만 가져옵니다. KMS 키가 많거나 태그가 많은 경우 해당 언어의 페이지 매김 기능을 사용하여 각 작업의 전체 결과를 가져옵니다. 이 예제를 실행하기 전에 예제 키 ID를 유효한 것으로 바꿉니다.

TARGET_TAG_KEY='Project' for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text); do key_tags=$(aws kms list-resource-tags --key-id "$key" --query "Tags[?TagKey==\`$TARGET_TAG_KEY\`]") if [ "$key_tags" != "[]" ]; then echo "Key: $key" echo "$key_tags" fi done

출력은 다음 예제 출력과 비슷하게 출력됩니다.

Key: 0987dcba-09fe-87dc-65ba-ab0987654321 [ { "TagKey": "Project", "TagValue": "Gamma" } ] Key: 1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d [ { "TagKey": "Project", "TagValue": "Alpha" } ] Key: 0987ab65-43cd-21ef-09ab-87654321cdef [ { "TagKey": "Project", "TagValue": "Alpha" } ]