AWS KMS を使用した例 AWS CLI - AWS Command Line Interface

このドキュメントは、 のバージョン 1 AWS CLI 専用です。のバージョン 2 に関連するドキュメントについては AWS CLI、バージョン 2 ユーザーガイド を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS KMS を使用した例 AWS CLI

次のコード例は、 AWS Command Line Interface で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています AWS KMS。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には、完全なソースコードへのリンクが含まれています。ここでは、コンテキストでコードを設定および実行する方法の手順を確認できます。

トピック

アクション

次の例は、cancel-key-deletion を使用する方法を説明しています。

AWS CLI

カスタマーマネージドKMSキーのスケジュールされた削除をキャンセルするには

次のcancel-key-deletion例では、カスタマーマネージドKMSキーの予定された削除をキャンセルします。

aws kms cancel-key-deletion \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

cancel-key-deletion コマンドが成功すると、スケジュールされた削除はキャンセルされます。ただし、KMSキーのキー状態は であるためDisabled、暗号化オペレーションでKMSキーを使用することはできません。機能を復元するには、 enable-key コマンド を使用します。

詳細については、「 Key Management Service デベロッパーガイド」の「キーの削除のスケジュールとキャンセル」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスCancelKeyDeletion」の「」を参照してください。

次の例は、connect-custom-key-store を使用する方法を説明しています。

AWS CLI

カスタムキーストアを接続するには

次のconnect-custom-key-store例では、指定されたカスタムキーストアを再接続します。このようなコマンドを使用して、カスタムキーストアを初めて接続したり、切断されたキーストアを再接続したりできます。

このコマンドを使用して、 AWS CloudHSM キーストアまたは外部キーストアを接続できます。

aws kms connect-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0

このコマンドは出力を返しません。コマンドが有効であることを確認するには、describe-custom-key-stores コマンドを使用します。

AWS CloudHSM キーストアの接続については、「 Key Management Service デベロッパーガイド」の AWS 「CloudHSM キーストアの接続と切断」を参照してください。 AWS

外部キーストアの接続については、「 Key Management Service デベロッパーガイド」の「外部キーストアの接続と切断」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスConnectCustomKeyStore」の「」を参照してください。

次の例は、create-alias を使用する方法を説明しています。

AWS CLI

KMSキーのエイリアスを作成するには

次のcreate-aliasコマンドは、KMSキー ID で識別されるキーexample-aliasに という名前のエイリアスを作成します1234abcd-12ab-34cd-56ef-1234567890ab

エイリアス名は alias/ で始める必要があります。で始まるエイリアス名は使用しないでくださいalias/aws。これらは が使用するために予約されています AWS。

aws kms create-alias \ --alias-name alias/example-alias \ --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab

このコマンドは出力を返しません。新しいエイリアスを確認するには、list-aliases コマンドを使用します。

詳細については、「AWS Key Management Service デベロッパーガイド」の「エイリアスの使用」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスCreateAlias」の「」を参照してください。

次のコード例は、create-custom-key-store を使用する方法を示しています。

AWS CLI

例 1: AWS CloudHSM キーストアを作成するには

次のcreate-custom-key-store例では、必要なパラメータを使用して AWS CloudHSM クラスターによってバックアップされた AWS CloudHSM キーストアを作成します。を追加することもできますcustom-key-store-type``parameter with the default value: ``AWS_CLOUDHSM

trust-anchor-certificateコマンドのファイル入力を指定するには AWS CLI、file://プレフィックスが必要です。

aws kms create-custom-key-store \ --custom-key-store-name ExampleCloudHSMKeyStore \ --cloud-hsm-cluster-id cluster-1a23b4cdefg \ --key-store-password kmsPswd \ --trust-anchor-certificate file://customerCA.crt

出力:

{ "CustomKeyStoreId": cks-1234567890abcdef0 }

詳細については、「 Key Management Service デベロッパーガイド」の AWS 「クラウドHSMキーストアの作成」を参照してください。 AWS

例 2: パブリックエンドポイント接続を使用して外部キーストアを作成するには

次のcreate-custom-key-store例では、インターネット経由で と AWS KMS通信する外部キーストア (XKS) を作成します。

この例では、 はオプションのプレフィックス XksProxyUriPathを使用しますexample-prefix

NOTE: バージョン 1.0 を使用する場合は AWS CLI、 パラメータなどの HTTPまたは HTTPS値を持つ XksProxyUriEndpoint パラメータを指定する前に、次のコマンドを実行します。

aws configure set cli_follow_urlparam false

それ以外の場合、 AWS CLIバージョン 1.0 はパラメータ値をそのURIアドレスにあるコンテンツに置き換えます。

aws kms create-custom-key-store \ --custom-key-store-name ExamplePublicEndpointXKS \ --custom-key-store-type EXTERNAL_KEY_STORE \ --xks-proxy-connectivity PUBLIC_ENDPOINT \ --xks-proxy-uri-endpoint "https://myproxy.xks.example.com" \ --xks-proxy-uri-path "/example-prefix/kms/xks/v1" \ --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="

出力:

{ "CustomKeyStoreId": cks-2234567890abcdef0 }

詳細については、「 Key Management Service デベロッパーガイド」の「外部キーストアAWS の作成」を参照してください。

例 3: VPCエンドポイントサービス接続を使用して外部キーストアを作成するには

次のcreate-custom-key-store例では、Amazon VPCエンドポイントサービスを使用して と通信する外部キーストア (XKS) を作成します AWS KMS。

NOTE: バージョン 1.0 を使用する場合は AWS CLI、 パラメータなどの HTTPまたは HTTPS値を持つ XksProxyUriEndpoint パラメータを指定する前に、次のコマンドを実行します。

aws configure set cli_follow_urlparam false

それ以外の場合、 AWS CLIバージョン 1.0 はパラメータ値をそのURIアドレスにあるコンテンツに置き換えます。

aws kms create-custom-key-store \ --custom-key-store-name ExampleVPCEndpointXKS \ --custom-key-store-type EXTERNAL_KEY_STORE \ --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \ --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \ --xks-proxy-uri-path "/kms/xks/v1" \ --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example1" \ --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="

出力:

{ "CustomKeyStoreId": cks-3234567890abcdef0 }

詳細については、「 Key Management Service デベロッパーガイド」の「外部キーストアの作成AWS 」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスCreateCustomKeyStore」の「」を参照してください。

次のコード例は、create-grant を使用する方法を示しています。

AWS CLI

権限を作成するには

次のcreate-grant例では、exampleUserユーザーが1234abcd-12ab-34cd-56ef-1234567890abサンプルKMSキーで decrypt コマンドを使用できるようにする許可を作成します。廃止するプリンシパルは adminRole ロールです。この権限は EncryptionContextSubset 権限の制約を使用して "Department": "IT" キー値ペアを含む decrypt リクエストでの暗号化のみを許可します。

aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::123456789012:user/exampleUser \ --operations Decrypt \ --constraints EncryptionContextSubset={Department=IT} \ --retiring-principal arn:aws:iam::123456789012:role/adminRole

出力:

{ "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "GrantToken": "<grant token here>" }

権限に関する詳細情報を表示するには、list-grants コマンドを使用します。

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「 のグラント AWS KMS」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスCreateGrant」の「」を参照してください。

次のコード例は、create-key を使用する方法を示しています。

AWS CLI

例 1: でカスタマーマネージドKMSキーを作成するには AWS KMS

次のcreate-key例では、対称暗号化KMSキーを作成します。

対称暗号化KMSキーである基本キーを作成するには、パラメータを指定する必要はありません。対称暗号化キーは、これらのパラメータのデフォルト値によって作成されます。

このコマンドはキーポリシーを指定しないため、KMSキーはプログラムで作成されたキーのデフォルトのキーポリシーを取得します。 KMSキーポリシーを表示するには、get-key-policy コマンドを使用します。キーポリシーを変更するには、put-key-policy コマンドを使用します。

aws kms create-key

create-key コマンドは、キー ID やARN新しいキーを含むKMSキーメタデータを返します。これらの値を使用して、他の AWS KMSオペレーションのKMSキーを識別できます。出力にはタグは含まれません。KMS キーのタグを表示するには、 を使用しますlist-resource-tags command

出力:

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

注: create-key コマンドではエイリアスを指定できません。新しいKMSキーのエイリアスを作成するには、 create-alias コマンドを使用します。

詳細については、「AWS Key Management Service デベロッパーガイド」の「キーの作成」を参照してください。

例 2: 暗号化と復号用の非対称RSAKMSキーを作成するには

次のcreate-key例では、暗号化と復号用の非対称KMSキーペアを含むRSAキーを作成します。

aws kms create-key \ --key-spec RSA_4096 \ --key-usage ENCRYPT_DECRYPT

出力:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2021-04-05T14:04:55-07:00", "CustomerMasterKeySpec": "RSA_4096", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "RSA_4096", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_KMS" } }

詳細については、「 Key Management Service デベロッパーガイド」の「 の非対称 AWS KMSキー」を参照してください。 AWS

例 3: 署名と検証用の非対称楕円曲線KMSキーを作成するには

署名と検証用の非対称楕円曲線 (ECC) KMSキーペアを含む非対称キーを作成するには。はECCKMSキーの唯一の有効な値ですがSIGN_VERIFY--key-usageパラメータは必須です。

aws kms create-key \ --key-spec ECC_NIST_P521 \ --key-usage SIGN_VERIFY

出力:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "ECC_NIST_P521", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "ECC_NIST_P521", "KeyState": "Enabled", "KeyUsage": "SIGN_VERIFY", "MultiRegion": false, "Origin": "AWS_KMS", "SigningAlgorithms": [ "ECDSA_SHA_512" ] } }

詳細については、「 Key AWS Management Service デベロッパーガイド」の「 の非対称 AWS KMSキー」を参照してください。

例 4: HMACKMSキーを作成するには

次のcreate-key例では、384 ビットHMACKMSキーを作成します。HMAC KMS キーの有効なGENERATE_VERIFY_MAC値は パラメータの値のみですが、 --key-usageパラメータの値は必須です。

aws kms create-key \ --key-spec HMAC_384 \ --key-usage GENERATE_VERIFY_MAC

出力:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-04-05T14:04:55-07:00", "CustomerMasterKeySpec": "HMAC_384", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "HMAC_384", "KeyState": "Enabled", "KeyUsage": "GENERATE_VERIFY_MAC", "MacAlgorithms": [ "HMAC_SHA_384" ], "MultiRegion": false, "Origin": "AWS_KMS" } }

詳細については、HMAC「 Key Management Service デベロッパーガイド AWS KMSAWS 」の「 のキー」を参照してください。

例 4: マルチリージョンのプライマリKMSキーを作成するには

次の create-key の例は、マルチリージョンのプライマリ対称暗号化キーを作成します。すべてのパラメータのデフォルト値は対称暗号化キーを作成するため、このKMSキーに必要なのは --multi-regionパラメータのみです。で AWS CLI、ブールパラメータが true であることを示すには、パラメータ名を指定します。

aws kms create-key \ --multi-region

出力:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", "AWSAccountId": "111122223333", "CreationDate": "2021-09-02T016:15:21-09:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "mrk-1234abcd12ab34cd56ef12345678990ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": true, "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", "Region": "us-west-2" }, "ReplicaKeys": [] }, "Origin": "AWS_KMS" } }

詳細については、「 Key Management Service デベロッパーガイド」の「 の非対称 AWS KMSキー」を参照してください。 AWS

例 5: インポートされたKMSキーマテリアルのキーを作成するには

次のcreate-key例では、 がKMSキーマテリアルのないキーを作成します。オペレーションが完了したら、独自のキーマテリアルをKMSキーにインポートできます。このKMSキーを作成するには、 --originパラメータを に設定しますEXTERNAL

aws kms create-key \ --origin EXTERNAL

出力:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": false, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "PendingImport", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL" } }

詳細については、「 Key Management Service デベロッパーガイド」の「キーでの AWS KMSキーマテリアルのインポート」を参照してください。 AWS

例 6: AWS CloudHSM KMSキーストアでキーを作成するには

次のcreate-key例では、 が指定された AWS CloudHSM KMSキーストアにキーを作成します。オペレーションは、 でKMS AWS KMSキーとそのメタデータを作成し、カスタムキーストアに関連付けられた AWS CloudHSM クラスターにキーマテリアルを作成します。--custom-key-store-id および --origin パラメータが必要です。

aws kms create-key \ --origin AWS_CLOUDHSM \ --custom-key-store-id cks-1234567890abcdef0

出力:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CloudHsmClusterId": "cluster-1a23b4cdefg", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-1234567890abcdef0", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_CLOUDHSM" } }

詳細については、「 Key Management Service デベロッパーガイド」のAWS 「クラウドHSMキーストア」を参照してください。 AWS

例 7: 外部KMSキーストアにキーを作成するには

次のcreate-key例では、 が指定された外部KMSキーストアにキーを作成します。このコマンドでは、--custom-key-store-id--origin、および --xks-key-id パラメータが必須です。

--xks-key-id パラメータは、外部キーマネージャーにある既存の対称暗号化キーの ID を指定します。このキーは、KMSキーの外部キーマテリアルとして機能します。 --originパラメータの値は である必要がありますEXTERNAL_KEY_STOREcustom-key-store-idパラメータは、外部キーストアプロキシに接続されている外部キーストアを識別する必要があります。

aws kms create-key \ --origin EXTERNAL_KEY_STORE \ --custom-key-store-id cks-9876543210fedcba9 \ --xks-key-id bb8562717f809024

出力:

{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-9876543210fedcba9", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL_KEY_STORE", "XksKeyConfiguration": { "Id": "bb8562717f809024" } } }

詳細については、「AWS Key Management Service デベロッパーガイド」の「外部キーストア」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスCreateKey」の「」を参照してください。

次のコード例は、decrypt を使用する方法を示しています。

AWS CLI

例 1: 対称KMSキーで暗号化されたメッセージを復号するには (Linux および macOS )

次のdecryptコマンド例は、 を使用してデータを復号化するための推奨方法を示しています AWS CLI。このバージョンは、対称KMSキーでデータを復号する方法を示しています。

file.In の暗号文に --ciphertext-blobパラメータの値を指定し、fileb://プレフィックスを使用します。プレフィックスは、 にバイナリファイルからデータを読み取るCLIように指示します。ファイルが現在のディレクトリにない場合は、ファイルへのフルパスを入力します。ファイルからパラメータ値を読み取る AWS CLI方法の詳細については、AWS 「 コマンドラインインターフェイスユーザーガイド」の「ファイル <https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html> からのパラメータのロード AWS CLI」およびAWS 「コマンドラインツールブログhttps://aws.amazon.com/blogs/best-practices-for-local」の「ローカルファイルパラメータのベストプラクティス」を参照してください。暗号文を復号するKMSキーを指定します。対称KMSキーで復号する場合、--key-idパラメータは必要ありません。 AWS KMS は、暗号文のメタデータからデータを暗号化するために使用されたKMSキーのキー ID を取得できます。ただし、使用しているKMSキーを指定するのは常にベストプラクティスです。この練習により、意図したKMSキーを使用し、信頼KMSできないキーを使用して誤って暗号文を復号化することを防ぎます。プレーンテキスト出力をテキスト値としてリクエストします。 --queryパラメータは に、出力からPlaintextフィールドの値のみを取得するCLIように指示します。--output パラメータは出力を text.Base64 でデコードしたプレーンテキストとして返し、ファイルに保存します。次の例では、Plaintext パラメータの値を Base64 ユーティリティにパイプ (|) して、Base64 ユーティリティでデコードします。次に、デコードされた出力を ExamplePlaintext ファイルにリダイレクト (>) します。

このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。

aws kms decrypt \ --ciphertext-blob fileb://ExampleEncryptedFile \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --output text \ --query Plaintext | base64 \ --decode > ExamplePlaintextFile

このコマンドでは何も出力されません。decrypt コマンドからの出力は base64 でデコードされ、ファイルに保存されます。

詳細については、AWS 「 キー管理サービスAPIリファレンス」の「復号化」を参照してください。

例 2: 対称KMSキーを使用して暗号化されたメッセージを復号するには (Windows コマンドプロンプト)

次の例は、certutil ユーティリティを使用してプレーンテキストデータを Base64 でデコードする点を除いて、前の例と同じです。この手順には、次の例に示すように 2 つのコマンドが必要です。

このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。

aws kms decrypt ^ --ciphertext-blob fileb://ExampleEncryptedFile ^ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^ --output text ^ --query Plaintext > ExamplePlaintextFile.base64

certutil コマンドを実行します。

certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile

出力:

Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.

詳細については、AWS 「 キー管理サービスAPIリファレンス」の「復号化」を参照してください。

例 3: 非対称KMSキーを使用して暗号化されたメッセージを復号するには (Linux および macOS )

次のdecryptコマンド例は、RSA非対称KMSキーで暗号化されたデータを復号する方法を示しています。

非対称KMSキーを使用する場合、プレーンテキストの暗号化に使用されるアルゴリズムを指定する encryption-algorithmパラメータが必要です。

このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。

aws kms decrypt \ --ciphertext-blob fileb://ExampleEncryptedFile \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --encryption-algorithm RSAES_OAEP_SHA_256 \ --output text \ --query Plaintext | base64 \ --decode > ExamplePlaintextFile

このコマンドでは何も出力されません。decrypt コマンドからの出力は base64 でデコードされ、ファイルに保存されます。

詳細については、「 Key Management Service デベロッパーガイド」の「 の非対称 AWS KMSキー」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンス」の「復号化」を参照してください。

次の例は、delete-alias を使用する方法を説明しています。

AWS CLI

エイリアスを削除するには AWS KMS

次の delete-alias の例は、エイリアス alias/example-alias を削除します。エイリアス名は alias/ で始まる必要があります。

aws kms delete-alias \ --alias-name alias/example-alias

このコマンドでは何も出力されません。エイリアスを見つけるには、list-aliases コマンドを使用します。

詳細については、「AWS Key Management Service デベロッパーガイド」の「エイリアスの削除」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスDeleteAlias」の「」を参照してください。

次のコード例は、delete-custom-key-store を使用する方法を示しています。

AWS CLI

カスタムキーストアを削除するには

次のdelete-custom-key-store例では、指定されたカスタムキーストアを削除します。

AWS CloudHSM キーストアを削除しても、関連付けられた CloudHSM クラスターには影響しません。外部キーストアを削除しても、関連付けられた外部キーストアプロキシ、外部キーマネージャー、または外部キーには影響しません。

NOTE: カスタムキーストアを削除する前に、カスタムキーストア内のすべてのKMSキーの削除をスケジュールし、それらのKMSキーの削除を待つ必要があります。次に、カスタムキーストアを切断する必要があります。カスタムKMSキーストア内のキーの検索については、AWS 「 キー管理サービスデベロッパーガイド」のAWS 「クラウドHSMキーストアの削除 (API)」を参照してください。

delete-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0

このコマンドは出力を返しません。カスタムキーストアが削除されていることを確認するには、 describe-custom-key-stores コマンドを使用します。

AWS CloudHSM キーストアの削除については、「 Key Management Service デベロッパーガイド」のAWS 「CloudHSM キーストアの削除」を参照してください。 AWS

外部キーストアの削除については、「 Key Management Service デベロッパーガイド」の「外部キーストアの削除」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスDeleteCustomKeyStore」の「」を参照してください。

次の例は、delete-imported-key-material を使用する方法を説明しています。

AWS CLI

インポートされたキーマテリアルをKMSキーから削除するには

次のdelete-imported-key-material例では、キーにインポートされたKMSキーマテリアルを削除します。

aws kms delete-imported-key-material \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

このコマンドでは何も出力されません。キーマテリアルが削除されていることを確認するには、 describe-key コマンドを使用して PendingImportまたは のキー状態を検索しますPendingDeletion

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「インポートされたキーマテリアル<https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-delete-key-material.html> の削除」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスDeleteImportedKeyMaterial」の「」を参照してください。

次の例は、derive-shared-secret を使用する方法を説明しています。

AWS CLI

共有シークレットを取得するには

次のderive-shared-secret例では、キー契約アルゴリズムを使用して共有シークレットを導き出します。

KEY_AGREEMENT を呼び出すには、 KeyUsage の値を持つ非対称NISTの推奨楕円曲線 (ECC) または SM2 (中国リージョンのみ) KMSキーペアを使用する必要があります DeriveSharedSecret。

aws kms derive-shared-secret \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-agreement-algorithm ECDH \ --public-key "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag"

出力:

{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", "KeyAgreementAlgorithm": "ECDH", "KeyOrigin": "AWS_KMS" }

詳細については、「 キー管理サービスリファレンスDeriveSharedSecret」の「」を参照してください。 AWS API

  • API 詳細については、AWS CLI 「 コマンドリファレンスDeriveSharedSecret」の「」を参照してください。

次のコード例は、describe-custom-key-stores を使用する方法を示しています。

AWS CLI

例 1: AWS CloudHSM キーストアの詳細を取得するには

次のdescribe-custom-key-store例では、指定された AWS CloudHSM キーストアの詳細を表示します。コマンドはすべてのタイプのカスタムキーストアで同じですが、出力はキーストアタイプと外部キーストアの接続オプションによって異なります。

デフォルトでは、このコマンドはアカウントとリージョンのすべてのカスタムキーストアに関する情報を表示します。特定のカスタムキーストアに関する情報を表示するには、 custom-key-store-name または custom-key-store-idパラメータを使用します。

aws kms describe-custom-key-stores \ --custom-key-store-name ExampleCloudHSMKeyStore

このコマンドの出力には、接続状態 () を含む AWS CloudHSM キーストアに関する便利な詳細が含まれますConnectionState。接続状態が の場合FAILED、出力には問題を説明するConnectionErrorCodeフィールドが含まれます。

出力:

{ "CustomKeyStores": [ { "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionState": "CONNECTED", "CreationDate": "2022-04-05T14:04:55-07:00", "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleExternalKeyStore", "TrustAnchorCertificate": "<certificate appears here>" } ] }

詳細については、AWS 「 Key Management Service デベロッパーガイド」の AWS 「クラウドHSMキーストアの表示」を参照してください。

例 2: パブリックエンドポイント接続を持つ外部キーストアの詳細を取得するには

次のdescribe-custom-key-store例では、指定された外部キーストアの詳細を表示します。コマンドはすべてのタイプのカスタムキーストアで同じですが、出力はキーストアタイプと外部キーストアの接続オプションによって異なります。

デフォルトでは、このコマンドはアカウントとリージョンのすべてのカスタムキーストアに関する情報を表示します。特定のカスタムキーストアに関する情報を表示するには、 custom-key-store-name または custom-key-store-idパラメータを使用します。

aws kms describe-custom-key-stores \ --custom-key-store-id cks-9876543210fedcba9

このコマンドの出力には、接続状態 () を含む外部キーストアに関する便利な詳細が含まれますConnectionState。接続状態が の場合FAILED、出力には問題を説明するConnectionErrorCodeフィールドが含まれます。

出力:

{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXKS", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE12345670EXAMPLE", "Connectivity": "PUBLIC_ENDPOINT", "UriEndpoint": "https://myproxy.xks.example.com", "UriPath": "/example-prefix/kms/xks/v1" } } ] }

詳細については、「 Key AWS Management Service デベロッパーガイド」の「外部キーストアの表示」を参照してください。

例 3: VPCエンドポイントサービス接続を持つ外部キーストアの詳細を取得するには

次のdescribe-custom-key-store例では、指定された外部キーストアの詳細を表示します。コマンドはすべてのタイプのカスタムキーストアで同じですが、出力はキーストアタイプと外部キーストアの接続オプションによって異なります。

デフォルトでは、このコマンドはアカウントとリージョンのすべてのカスタムキーストアに関する情報を表示します。特定のカスタムキーストアに関する情報を表示するには、 custom-key-store-name または custom-key-store-idパラメータを使用します。

aws kms describe-custom-key-stores \ --custom-key-store-id cks-2234567890abcdef0

このコマンドの出力には、接続状態 () を含む外部キーストアに関する便利な詳細が含まれますConnectionState。接続状態が の場合FAILED、出力には問題を説明するConnectionErrorCodeフィールドが含まれます。

出力:

{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-3234567890abcdef0", "CustomKeyStoreName": "ExampleVPCExternalKeyStore", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-22T07:48:55-07:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE12345670EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://myproxy-private.xks.example.com", "UriPath": "/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example1" } } ] }

詳細については、「 Key Management Service デベロッパーガイド」の「外部キーストアの表示」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスDescribeCustomKeyStores」の「」を参照してください。

次の例は、describe-key を使用する方法を説明しています。

AWS CLI

例 1: KMSキーに関する詳細情報を検索するには

次のdescribe-key例では、サンプルアカウントとリージョンの Amazon S3 の AWS マネージドキーに関する詳細情報を取得します。このコマンドを使用して、 AWS マネージドキーとカスタマーマネージドキーの詳細を検索できます。

KMS キーを指定するには、 key-idパラメータを使用します。この例ではエイリアス名の値を使用しますが、このコマンドARNではキー ID、キー ARN、エイリアス名、またはエイリアスを使用できます。

aws kms describe-key \ --key-id alias/aws/s3

出力:

{ "KeyMetadata": { "AWSAccountId": "846764612917", "KeyId": "b8a9477d-836c-491f-857e-07937918959b", "Arn": "arn:aws:kms:us-west-2:846764612917:key/b8a9477d-836c-491f-857e-07937918959b", "CreationDate": 2017-06-30T21:44:32.140000+00:00, "Enabled": true, "Description": "Default KMS key that protects my S3 objects when no other key is defined", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "AWS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

詳細については、「AWS Key Management Service デベロッパーガイド」の「キーの表示」を参照してください。

例 2: RSA非対称KMSキーの詳細を取得するには

次のdescribe-key例では、署名と検証に使用される非対称RSAKMSキーに関する詳細情報を取得します。

aws kms describe-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2019-12-02T19:47:14.861000+00:00", "CustomerMasterKeySpec": "RSA_2048", "Enabled": false, "Description": "", "KeyState": "Disabled", "Origin": "AWS_KMS", "MultiRegion": false, "KeyManager": "CUSTOMER", "KeySpec": "RSA_2048", "KeyUsage": "SIGN_VERIFY", "SigningAlgorithms": [ "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512" ] } }

例 3: マルチリージョンのレプリカキーに関する詳細を取得するには

次の describe-key の例は、マルチリージョンのレプリカキーのメタデータを取得します。このマルチリージョンキーは対称暗号化キーです。マルチリージョンキーの describe-key コマンドの出力は、プライマリキーとそのすべてのレプリカに関する情報を返します。

aws kms describe-key \ --key-id arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab

出力:

{ "KeyMetadata": { "MultiRegion": true, "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "CreationDate": "2021-06-28T21:09:16.114000+00:00", "Description": "", "Enabled": true, "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_KMS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "us-west-2" }, "ReplicaKeys": [ { "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "eu-west-1" }, { "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "ap-northeast-1" }, { "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "sa-east-1" } ] } } }

例 4: HMACKMSキーの詳細を取得するには

次のdescribe-key例では、HMACKMSキーに関する詳細情報を取得します。

aws kms describe-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "KeyMetadata": { "AWSAccountId": "123456789012", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2022-04-03T22:23:10.194000+00:00", "Enabled": true, "Description": "Test key", "KeyUsage": "GENERATE_VERIFY_MAC", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "HMAC_256", "MacAlgorithms": [ "HMAC_SHA_256" ], "MultiRegion": false } }
  • API 詳細については、AWS CLI 「 コマンドリファレンスDescribeKey」の「」を参照してください。

次のコード例は、disable-key-rotation を使用する方法を示しています。

AWS CLI

KMSキーの自動ローテーションを無効にするには

次のdisable-key-rotation例では、カスタマーマネージドKMSキーの自動ローテーションを無効にします。自動ローテーションを再度有効にするには、 enable-key-rotation コマンドを使用します。

aws kms disable-key-rotation \ --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

このコマンドでは何も出力されません。KMS キーの自動ローテーションが無効であることを確認するには、 get-key-rotation-status コマンドを使用します。

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「キーのローテーション」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスDisableKeyRotation」の「」を参照してください。

次のコード例は、disable-key を使用する方法を示しています。

AWS CLI

KMSキーを一時的に無効にするには

次の例では、 disable-key コマンドを使用してカスタマーマネージドKMSキーを無効にします。KMS キーを再度有効にするには、 enable-key コマンドを使用します。

aws kms disable-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

このコマンドでは何も出力されません。

詳細については、「AWS Key Management Service デベロッパーガイド」の「キーの有効化と無効化」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスDisableKey」の「」を参照してください。

次の例は、disconnect-custom-key-store を使用する方法を説明しています。

AWS CLI

カスタムキーストアを切断するには

次のdisconnect-custom-key-store例では、カスタムキーストアを AWS CloudHSM クラスターから切断します。キーストアを切断して、問題のトラブルシューティング、設定の更新、キーストア内のKMSキーが暗号化オペレーションで使用されないようにすることができます。

このコマンドは、 AWS クラウドHSMキーストアや外部キーストアなど、すべてのカスタムキーストアで同じです。

このコマンドを実行する前に、例のカスタムキーストア ID を有効な ID に置き換えます。

$ aws kms disconnect-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0

このコマンドは出力を生成しません。 コマンドが有効であることを確認し、 describe-custom-key-stores コマンドを使用します。

AWS CloudHSM キーストアの切断の詳細については、AWS 「 Key Management Service デベロッパーガイド」の AWS 「CloudHSM キーストアの接続と切断」を参照してください。

外部キーストアの切断の詳細については、AWS 「 Key Management Service デベロッパーガイド」の「外部キーストアの接続と切断」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスDisconnectCustomKeyStore」の「」を参照してください。

次のコード例は、enable-key-rotation を使用する方法を示しています。

AWS CLI

KMSキーの自動ローテーションを有効にするには

次のenable-key-rotation例では、ローテーション期間が 180 日のカスタマーマネージドKMSキーの自動ローテーションを有効にします。KMS キーは、このコマンドが完了した日から 1 年 (約 365 日) 後にローテーションされ、その後は毎年ローテーションされます。

--key-id パラメータはKMSキーを識別します。この例ではキーARN値を使用しますが、キー ID またはKMSキーARNの を使用できます。 --rotation-period-in-daysパラメータは、各ローテーション日の間の日数を指定します。90~2560 日の値を指定します。値が指定されていない場合、デフォルト値は 365 日です。

aws kms enable-key-rotation \ --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --rotation-period-in-days 180

このコマンドでは何も出力されません。KMS キーが有効であることを確認するには、 get-key-rotation-status コマンドを使用します。

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「キーのローテーション」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスEnableKeyRotation」の「」を参照してください。

次のコード例は、enable-key を使用する方法を示しています。

AWS CLI

KMSキーを有効にするには

次の enable-key の例は、カスタマーマネージドキーを有効にします。このようなコマンドを使用して、 disable-key コマンドを使用して一時的に無効にしたKMSキーを有効にすることができます。削除がスケジュールされ、削除がキャンセルされたため、無効にされたKMSキーを有効にするためにも使用できます。

KMS キーを指定するには、 key-idパラメータを使用します。この例ではキー ID 値を使用しますが、このコマンドではキー ID またはキーARN値を使用できます。

このコマンドを実行する前に、サンプルキー ID を有効なキー ID に置き換えます。

aws kms enable-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

このコマンドでは何も出力されません。KMS キーが有効になっていることを確認するには、 describe-key コマンドを使用します。describe-key 出力の KeyState および Enabled フィールドの値を参照してください。

詳細については、「AWS Key Management Service デベロッパーガイド」の「キーの有効化と無効化」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスEnableKey」の「」を参照してください。

次の例は、encrypt を使用する方法を説明しています。

AWS CLI

例 1: Linux または MacOS でファイルの内容を暗号化するには

次のencryptコマンドは、 でデータを暗号化する推奨方法を示しています AWS CLI。

aws kms encrypt \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --plaintext fileb://ExamplePlaintextFile \ --output text \ --query CiphertextBlob | base64 \ --decode > ExampleEncryptedFile

このコマンドは、以下の操作を行います。

--plaintext パラメータを使用して暗号化するデータを指定します。このパラメータ値は base64 でエンコードする必要があります。plaintextパラメータの値は base64 でエンコードするか、 fileb:// プレフィックスを使用する必要があります。プレフィックスは、 にファイルからバイナリデータを読み取るように指示 AWS CLIします。ファイルが現在のディレクトリにない場合は、ファイルへのフルパスを入力します。例えば、fileb:///var/tmp/ExamplePlaintextFilefileb://C:\Temp\ExamplePlaintextFile などです。ファイルからパラメータ値を読み取る AWS CLI方法の詳細については、 コマンドラインインターフェイスユーザーガイドの「ファイルからのパラメータのロード」と AWS 、コマンドラインツールブログの「ローカルファイルパラメータのベストプラクティス」を参照してください。 --outputおよび --queryパラメータを使用してコマンドの出力を制御します。これらのパラメータは、暗号化されたデータを抽出します。 AWS 暗号文 と呼ばれる コマンドの出力から。出力の制御の詳細については、 コマンドAWS ラインインターフェイスユーザーガイドの「コマンド出力の制御」を参照してください。 base64ユーティリティを使用して、抽出された出力をバイナリデータにデコードします。encryptコマンドが成功して返される暗号文は base64 でエンコードされたテキストです。を使用して復号する前に、このテキストを AWS CLIデコードする必要があります。バイナリ暗号文を ファイルに保存します。コマンド (> ExampleEncryptedFile) の最後の部分は、復号を容易にするためにバイナリ暗号文を ファイルに保存しています。を使用して AWS CLIデータを復号するコマンドの例については、復号の例を参照してください。

例 2: を使用して Windows でデータを暗号化する AWS CLI

この例は前の例と同じですが、base64 の代わりに certutil ツールを使用します。この手順には、次の例に示すように 2 つのコマンドが必要です。

aws kms encrypt \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --plaintext fileb://ExamplePlaintextFile \ --output text \ --query CiphertextBlob > C:\Temp\ExampleEncryptedFile.base64 certutil -decode C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFile

例 3: 非対称KMSキーによる暗号化

次のencryptコマンドは、非対称KMSキーを使用してプレーンテキストを暗号化する方法を示しています。--encryption-algorithm パラメータは必須です。すべてのencryptCLIコマンドと同様に、 plaintextパラメータは base64 でエンコードされているか、fileb://プレフィックスを使用する必要があります。プレフィックスは、 に AWS CLIファイルからバイナリデータを読み取るように指示します。

aws kms encrypt \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --encryption-algorithm RSAES_OAEP_SHA_256 \ --plaintext fileb://ExamplePlaintextFile \ --output text \ --query CiphertextBlob | base64 \ --decode > ExampleEncryptedFile

このコマンドでは何も出力されません。

  • API 詳細については、「 コマンドリファレンス」の「暗号化」を参照してください。 AWS CLI

次の例は、generate-data-key-pair-without-plaintext を使用する方法を説明しています。

AWS CLI

ECC NIST P384 非対称データキーペアを生成するには

次のgenerate-data-key-pair-without-plaintext例では、ECCNISTP384 キーペアを の外部で使用することをリクエストしています AWS。

コマンドは、プレーンテキストのパブリックキーと、指定されたキーで暗号化されたプライベートKMSキーのコピーを返します。プレーンテキストのプライベートキーは返されません。暗号化されたプライベートキーを暗号化されたデータに安全に保存し、使用する必要がある場合は を呼び出し AWS KMSてプライベートキーを復号化できます。

ECC NIST P384 非対称データキーペアをリクエストするには、 key-pair-specパラメータを の値で使用しますECC_NIST_P384

指定するKMSキーは、対称暗号化KMSキー、つまり KeySpec の値を持つKMSキーである必要がありますSYMMETRIC_DEFAULT

NOTE: この例の出力の値は、表示のために切り捨てられます。

aws kms generate-data-key-pair-without-plaintext \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-pair-spec ECC_NIST_P384

出力:

{ "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyPairSpec": "ECC_NIST_P384" }

PublicKeyPrivateKeyCiphertextBlobは base64 でエンコードされた形式で返されます。

詳細については、「 Key Management Service デベロッパーガイド」の「データキーペア」を参照してください。 AWS

次の例は、generate-data-key-pair を使用する方法を説明しています。

AWS CLI

2048 ビットのRSA非対称データキーペアを生成するには

次のgenerate-data-key-pair例では、2048 ビットのRSA非対称データキーペアを の外部で使用することをリクエストしています AWS。コマンドは、即時使用および削除のためにプレーンテキストのパブリックキーとプレーンテキストのプライベートキー、および指定されたキーで暗号化されたプライベートKMSキーのコピーを返します。暗号化されたプライベートキーは、暗号化されたデータと共に安全に保存できます。

2048 ビットのRSA非対称データキーペアをリクエストするには、 key-pair-specパラメータを の値で使用しますRSA_2048

指定するKMSキーは、対称暗号化KMSキー、つまり KeySpec の値を持つKMSキーである必要がありますSYMMETRIC_DEFAULT

NOTE: この例の出力の値は、表示のために切り捨てられます。

aws kms generate-data-key-pair \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-pair-spec RSA_2048

出力:

{ "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", "PrivateKeyPlaintext": "MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDcDd4YzI+u9Kfv4t2UkTWhShBXkekS4cBVt07I0P42ZgMf+YvU5IgS4ut...", "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyPairSpec": "RSA_2048" }

PublicKeyPrivateKeyPlaintextPrivateKeyCiphertextBlobは base64 エンコード形式で返されます。

詳細については、「 Key Management Service デベロッパーガイド」の「データキーペア」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスGenerateDataKeyPair」の「」を参照してください。

次のコード例は、generate-data-key-without-plaintext を使用する方法を示しています。

AWS CLI

プレーンテキストキーを使用せずに 256 ビットの対称データキーを生成するには

次の generate-data-key-without-plaintext の例は、256 ビットの対称データキーの暗号化コピーを AWSの外部で使用するようにリクエストします。データキーを使用する準備ができたら、 を呼び出し AWS KMSてデータキーを復号できます。

256 ビットのデータキーをリクエストするには、値 AES_256 を含む key-spec パラメータを使用します。128 ビットのデータキーをリクエストするには、値 AES_128 を含む key-spec パラメータを使用します。その他のすべてのデータキー長には、number-of-bytes パラメーターを使用します。

指定するKMSキーは、対称暗号化KMSキー、つまりKMSキー仕様値が SYMMETRIC_ のキーである必要がありますDEFAULT。

aws kms generate-data-key-without-plaintext \ --key-id "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --key-spec AES_256

出力:

{ "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

CiphertextBlob (暗号化されたデータキー) は base64 でエンコードされた形式で返されます。

詳細については、「AWS Key Management Service デベロッパーガイド」の「データキー」を参照してください。

次の例は、generate-data-key を使用する方法を説明しています。

AWS CLI

例 1: 256 ビットの対称データキーを生成するには

次のgenerate-data-key例では、 外で使用するために 256 ビット対称データキーをリクエストします AWS。コマンドは、すぐに使用および削除できるようにプレーンテキストデータキーと、指定されたキーで暗号化されたそのデータKMSキーのコピーを返します。暗号化されたデータとともに、暗号化されたデータキーを安全に保存できます。

256 ビットのデータキーをリクエストするには、値 AES_256 を含む key-spec パラメータを使用します。128 ビットのデータキーをリクエストするには、値 AES_128 を含む key-spec パラメータを使用します。その他のすべてのデータキー長には、number-of-bytes パラメーターを使用します。

指定するKMSキーは、対称暗号化KMSキー、つまりKMSキー仕様値が SYMMETRIC_ のキーである必要がありますDEFAULT。

aws kms generate-data-key \ --key-id alias/ExampleAlias \ --key-spec AES_256

出力:

{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }

Plaintext (プレーンテキストデータキー) と CiphertextBlob (暗号化データキー) は base64 でエンコードされた形式で返されます。

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「データキー <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys」を参照してください。

例 2: 512 ビットの対称データキーを生成するには

次の generate-data-key の例は、暗号化と復号用の 512 ビットの対称データキーを要求します。コマンドは、すぐに使用および削除できるようにプレーンテキストデータキーと、指定されたキーで暗号化されたそのデータKMSキーのコピーを返します。暗号化されたデータとともに、暗号化されたデータキーを安全に保存できます。

128 ビットまたは 256 ビット以外のキー長をリクエストするには、number-of-bytes パラメーターを使用します。512 ビットのデータキーをリクエストするために、次の例では値が 64 (バイト) の number-of-bytes パラメータを使用します。

指定するKMSキーは、対称暗号化KMSキー、つまりKMSキー仕様値が SYMMETRIC_ のキーである必要がありますDEFAULT。

NOTE: この例の出力の値は、表示のために切り捨てられます。

aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --number-of-bytes 64

出力:

{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

Plaintext (プレーンテキストデータキー) と CiphertextBlob (暗号化データキー) は base64 でエンコードされた形式で返されます。

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「データキー <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスGenerateDataKey」の「」を参照してください。

次のコード例は、generate-random を使用する方法を示しています。

AWS CLI

例 1: 256 ビットのランダムバイト文字列を生成するには (Linux または macOs)

次の generate-random の例は、256 ビット (32 バイト) の base64 でエンコードされたランダムバイト文字列を生成します。この例は、バイト文字列をデコードしてランダムファイルに保存します。

このコマンドを実行する際は、number-of-bytes パラメーターを使用してランダム値の長さをバイト単位で指定する必要があります。

このコマンドを実行するときにKMSキーを指定しません。ランダムバイト文字列は、どのKMSキーとも関係ありません。

デフォルトでは、 AWS KMS は乱数を生成します。ただし、カスタムキーストア<https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html>を指定すると、ランダムなバイト文字列がカスタムキーストアに関連付けられた AWS CloudHSM クラスターで生成されます。

この例は以下のパラメータと値を使用します。

値 の必須--number-of-bytesパラメータを使用して 32 バイト (256 ビット) 32をリクエストします。string.It は の値 の--outputパラメータを使用して、 text AWS CLIに出力をテキストとして返すように指示します。 の代わりにJSON、 を使用して response.It パイプ ( | ) から Plaintext プロパティの値を--query parameter抽出し、 コマンドの出力を base64ユーティリティ、 は、抽出された output.It をデコードし、リダイレクト演算子 ( > ) を使用してデコードされたバイト文字列を ExampleRandom file.It に保存し、リダイレクト演算子 ( > ) を使用してバイナリ暗号文をファイルに保存します。

aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext | base64 --decode > ExampleRandom

このコマンドでは何も出力されません。

詳細については、「 キー管理サービスリファレンスGenerateRandom」の「」を参照してください。 AWS API

例 2: 256 ビットの乱数を生成するには (Windows コマンドプロンプト)

次の例は、generate-random コマンドを使用して、base64 でエンコードされた 256 ビット (32 バイト)のランダムバイト文字列を生成します。この例は、バイト文字列をデコードしてランダムファイルに保存します。この例は前の例と同じですが、Windows の certutil のユーティリティを使用して、ランダムバイト文字列を base64 でデコードしてからファイルに保存する点が異なります。

最初に base64 でエンコードされたランダムバイト文字列を生成し、テンポラリファイル (ExampleRandom.base64) に保存します。

aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext > ExampleRandom.base64

generate-random コマンドの出力はファイルに保存されるため、この例では何も出力されません。

次に、certutil -decode コマンドを使用して、ExampleRandom.base64 ファイル内の base64 でエンコードされたバイト文字列をデコードします。その後、デコードされたバイト文字列を ExampleRandom ファイルに保存します。

certutil -decode ExampleRandom.base64 ExampleRandom

出力:

Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.

詳細については、「 キー管理サービスリファレンスGenerateRandom」の「」を参照してください。 AWS API

  • API 詳細については、AWS CLI 「 コマンドリファレンスGenerateRandom」の「」を参照してください。

次のコード例は、get-key-policy を使用する方法を示しています。

AWS CLI

キーポリシーを 1 つのキーから別のKMSキーにコピーするには KMS

次のget-key-policy例では、1 つのキーからKMSキーポリシーを取得し、テキストファイルに保存します。次に、テキストファイルをポリシー入力として使用して、別のKMSキーのポリシーを置き換えます。

--policyパラメータには文字列put-key-policyが必要なため、 --output textオプションを使用して、出力を の代わりにテキスト文字列として返す必要がありますJSON。

aws kms get-key-policy \ --policy-name default \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --query Policy \ --output text > policy.txt aws kms put-key-policy \ --policy-name default \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --policy file://policy.txt

このコマンドでは何も出力されません。

詳細については、「 リファレンスPutKeyPolicy」の「」を参照してください。 AWS KMS API

  • API 詳細については、AWS CLI 「 コマンドリファレンスGetKeyPolicy」の「」を参照してください。

次の例は、get-key-rotation-status を使用する方法を説明しています。

AWS CLI

KMSキーのローテーションステータスを取得するには。

次のget-key-rotation-status例では、自動ローテーションが有効になっているかどうか、ローテーション期間、次に予定されているローテーション日など、指定されたKMSキーのローテーションステータスに関する情報を返します。このコマンドは、カスタマーマネージドKMSキーと AWS マネージドKMSキーで使用できます。ただし、すべての AWS マネージドKMSキーは毎年自動的にローテーションされます。

aws kms get-key-rotation-status \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyRotationEnabled": true, "NextRotationDate": "2024-02-14T18:14:33.587000+00:00", "RotationPeriodInDays": 365 }

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「キーのローテーション」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスGetKeyRotationStatus」の「」を参照してください。

次の例は、get-parameters-for-import を使用する方法を説明しています。

AWS CLI

キーマテリアルをKMSキーにインポートするために必要な項目を取得するには

次のget-parameters-for-import例では、キーマテリアルをキーにインポートするために必要なパブリックKMSキーとインポートトークンを取得します。import-key-material コマンドを使用する場合は、同じget-parameters-for-importコマンドで返されたパブリックキーによって暗号化されたインポートトークンとキーマテリアルを必ず使用してください。また、このコマンドで指定するラッピングアルゴリズムは、パブリックキーでキーマテリアルを暗号化するために使用するアルゴリズムである必要があります。

KMS キーを指定するには、 key-idパラメータを使用します。この例ではキー ID を使用しますが、このコマンドARNではキー ID またはキーを使用できます。

aws kms get-parameters-for-import \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --wrapping-algorithm RSAES_OAEP_SHA_256 \ --wrapping-key-spec RSA_2048

出力:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "PublicKey": "<public key base64 encoded data>", "ImportToken": "<import token base64 encoded data>", "ParametersValidTo": 1593893322.32 }

詳細については、「 Key Management Service デベロッパーガイド」の「パブリックキーをダウンロードしてトークンをインポートする」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスGetParametersForImport」の「」を参照してください。

次のコード例は、get-public-key を使用する方法を示しています。

AWS CLI

例 1: 非対称キーのパブリックKMSキーをダウンロードするには

次のget-public-key例では、非対称キーのパブリックKMSキーをダウンロードします。

パブリックキーを返すだけでなく、出力には、キーの使用状況やサポートされている暗号化アルゴリズムなど AWS KMS、 の外部でパブリックキーを安全に使用するために必要な情報が含まれます。

aws kms get-public-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "PublicKey": "jANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl5epvg1/QtJhxSi2g9SDEVg8QV/...", "CustomerMasterKeySpec": "RSA_4096", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ] }

で非対称KMSキーを使用する方法の詳細については AWS KMS、AWS 「 キー管理サービスAPIリファレンス」の「対称キーと非対称キーの使用」を参照してください。

例 2: パブリックキーをDER形式に変換するには (Linux および macOS )

次のget-public-key例では、非対称キーのパブリックKMSキーをダウンロードし、DERファイルに保存します。

get-public-key コマンドを使用すると AWS CLI、Base64 DERでエンコードされた というエンコードされた X.509 パブリックキーが返されます。 Base64-encoded この例では、 PublicKeyプロパティの値をテキストとして取得します。Base64-decodesPublicKeyし、public_key.derファイルに保存します。output パラメータは、出力を ではなくテキストとして返しますJSON。--query パラメータは PublicKeyプロパティのみを取得し、 の外部でパブリックキーを安全に使用するために必要なプロパティは取得しません AWS KMS。

このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。

aws kms get-public-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --output text \ --query PublicKey | base64 --decode > public_key.der

このコマンドでは何も出力されません。

での非対称KMSキーの使用の詳細については AWS KMS、 AWS キー管理サービスAPIリファレンス「対称キーと非対称キーの使用」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスGetPublicKey」の「」を参照してください。

次のコード例は、import-key-material を使用する方法を示しています。

AWS CLI

キーマテリアルをKMSキーにインポートするには

次のimport-key-material例では、キーマテリアルなしで作成されたKMSキーにキーマテリアルをアップロードします。キーのKMSキー状態は である必要がありますPendingImport

このコマンドは、get-parameters-for-importコマンドが返したパブリックキーで暗号化したキーマテリアルを使用します。また、同じget-parameters-for-importコマンドからのインポートトークンも使用します。

expiration-model パラメータは、キーマテリアルが valid-toパラメータで指定された日付と時刻に自動的に期限切れになることを示します。キーマテリアルの有効期限が切れると、 AWS KMS はキーマテリアルを削除Pending importし、KMSキーのキー状態は に変わり、KMSキーは使用できなくなります。KMS キーを復元するには、同じキーマテリアルを再インポートする必要があります。異なるキーマテリアルを使用するには、新しいKMSキーを作成する必要があります。

このコマンドを実行する前に、サンプルキー ID をアカウントの有効なキー ID またはキーに置き換えARNます AWS 。

aws kms import-key-material \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --encrypted-key-material fileb://EncryptedKeyMaterial.bin \ --import-token fileb://ImportToken.bin \ --expiration-model KEY_MATERIAL_EXPIRES \ --valid-to 2021-09-21T19:00:00Z

このコマンドでは何も出力されません。

キーマテリアルのインポートの詳細については、「 キーマネジメントサービスデベロッパーガイド」の「キーマテリアルのインポート」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスImportKeyMaterial」の「」を参照してください。

次のコード例は、list-aliases を使用する方法を示しています。

AWS CLI

例 1: AWS アカウントとリージョン内のすべてのエイリアスを一覧表示するには

次の例では、 list-aliases コマンドを使用して、 AWS アカウントのデフォルトのリージョン内のすべてのエイリアスを一覧表示します。出力には、 AWS マネージドKMSキーとカスタマーマネージドKMSキーに関連付けられたエイリアスが含まれます。

aws kms list-aliases

出力:

{ "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/testKey", "AliasName": "alias/testKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/FinanceDept", "AliasName": "alias/FinanceDept", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "AliasName": "alias/aws/dynamodb", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs", "AliasName": "alias/aws/ebs", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef" }, ... ] }

例 2: 特定のKMSキーのすべてのエイリアスを一覧表示するには

次の例では、 list-aliases コマンドとそのkey-idパラメータを使用して、特定のKMSキーに関連付けられているすべてのエイリアスを一覧表示します。

各エイリアスは 1 つのKMSキーにのみ関連付けられますが、KMSキーには複数のエイリアスを含めることができます。このコマンドは、コンソールが AWS KMS各KMSキーに 1 つのエイリアスのみを一覧表示するため、非常に便利です。KMS キーのすべてのエイリアスを検索するには、 list-aliases コマンドを使用する必要があります。

この例では、 --key-idパラメータに KMS キーのキー ID を使用しますが、このコマンドARNでキー ID、キー ARN、エイリアス名、またはエイリアスを使用できます。

aws kms list-aliases --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "Aliases": [ { "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/oregon-test-key", "AliasName": "alias/oregon-test-key" }, { "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project121-test", "AliasName": "alias/project121-test" } ] }

詳細については、「AWS Key Management Service デベロッパーガイド」の「エイリアスの使用」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスListAliases」の「」を参照してください。

次の例は、list-grants を使用する方法を説明しています。

AWS CLI

キーの AWS KMS許可を表示するには

次のlist-grants例では、アカウントの Amazon DynamoDB の指定された AWS マネージドKMSキーに対するすべての許可を表示します。この許可により、DynamoDB はユーザーに代わって KMSキーを使用して DynamoDB テーブルを暗号化してからディスクに書き込むことができます。このようなコマンドを使用して、 AWS アカウントとリージョンの AWS マネージドKMSキーとカスタマーマネージドKMSキーに対する権限を表示できます。

このコマンドは、キー ID を持つ key-idパラメータを使用してKMSキーを識別します。キー ID またはキーを使用してKMSキーARNを識別できます。 AWS マネージドキーARNのキー ID またはKMSキーを取得するには、 list-keys または list-aliases コマンドを使用します。

aws kms list-grants \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力は、グラントが Amazon DynamoDB に暗号化オペレーションにKMSキーを使用するアクセス許可を付与し、KMSキーの詳細を表示 (DescribeKey) およびグラントを廃止するアクセス許可を付与する () ことを示していますRetireGrantEncryptionContextSubset の制約により、これらの権限は指定された暗号化コンテキストペアを含むリクエストに限定されます。そのため、この権限のアクセス許可は指定されたアカウントと DynamoDB テーブルでのみ有効です。

{ "Grants": [ { "Constraints": { "EncryptionContextSubset": { "aws:dynamodb:subscriberId": "123456789012", "aws:dynamodb:tableName": "Services" } }, "IssuingAccount": "arn:aws:iam::123456789012:root", "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a", "Operations": [ "Decrypt", "Encrypt", "GenerateDataKey", "ReEncryptFrom", "ReEncryptTo", "RetireGrant", "DescribeKey" ], "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59", "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com", "CreationDate": "2021-05-13T18:32:45.144000+00:00" } ] }

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「 のグラント AWS KMS」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスListGrants」の「」を参照してください。

次のコード例は、list-key-policies を使用する方法を示しています。

AWS CLI

キーのKMSキーポリシーの名前を取得するには

次の list-key-policies の例は、サンプルアカウントとリージョンのカスタマーマネージドキーのキーポリシーの名前を取得します。このコマンドを使用して、 AWS マネージドキーとカスタマーマネージドキーのキーポリシーの名前を検索できます。

有効なキーポリシー名は default のみであるため、このコマンドは有用ではありません。

KMS キーを指定するには、 key-idパラメータを使用します。この例ではキー ID 値を使用しますが、このコマンドARNではキー ID またはキーを使用できます。

aws kms list-key-policies \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "PolicyNames": [ "default" ] }

キーポリシーの詳細については AWS KMS、「 Key Management Service デベロッパーガイド」の「 でのキーポリシーの使用 AWS KMS」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスListKeyPolicies」の「」を参照してください。

次のコード例は、list-key-rotations を使用する方法を示しています。

AWS CLI

完了したすべてのキーマテリアルローテーションに関する情報を取得するには

次のlist-key-rotations例は、指定されたキーに対して完了したすべてのKMSキーマテリアルローテーションに関する情報を示しています。

aws kms list-key-rotations \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "Rotations": [ { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "RotationDate": "2024-03-02T10:11:36.564000+00:00", "RotationType": "AUTOMATIC" }, { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "RotationDate": "2024-04-05T15:14:47.757000+00:00", "RotationType": "ON_DEMAND" } ], "Truncated": false }

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「キーのローテーション」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスListKeyRotations」の「」を参照してください。

次のコード例は、list-keys を使用する方法を示しています。

AWS CLI

アカウントとリージョンのKMSキーを取得するには

次のlist-keys例では、 アカウントとリージョンのKMSキーを取得します。このコマンドは、 AWS マネージドキーとカスタマーマネージドキーの両方を返します。

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" } ] }

詳細については、「AWS Key Management Service デベロッパーガイド」の「キーの表示」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスListKeys」の「」を参照してください。

次のコード例は、list-resource-tags を使用する方法を示しています。

AWS CLI

KMSキーのタグを取得するには

次のlist-resource-tags例では、KMSキーのタグを取得します。KMS キーにリソースタグを追加または置き換えるには、 tag-resource コマンドを使用します。出力は、このKMSキーに 2 つのリソースタグがあり、それぞれにキーと値があることを示しています。

KMS キーを指定するには、 key-idパラメータを使用します。この例ではキー ID 値を使用しますが、このコマンドARNではキー ID またはキーを使用できます。

aws kms list-resource-tags \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "Tags": [ { "TagKey": "Dept", "TagValue": "IT" }, { "TagKey": "Purpose", "TagValue": "Test" } ], "Truncated": false }

でのタグの使用の詳細については AWS KMS、AWS 「 Key Management Service デベロッパーガイド」の「キーのタグ付け」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスListResourceTags」の「」を参照してください。

次の例は、list-retirable-grants を使用する方法を説明しています。

AWS CLI

プリンシパルが廃止できる許可を表示するには

次のlist-retirable-grants例では、ExampleAdminユーザーが AWS アカウントとリージョンのKMSキーで廃止できるすべての許可を表示します。このようなコマンドを使用して、アカウントプリンシパルが AWS アカウントとリージョンのKMSキーに対して廃止できる権限を表示できます。

必須retiring-principalパラメータの値は、アカウント、ユーザー、またはロールの Amazon リソースネーム (ARN) である必要があります。

このコマンドretiring-principalで の値にサービスを指定することはできません。ただし、サービスが廃止プリンシパルになる可能性があります。特定のサービスが廃止プリンシパルである許可を見つけるには、 list-grants コマンドを使用します。

出力は、ExampleAdminユーザーがアカウントとリージョンの 2 つの異なるKMSキーに対する許可を廃止するアクセス許可を持っていることを示しています。廃止プリンシパルに加えて、アカウントにはアカウント内の許可を廃止するアクセス許可があります。

aws kms list-retirable-grants \ --retiring-principal arn:aws:iam::111122223333:user/ExampleAdmin

出力:

{ "Grants": [ { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "GrantId": "156b69c63cb154aa21f59929ff19760717be8d9d82b99df53e18b94a15a5e88e", "Name": "", "CreationDate": 2021-01-14T20:17:36.419000+00:00, "GranteePrincipal": "arn:aws:iam::111122223333:user/ExampleUser", "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Encrypt" ], "Constraints": { "EncryptionContextSubset": { "Department": "IT" } } }, { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "GrantId": "8c94d1f12f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "Name": "", "CreationDate": "2021-02-02T19:49:49.638000+00:00", "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole", "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Decrypt" ], "Constraints": { "EncryptionContextSubset": { "Department": "IT" } } } ], "Truncated": false }

詳細については、AWS 「 Key Management Service デベロッパーガイド」の「 のグラント AWS KMS」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスListRetirableGrants」の「」を参照してください。

次のコード例は、put-key-policy を使用する方法を示しています。

AWS CLI

キーのKMSキーポリシーを変更するには

次の put-key-policy の例は、カスタマーマネージドキーのキーポリシーを変更します。

開始するには、キーポリシーを作成し、ローカルJSONファイルに保存します。この例では、key_policy.json がこのファイルです。また、キーポリシーを policy パラメータの文字列値として指定することもできます。

このキーポリシーの最初のステートメントは、 AWS アカウントに対し、 IAM ポリシーを使用してKMSキーへのアクセスを制御するアクセス許可を付与します。2 番目のステートメントは、 KMSキーで describe-keyおよび list-keys コマンドを実行するアクセス許可をtest-userユーザーに付与します。

key_policy.json の内容:

{ "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" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:DescribeKey", "kms:ListKeys" ], "Resource" : "*" } ] }

KMS キーを識別するには、この例ではキー ID を使用しますが、キー を使用することもできますARN。キーポリシーを指定するために、このコマンドは policy パラメータを使用します。ポリシーがファイル内にあることを示すには、必要な file:// プレフィックスを使用します。このプレフィックスは、サポートされているすべてのオペレーティングシステムでファイルを識別するために必要です。最後に、コマンドは値が defaultpolicy-name パラメーターを使用します。ポリシー名が指定されていない場合、デフォルト値は ですdefault。唯一の有効な値は default です。

aws kms put-key-policy \ --policy-name default \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --policy file://key_policy.json

このコマンドでは、出力が生成されません。コマンドが有効であることを確認するには、get-key-policy コマンドを使用します。次のコマンド例では、同じキーのKMSキーポリシーを取得します。値が textoutput パラメータは、読みやすいテキスト形式を返します。

aws kms get-key-policy \ --policy-name default \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --output text

出力:

{ "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" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:Describe", "kms:List" ], "Resource" : "*" } ] }

詳細については、「AWS Key Management Service デベロッパーガイド」の「キーポリシーの変更」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスPutKeyPolicy」の「」を参照してください。

次の例は、re-encrypt を使用する方法を説明しています。

AWS CLI

例 1: 暗号化されたメッセージを別の対称KMSキー (Linux と macOS ) で再暗号化するには。

次のre-encryptコマンド例は、 でデータを再暗号化する推奨方法を示しています AWS CLI。

file.In の暗号文に --ciphertext-blobパラメータの値を指定し、fileb://プレフィックスを使用します。プレフィックスは、 にバイナリファイルからデータを読み取るCLIように指示します。ファイルが現在のディレクトリにない場合は、ファイルへのフルパスを入力します。ファイルからパラメータ値を読み取る AWS CLI方法の詳細については、AWS 「 コマンドラインインターフェイスユーザーガイド」の「ファイル <https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html> からのパラメータのロード AWS CLI」およびAWS 「コマンドラインツールブログhttps://aws.amazon.com/blogs/best-practices-for-local」の「ローカルファイルパラメータのベストプラクティス」を参照してください。暗号文を復号するソースKMSキーを指定します。対称暗号化KMSキーで復号する場合、--source-key-idパラメータは必要ありません。 AWS KMS は、暗号文ブロックのメタデータからデータを暗号化するために使用されたKMSキーを取得できます。ただし、使用しているKMSキーを指定するのは常にベストプラクティスです。この練習により、意図したKMSキーを使用し、信頼KMSできないキーを使用して誤って暗号文を復号化することを防ぐことができます。送信先KMSキーを指定して、データを再暗号化します。 --destination-key-idパラメータは常に必要です。この例ではキー を使用しますがARN、有効なキー識別子を使用できます。プレーンテキスト出力をテキスト値としてリクエストします。 --queryパラメータは に、出力からPlaintextフィールドの値のみを取得するCLIように指示します。--output パラメータは出力を text.Base64 でデコードしたプレーンテキストとして返し、ファイルに保存します。次の例では、Plaintext パラメータの値を Base64 ユーティリティにパイプ (|) して、Base64 ユーティリティでデコードします。次に、デコードされた出力を ExamplePlaintext ファイルにリダイレクト (>) します。

このコマンドを実行する前に、サンプルキーを AWS アカウントのIDs有効なキー識別子に置き換えます。

aws kms re-encrypt \ --ciphertext-blob fileb://ExampleEncryptedFile \ --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --query CiphertextBlob \ --output text | base64 --decode > ExampleReEncryptedFile

このコマンドでは何も出力されません。re-encrypt コマンドからの出力は base64 でデコードされ、ファイルに保存されます。

詳細については、「 キー管理サービスリファレンス」の ReEncrypt 「<https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html」を参照してください。 AWS API

例 2: 暗号化されたメッセージを別の対称KMSキーで再暗号化するには (Windows コマンドプロンプト)。

次の re-encrypt の例は、certutil ユーティリティを使用してプレーンテキストデータを Base64 でデコードする点を除いて、前の例と同じです。この手順には、次の例に示すように 2 つのコマンドが必要です。

このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。

aws kms re-encrypt ^ --ciphertext-blob fileb://ExampleEncryptedFile ^ --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^ --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 ^ --query CiphertextBlob ^ --output text > ExampleReEncryptedFile.base64

その後、certutil ユーティリティーを使用します。

certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile

出力:

Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.

詳細については、「 キー管理サービスリファレンス」の ReEncrypt 「<https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html」を参照してください。 AWS API

  • API 詳細については、AWS CLI 「 コマンドリファレンスReEncrypt」の「」を参照してください。

次の例は、retire-grant を使用する方法を説明しています。

AWS CLI

カスタマーマスターキーの権限を廃止するには

次のretire-grant例では、KMSキーから許可を削除します。

次のコマンド例は、grant-id パラメータと key-id パラメータを指定します。key-id パラメータの値は、 キーARNの KMS キーである必要があります。

aws kms retire-grant \ --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \ --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

このコマンドでは何も出力されません。権限が廃止されたことを確認するには、list-grants コマンドを使用します。

詳細については、「AWS Key Management Service デベロッパーガイド」の「グラントの使用停止と取り消し」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスRetireGrant」の「」を参照してください。

次のコード例は、revoke-grant を使用する方法を示しています。

AWS CLI

カスタマーマスターキーの権限を取り消すには

次のrevoke-grant例では、KMSキーから許可を削除します。次のコマンド例は、grant-id パラメータと key-id パラメータを指定します。key-id パラメータの値は、キーARNのキー ID またはKMSキーにすることができます。

aws kms revoke-grant \ --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

このコマンドでは何も出力されません。権限が取り消されたことを確認するには、list-grants コマンドを使用します。

詳細については、「AWS Key Management Service デベロッパーガイド」の「グラントの使用停止と取り消し」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスRevokeGrant」の「」を参照してください。

次の例は、rotate-key-on-demand を使用する方法を説明しています。

AWS CLI

KMSキーのオンデマンドローテーションを実行するには

次のrotate-key-on-demand例では、指定したキーのKMSキーマテリアルのローテーションをすぐに開始します。

aws kms rotate-key-on-demand \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

出力:

{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }

詳細については、「 Key Management Service デベロッパーガイド」の「オンデマンドキーローテーションの実行方法」を参照してください。 AWS

  • API 詳細については、AWS CLI 「 コマンドリファレンスRotateKeyOnDemand」の「」を参照してください。

次の例は、schedule-key-deletion を使用する方法を説明しています。

AWS CLI

カスタマーマネージドKMSキーの削除をスケジュールするには。

次のschedule-key-deletion例では、指定されたカスタマーマネージドKMSキーを 15 日後に削除するようにスケジュールします。

--key-id パラメータはKMSキーを識別します。この例ではキーARN値を使用しますが、キー ID またはKMSキーARNの を使用できます。 --pending-window-in-daysパラメータは、7~30 日間の待機期間の長さを指定します。デフォルトでは、待機時間は 30 日です。この例では、15 の値を指定します。この値は、 コマンドの完了から 15 日後にKMSキーを完全に削除する AWS ように に指示します。

aws kms schedule-key-deletion \ --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --pending-window-in-days 15

レスポンスにはARN、キー 、キーの状態、待機期間 (PendingWindowInDays)、Unix 時間の削除日が含まれます。削除日を現地時間で表示するには、 AWS KMSコンソールを使用します。KMS キー状態のPendingDeletionキーは、暗号化オペレーションでは使用できません。

{ "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "DeletionDate": "2022-06-18T23:43:51.272000+00:00", "KeyState": "PendingDeletion", "PendingWindowInDays": 15 }

詳細については、「AWS Key Management Service デベロッパーガイド」の「Deleting keys」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスScheduleKeyDeletion」の「」を参照してください。

次の例は、sign を使用する方法を説明しています。

AWS CLI

例 1: メッセージのデジタル署名を生成するには

次のsign例では、短いメッセージの暗号化署名を生成します。コマンドの出力には、 verify コマンドを使用して検証できる base-64 エンコードされたSignatureフィールドが含まれています。

署名するメッセージと、非対称KMSキーがサポートする署名アルゴリズムを指定する必要があります。KMS キーの署名アルゴリズムを取得するには、 describe-key コマンドを使用します。

2.0 AWS CLIでは、 messageパラメータの値は Base64-encodedである必要があります。または、メッセージをファイルに保存し、fileb://プレフィックスを使用できます。プレフィックスは、 に AWS CLIファイルからバイナリデータを読み取るように指示します。

このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、KMSキーの使用量が SIGN_ の非対称キーを表す必要がありますVERIFY。

msg=(echo 'Hello World' | base64) aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://UnsignedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256

出力:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Signature": "ABCDEFhpyVYyTxbafE74ccSvEJLJr3zuoV1Hfymz4qv+/fxmxNLA7SE1SiF8lHw80fKZZ3bJ...", "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }

で非対称KMSキーを使用する方法の詳細については AWS KMS、AWS 「 キー管理サービスデベロッパーガイド」の「 の非対称キー AWS KMS」を参照してください。

例 2: デジタル署名をファイルに保存するには (Linux および macOs)

次のsign例では、ローカルファイルに保存されている短いメッセージの暗号化署名を生成します。コマンドはレスポンスから Signatureプロパティも取得し、Base64-decodesして ExampleSignature ファイルに保存します。署名を検証するverifyコマンドで署名ファイルを使用できます。

sign コマンドには、Base64-encodedされたメッセージと、非対称KMSキーがサポートする署名アルゴリズムが必要です。KMS キーがサポートする署名アルゴリズムを取得するには、 describe-key コマンドを使用します。

このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、KMSキーの使用量が SIGN_ の非対称キーを表す必要がありますVERIFY。

echo 'hello world' | base64 > EncodedMessage aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ --output text \ --query Signature | base64 --decode > ExampleSignature

このコマンドでは何も出力されません。この例では、出力の Signatureプロパティを抽出し、ファイルに保存します。

で非対称KMSキーを使用する方法の詳細については AWS KMS、AWS 「 キー管理サービスデベロッパーガイド」の「 の非対称キー AWS KMS」を参照してください。

  • API 詳細については、「 コマンドAWS CLI リファレンスサインイン」を参照してください。

次のコード例は、tag-resource を使用する方法を示しています。

AWS CLI

KMSキーにタグを追加するには

次のtag-resource例では、カスタマーマネージドKMSキーに "Purpose":"Test""Dept":"IT" タグを追加します。このようなタグを使用してKMSキーにラベルを付け、アクセス許可と監査用のKMSキーのカテゴリを作成できます。

KMS キーを指定するには、 key-idパラメータを使用します。この例ではキー ID 値を使用しますが、このコマンドARNではキー ID またはキーを使用できます。

aws kms tag-resource \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --tags TagKey='Purpose',TagValue='Test' TagKey='Dept',TagValue='IT'

このコマンドでは何も出力されません。KMS キーの AWS KMSタグを表示するには、 list-resource-tags コマンドを使用します。

でのタグの使用の詳細については AWS KMS、AWS 「 Key Management Service デベロッパーガイド」の「キーのタグ付け」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスTagResource」の「」を参照してください。

次の例は、untag-resource を使用する方法を説明しています。

AWS CLI

KMSキーからタグを削除するには

次のuntag-resource例では、カスタマーマネージド"Purpose"キーから KMS キーを持つ タグを削除します。

KMS キーを指定するには、 key-idパラメータを使用します。この例ではキー ID 値を使用しますが、このコマンドARNではキー ID またはキーを使用できます。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。

aws kms untag-resource \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --tag-key 'Purpose'

このコマンドでは何も出力されません。KMS キーの AWS KMSタグを表示するには、 list-resource-tags コマンドを使用します。

でのタグの使用の詳細については AWS KMS、AWS 「 Key Management Service デベロッパーガイド」の「キーのタグ付け」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスUntagResource」の「」を参照してください。

次のコード例は、update-alias を使用する方法を示しています。

AWS CLI

エイリアスを別のKMSキーに関連付けるには

次のupdate-alias例では、エイリアスを別のKMSキーalias/test-keyに関連付けます。

--alias-name パラメータはエイリアス名を指定します。エイリアス名値は で始まる必要がありますalias/--target-key-idパラメータは、エイリアスに関連付けるKMSキーを指定します。エイリアスの現在のKMSキーを指定する必要はありません。

aws kms update-alias \ --alias-name alias/test-key \ --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab

このコマンドでは何も出力されません。エイリアスを見つけるには、list-aliases コマンドを使用します。

詳細については、「AWS Key Management Service デベロッパーガイド」の「エイリアスの更新」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスUpdateAlias」の「」を参照してください。

次の例は、update-custom-key-store を使用する方法を説明しています。

AWS CLI

例 1: カスタムキーストアのわかりやすい名前を編集するには

次のupdate-custom-key-store例では、カスタムキーストアの名前を変更します。この例では、 AWS CloudHSM キーストアまたは外部キーストアで機能します。

custom-key-store-id を使用してキーストアを識別します。new-custom-key-store-name パラメータを使用して、新しいフレンドリ名を指定します。

AWS CloudHSM キーストアのわかりやすい名前を更新するには、 disconnect-custom-key-store コマンドを使用するなどして、まずキーストアを切断する必要があります。外部キーストアのフレンドリ名は、接続中または切断中に更新できます。カスタムキーストアの接続状態を確認するには、 describe-custom-key-store コマンドを使用します。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --new-custom-key-store-name ExampleKeyStore

このコマンドはデータを返しません。コマンドが機能したことを確認するには、 describe-custom-key-stores コマンドを使用します。

AWS CloudHSM キーストアの更新の詳細については、AWS 「 Key Management Service デベロッパーガイド」のAWS 「CloudHSM キーストア設定の編集」を参照してください。

外部キーストアの更新の詳細については、AWS 「 Key Management Service デベロッパーガイド」の「外部キーストアプロパティの編集」を参照してください。

例 2: AWS CloudHSM キーストアの kmsuser パスワードを編集するには

次のupdate-custom-key-store例では、kmsuserパスワードの値を、指定されたキーストアに関連付けられた CloudHSM クラスターkmsuser内の の現在のパスワードに更新します。このコマンドは、クラスターのkmsuserパスワードを変更しません。現在のパスワードのみを伝え AWS KMSます。に現在のkmsuserパスワードKMSがない場合は、 AWS CloudHSM キーストアに接続できません。

NOTE: AWS CloudHSM キーストアを更新する前に、それを切断する必要があります。disconnect-custom-key-storeコマンドを実行します。コマンドが完了したら、 AWS CloudHSM キーストアを再接続できます。connect-custom-key-storeコマンドを実行します。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --key-store-password ExamplePassword

このコマンドは出力を返しません。変更が有効であることを確認するには、 describe-custom-key-stores コマンドを使用します。

AWS CloudHSM キーストアの更新の詳細については、AWS 「 Key Management Service デベロッパーガイド」のAWS 「CloudHSM キーストア設定の編集」を参照してください。

例 3: AWS CloudHSM キーストアの AWS CloudHSM クラスターを編集するには

次の例では、 AWS CloudHSM キーストアに関連付けられている AWS CloudHSM クラスターを、同じクラスターの別のバックアップなど、関連するクラスターに変更します。

NOTE: AWS CloudHSM キーストアを更新する前に、切断する必要があります。disconnect-custom-key-storeコマンドを実行します。コマンドが完了したら、 AWS CloudHSM キーストアを再接続できます。connect-custom-key-storeコマンドを実行します。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --cloud-hsm-cluster-id cluster-1a23b4cdefg

このコマンドは出力を返しません。変更が有効であることを確認するには、 describe-custom-key-stores コマンドを使用します。

AWS CloudHSM キーストアの更新の詳細については、AWS 「 Key Management Service デベロッパーガイド」のAWS 「CloudHSM キーストア設定の編集」を参照してください。

例 4: 外部キーストアのプロキシ認証情報を編集するには

次の例では、外部キーストアのプロキシ認証情報を更新します。値のいずれかのみを変更する場合でもaccess-key-idraw-secret-access-keyと の両方を指定する必要があります。この機能を使用して、無効な認証情報を修正したり、外部キーストアプロキシが認証情報をローテーションしたときに認証情報を変更したりできます。

外部キーストアで の AWS KMSプロキシ認証情報を確立します。次に、このコマンドを使用して 認証情報を に提供します AWS KMS。 AWS KMS は、この認証情報を使用して、外部キーストアプロキシへのリクエストに署名します。

外部キーストアの接続または切断中にプロキシ認証情報を更新できます。カスタムキーストアの接続状態を確認するには、 describe-custom-key-store コマンドを使用します。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="

このコマンドは出力を返しません。変更が有効であることを確認するには、 describe-custom-key-stores コマンドを使用します。

外部キーストアの更新の詳細については、AWS 「 Key Management Service デベロッパーガイド」の「外部キーストアプロパティの編集」を参照してください。

例 5: 外部キーストアのプロキシ接続を編集するには

次の例では、外部キーストアプロキシ接続オプションをパブリックエンドポイント接続からVPCエンドポイントサービス接続に変更します。xks-proxy-connectivity 値を変更するだけでなく、VPCエンドポイントサービスに関連付けられたプライベートDNS名を反映するようにxks-proxy-uri-endpoint値を変更する必要があります。また、xks-proxy-vpc-endpoint-service-name値を追加する必要があります。

NOTE: 外部ストアのプロキシ接続を更新する前に、接続を切断する必要があります。disconnect-custom-key-storeコマンドを実行します。コマンドが完了したら、 connect-custom-key-store コマンドを使用して外部キーストアを再接続できます。

aws kms update-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0 \ --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \ --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \ --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example"

このコマンドは出力を返しません。変更が有効であることを確認するには、 describe-custom-key-stores コマンドを使用します。

外部キーストアの更新の詳細については、AWS 「 Key Management Service デベロッパーガイド」の「外部キーストアプロパティの編集」を参照してください。

  • API 詳細については、AWS CLI 「 コマンドリファレンスUpdateCustomKeyStore」の「」を参照してください。

次の例は、update-key-description を使用する方法を説明しています。

AWS CLI

例 1: カスタマーマネージドKMSキーに説明を追加または変更するには

次のupdate-key-description例では、カスタマーマネージドKMSキーに説明を追加します。同じコマンドを使用して、既存の説明を変更できます。

--key-id パラメータは、 コマンド内のKMSキーを識別します。この例ではキーARN値を使用しますが、キー ID またはキーARNのKMSキーを使用できます。 --descriptionパラメータは新しい説明を指定します。このパラメータの値は、KMSキーの現在の説明がある場合は置き換えられます。

aws kms update-key-description \ --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --description "IT Department test key"

このコマンドでは何も出力されません。KMS キーの説明を表示するには、 describe-key コマンドを使用します。

詳細については、「 キー管理サービスリファレンスUpdateKeyDescription」の「」を参照してください。 AWS API

例 2: カスタマーマネージドKMSキーの説明を削除するには

次のupdate-key-description例では、カスタマーマネージドKMSキーの説明を削除します。

--key-id パラメータは、 コマンド内のKMSキーを識別します。この例ではキー ID 値を使用しますが、キー ID またはKMSキーARNのキーを使用できます。空の文字列値 ('') を持つ--descriptionパラメータは、既存の説明を削除します。

aws kms update-key-description \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --description ''

このコマンドでは何も出力されません。KMS キーの説明を表示するには、describe-key コマンドを使用します。

詳細については、「 キー管理サービスリファレンスUpdateKeyDescription」の「」を参照してください。 AWS API

  • API 詳細については、AWS CLI 「 コマンドリファレンスUpdateKeyDescription」の「」を参照してください。

次のコード例は、verify を使用する方法を示しています。

AWS CLI

デジタル署名を検証するには

次のverify例では、Base64-encodedされた短いメッセージの暗号化署名を検証します。キー ID、メッセージ、メッセージタイプ、署名アルゴリズムは、メッセージの署名に使用されたものと同じである必要があります。指定する署名は base64 でエンコードすることはできません。sign コマンドが返す署名のデコードについては、 sign コマンドの例を参照してください。

コマンドの出力には、署名が検証されたことを示すブール値SignatureValidフィールドが含まれます。署名の検証が失敗した場合、 verify コマンドも失敗します。

このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。

aws kms verify \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ --signature fileb://ExampleSignature

出力:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "SignatureValid": true, "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }

で非対称KMSキーを使用する方法の詳細については AWS KMS、AWS 「 キー管理サービスデベロッパーガイド」の「非対称キーの使用」を参照してください。

  • API 詳細については、「 コマンドリファレンス」の「検証」を参照してください。 AWS CLI