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 を使用します。

注記

DescribeKey レスポンスは、同じ値を持つ KeySpec および CustomerMasterKeySpec メンバーの両方を含みます。CustomerMasterKeySpec メンバーは非推奨です。

例えば、DescribeKey に対するこの呼び出しは、対称暗号化 KMS キーに関する情報を返します。レスポンスのフィールドは、AWS KMS key の仕様キーの状態キーマテリアルのオリジンによって異なります。複数のプログラミング言語の例については、「」を参照してください 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 オペレーションを呼び出します。レスポンスには、この KMS キーに対して AWS 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 キーを識別するには、そのキー ID またはキー ARN を使用します。ポリシー名も指定する必要があり、これは、常に default になります。(出力の読み込みが困難な場合には、コマンドに --output text オプションを追加します)。

複数のプログラミング言語の例については、「」を参照してください キーポリシーの取得

$ 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 policies", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }

ListAliases: KMS キーのエイリアス名と ARN の取得

ListAliases オペレーションは、アカウントとリージョンのエイリアスを返します。レスポンスの TargetKeyId は、エイリアスが参照する KMS キーのキー ID (存在する場合) を示します。

デフォルトでは、ListAliases コマンドはアカウントとリージョンのすべてのエイリアスを返します。これには、お客様が作成してカスタマーマネージドキーに関連付けたエイリアスと、AWS が作成してアカウントの AWS マネージドキー に関連付けたエイリアスが含まれます。AWS のエイリアスは aws/dynamodb のような aws/<service-name> 形式を使用するので認識できます。

このレスポンスには、TargetKeyId フィールドがないエイリアスも含まれます (この例の aws/redshift エイリアスなど)。これらは 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 では 1 つの KMS キーのタグを返しますが、コマンドをループで実行すると、アカウントとリージョン内のすべての KMS キー、または選択した KMS キーのセットに対するタグを取得できます。  この API は一度に 1 ページずつ返されるため、多数の KMS キーに多数のタグがある場合は、プログラミング言語のページ割りを使用して、必要なタグをすべて取得する必要があります。

ListResourceTags オペレーションは、すべての KMS キーのタグを返しますが、AWS マネージドキー はタグ付けされません。

KMS キーのタグを検索するには、ListResourceTags オペレーションを使用します。KeyId パラメータは必須です。このオペレーションは、キー ID またはキー ARN を受け入れます。この例を実行する前に、サンプルキー 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 スクリプトでは、ListKeys および ListResourceTags オペレーションを使用して、Project タグキーを持つアカウントおよびリージョンですべての KMS キーを取得します。これらのオペレーションは両方とも、結果の最初のページのみを取得します。多数の KMS キーまたは多数のタグがある場合は、言語のページ割り機能を使用して、各オペレーションの結果全体を取得します。この例を実行する前に、サンプルキー ID を有効な 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" } ]