Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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
コマンド を使用します。詳細については、AWS Key Management Service デベロッパーガイドの「キーの削除のスケジュールとキャンセル」を参照してください。
-
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 キーストアの接続については、AWS Key Management Service デベロッパーガイドのAWS 「CloudHSM キーストアの接続と切断」を参照してください。
外部キーストアの接続については、AWS Key Management Service デベロッパーガイドの「外部キーストアの接続と切断」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のConnectCustomKeyStore
」を参照してください。
-
次の例は、create-alias
を使用する方法を説明しています。
- AWS CLI
-
KMS キーのエイリアスを作成するには
次の
create-alias
コマンドは、キー ID で識別される KMS キーexample-alias
に という名前のエイリアスを作成します1234abcd-12ab-34cd-56ef-1234567890ab
。エイリアス名は
alias/
で始める必要があります。で始まるエイリアス名は使用しないでくださいalias/aws
。これらは での使用のために予約されています AWS。aws kms create-alias \ --alias-name
alias/example-alias
\ --target-key-id1234abcd-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
。AWS CLI で
trust-anchor-certificate
コマンドのファイル入力を指定するには、file://
プレフィックスが必要です。aws kms create-custom-key-store \ --custom-key-store-name
ExampleCloudHSMKeyStore
\ --cloud-hsm-cluster-idcluster-1a23b4cdefg
\ --key-store-passwordkmsPswd
\ --trust-anchor-certificatefile://customerCA.crt
出力:
{ "CustomKeyStoreId": cks-1234567890abcdef0 }
詳細については、Key AWS Management Service デベロッパーガイドのAWS 「CloudHSM キーストアの作成」を参照してください。
例 2: パブリックエンドポイント接続を使用して外部キーストアを作成するには
次の
create-custom-key-store
例では、インターネット経由で XKS と通信する外部キーストア ( AWS KMS) を作成します。この例では、 はオプションのプレフィックス
XksProxyUriPath
を使用しますexample-prefix
。NOTE: AWS CLI バージョン 1.0 を使用する場合は、Word パラメータなどの 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-typeEXTERNAL_KEY_STORE
\ --xks-proxy-connectivityPUBLIC_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: AWS CLI バージョン 1.0 を使用する場合は、Word パラメータなどの 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-typeEXTERNAL_KEY_STORE
\ --xks-proxy-connectivityVPC_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 }
詳細については、AWS Key Management Service デベロッパーガイドの「外部キーストアの作成」を参照してください。
-
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-principalarn:aws:iam::123456789012:user/exampleUser
\ --operationsDecrypt
\ --constraintsEncryptionContextSubset={Department=IT}
\ --retiring-principalarn:aws:iam::123456789012:role/adminRole
出力:
{ "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "GrantToken": "<grant token here>" }
権限に関する詳細情報を表示するには、
list-grants
コマンドを使用します。詳細については、AWS Key Management Service デベロッパーガイドの「Grants in 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
コマンドは、新しい ARN キーのキー ID と KMS を含むキーメタデータを返します。これらの値を使用して、他の KMS オペレーションで AWS 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: 暗号化と復号用の非対称KMSRSAキーを作成するには
次の
create-key
例では、暗号化と復号用の非対称 KMS キーペアを含む RSA キーを作成します。aws kms create-key \ --key-spec
RSA_4096
\ --key-usageENCRYPT_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 AWS Management Service デベロッパーガイドのAWS KMS の非対称キー」を参照してください。
例 3: 署名と検証用の非対称楕円曲線 KMS キーを作成するには
署名と検証用の非対称楕円曲線 (KMS) キーペアを含む非対称 ECC キーを作成するには。KMS ECC キーの唯一の有効な値ですが
SIGN_VERIFY
、--key-usage
パラメータは必須です。aws kms create-key \ --key-spec
ECC_NIST_P521
\ --key-usageSIGN_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: HMAC KMSキーを作成するには
次の
create-key
例では、384 ビット HMAC KMSキーを作成します。--key-usage
パラメータGENERATE_VERIFY_MAC
の値は、HMAC KMS キーの唯一の有効な値であっても必要です。aws kms create-key \ --key-spec
HMAC_384
\ --key-usageGENERATE_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" } }
詳細については、Key Management Service デベロッパーガイドのHMAC「Word の AWS KMS キー」を参照してください。 AWS
例 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 AWS Management Service デベロッパーガイドのAWS KMS の非対称キー」を参照してください。
例 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 AWS Management Service デベロッパーガイドのAWS KMS キーでのキーマテリアルのインポート」を参照してください。
例 6: AWS CloudKMS キーストアで HSM キーを作成するには
次の
create-key
例では、指定された AWS CloudHSM KMSキーストアに Word キーを作成します。オペレーションは KMS キーとそのメタデータを in AWS KMS に作成し、カスタムキーストアに関連付けられた AWS CloudHSM クラスターにキーマテリアルを作成します。--custom-key-store-id
および--origin
パラメータが必要です。aws kms create-key \ --origin
AWS_CLOUDHSM
\ --custom-key-store-idcks-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 AWS Management Service デベロッパーガイドのAWS 「CloudHSM キーストア」を参照してください。
例 7: 外部キーストアに KMS キーを作成するには
次の
create-key
例では、指定された外部キーストアに KMS キーを作成します。このコマンドでは、--custom-key-store-id
、--origin
、および--xks-key-id
パラメータが必須です。--xks-key-id
パラメータは、外部キーマネージャーにある既存の対称暗号化キーの ID を指定します。このキーは、KMS キーの外部キーマテリアルとして機能します。--origin
パラメータの値は である必要がありますEXTERNAL_KEY_STORE
。custom-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 「 コマンドラインインターフェイスユーザーガイド」のlatest/userguide/clihttps://docs.aws.amazon.com/cli/-usage-parameters-file.html」ファイルからの Loading AWS CLI パラメータと、「ローカルファイルパラメータのベストプラクティス」のhttps://aws.amazon.com/blogs/ developer/best-practices-for-local-file-parameters/>」を参照してくださいAWS 。暗号文を復号する KMS キーを指定します。対称 KMS キーで復号する場合、--key-id
パラメータは必要ありません。 AWS KMS は、暗号文のメタデータからデータを暗号化するために使用された KMS キーのキーのキー ID を取得できます。ただし、使用している KMS キーを指定するのは常にベストプラクティスです。この練習では、意図した KMS キーを使用し、信頼KMSできない Word キーを使用して誤って暗号文を復号しないようにします。プレーンテキスト出力をテキスト値としてリクエストします。--query
パラメータは、出力からPlaintext
フィールドの値のみを取得するように CLI に指示します。--output
パラメータは出力を text.Base64 でデコードしたプレーンテキストとして返し、ファイルに保存します。次の例では、Plaintext
パラメータの値を Base64 ユーティリティにパイプ (|) して、Base64 ユーティリティでデコードします。次に、デコードされた出力をExamplePlaintext
ファイルにリダイレクト (>) します。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。
aws kms decrypt \ --ciphertext-blob
fileb://ExampleEncryptedFile
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
\ --queryPlaintext
|
base64
\ --decode>
ExamplePlaintextFile
このコマンドでは何も出力されません。
decrypt
コマンドからの出力は base64 でデコードされ、ファイルに保存されます。詳細については、AWS 「キー管理サービスAPIリファレンス」の「復号化」を参照してください。
例 2: 対称 KMS キーを使用して暗号化されたメッセージを復号するには (Windows コマンドプロンプト)
次の例は、
certutil
ユーティリティを使用してプレーンテキストデータを Base64 でデコードする点を除いて、前の例と同じです。この手順には、次の例に示すように 2 つのコマンドが必要です。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。
aws kms decrypt
^
--ciphertext-blobfileb://ExampleEncryptedFile
^
--key-id1234abcd-12ab-34cd-56ef-1234567890ab
^
--outputtext
^
--queryPlaintext
>
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-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --encryption-algorithmRSAES_OAEP_SHA_256
\ --outputtext
\ --queryPlaintext
|
base64
\ --decode>
ExamplePlaintextFile
このコマンドでは何も出力されません。
decrypt
コマンドからの出力は base64 でデコードされ、ファイルに保存されます。詳細については、Key AWS Management Service デベロッパーガイドのAWS KMS の非対称キー」を参照してください。
-
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 「CloudHSM キーストア (API) の削除」を参照してください。
delete-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 「 コマンドリファレンス」の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 デベロッパーガイドの「インポートされたキーマテリアルの削除」<latest/developerguide/importinghttps://docs.aws.amazon.com/kms/-keys-delete-key-material.html>を参照してください。
-
API の詳細については、 AWS CLI コマンドリファレンスのDeleteImportedKeyMaterial
」を参照してください。
-
次のコード例は、derive-shared-secret
を使用する方法を示しています。
- AWS CLI
-
共有シークレットを取得するには
次の
derive-shared-secret
例では、キー契約アルゴリズムを使用して共有シークレットを導出します。非対称の NIST 推奨楕円曲線 (ECC) または SM2 (中国リージョンのみ) KMS キーペアを使用し、
KeyUsage
を call DeriveSharedSecretKEY_AGREEMENT
にする必要があります。aws kms derive-shared-secret \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --key-agreement-algorithmECDH
\ --public-key"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag"
出力:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", "KeyAgreementAlgorithm": "ECDH", "KeyOrigin": "AWS_KMS" }
詳細については、「 Key Management Service DeriveSharedSecret Reference」の「Word」を参照してください。 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>" } ] }
詳細については、Key AWS Management Service デベロッパーガイドのAWS 「CloudHSM キーストアの表示」を参照してください。
例 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 Management Service デベロッパーガイド」の「外部キーストアの表示」を参照してください。 AWS
例 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
パラメータを使用します。この例ではエイリアス名の値を使用しますが、このコマンドではキー ID、キー ARN、エイリアス名、またはエイリアス 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: HMAC KMSの詳細を取得するには
次の
describe-key
例では、HMAC KMSに関する詳細情報を取得します。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 CloudHSM キーストアや外部キーストアを含むすべてのカスタムキーストアで同じです。
このコマンドを実行する前に、例のカスタムキーストア 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 または ARN キーの KMS を使用できます。--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-days180
このコマンドでは何も出力されません。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
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
|
base64
\ --decode>
ExampleEncryptedFile
このコマンドは、以下の操作を行います。
--plaintext
パラメータを使用して暗号化するデータを指定します。このパラメータ値は base64 でエンコードする必要があります。plaintext
パラメータの値は base64 でエンコードするか、fileb://
プレフィックスを使用する必要があります。プレフィックスは、ファイルからバイナリデータを読み取るように AWS CLI に指示します。ファイルが現在のディレクトリにない場合は、ファイルへのフルパスを入力します。例えば、fileb:///var/tmp/ExamplePlaintextFile
、fileb://C:\Temp\ExamplePlaintextFile
などです。ファイルから AWS CLI パラメータ値を読み取る方法の詳細については、 コマンドラインインターフェイスユーザーガイドの「 ファイルからのパラメータのロード」と、コマンドラインツールブログのローカルファイルパラメータのベストプラクティス「」を参照してください。 --output
および AWS--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
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
>
C:\Temp\ExampleEncryptedFile.base64certutil
-decode
C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFile例 3: 非対称 KMS キーによる暗号化
次の
encrypt
コマンドは、非対称 KMS キーを使用してプレーンテキストを暗号化する方法を示しています。--encryption-algorithm
パラメータは必須です。すべてのencrypt
CLI コマンドと同様に、plaintext
パラメータは base64 でエンコードされているか、fileb://
プレフィックスを使用する必要があります。プレフィックスは、ファイルからバイナリデータを読み取るように AWS CLI に指示します。aws kms encrypt \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --encryption-algorithmRSAES_OAEP_SHA_256
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
|
base64
\ --decode>
ExampleEncryptedFile
このコマンドでは何も出力されません。
-
API の詳細については、 AWS CLI コマンドリファレンスの「暗号化
」を参照してください。
-
次の例は、generate-data-key-pair-without-plaintext
を使用する方法を説明しています。
- AWS CLI
-
ECC NIST P384 非対称データキーペアを生成するには
次の
generate-data-key-pair-without-plaintext
例では、ECC NIST P384 キーペアを の外部で使用することをリクエストしています 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-specECC_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" }
PublicKey
とPrivateKeyCiphertextBlob
は base64 でエンコードされた形式で返されます。詳細については、AWS Key Management Service デベロッパーガイドの「データキーペア」を参照してください。
-
API の詳細については、 AWS CLI コマンドリファレンスの GenerateDataKeyPairWithoutPlaintext
を参照してください。
-
次の例は、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-specRSA_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" }
PublicKey
、PrivateKeyPlaintext
、PrivateKeyCiphertextBlob
は base64 でエンコードされた形式で返されます。詳細については、AWS Key Management Service デベロッパーガイドの「データキーペア」を参照してください。
-
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_DEFAULT の SYMMETRIC キーである必要があります。
aws kms generate-data-key-without-plaintext \ --key-id
"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
\ --key-specAES_256
出力:
{ "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
CiphertextBlob
(暗号化されたデータキー) は base64 でエンコードされた形式で返されます。詳細については、「AWS Key Management Service デベロッパーガイド」の「データキー」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のGenerateDataKeyWithoutPlaintext
」を参照してください。
-
次のコード例は、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_DEFAULT の SYMMETRIC キーである必要があります。
aws kms generate-data-key \ --key-id
alias/ExampleAlias
\ --key-specAES_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 デベロッパーガイド」のデータキー <latest/developerguide/conceptshttps://docs.aws.amazon.com/kms/.html#data-keys を参照してください。
例 2: 512 ビットの対称データキーを生成するには
次の
generate-data-key
の例は、暗号化と復号用の 512 ビットの対称データキーを要求します。コマンドは、すぐに使用および削除できるようにプレーンテキストデータキーと、指定された KMS キーで暗号化されたそのデータキーのコピーを返します。暗号化されたデータとともに、暗号化されたデータキーを安全に保存できます。128 ビットまたは 256 ビット以外のキー長をリクエストするには、
number-of-bytes
パラメーターを使用します。512 ビットのデータキーをリクエストするために、次の例では値が 64 (バイト) のnumber-of-bytes
パラメータを使用します。指定する KMS キーは、対称暗号化 KMS キー、つまりキー仕様値が KMS_DEFAULT の SYMMETRIC キーである必要があります。
NOTE: この例の出力の値は、表示のために切り捨てられます。
aws kms generate-data-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --number-of-bytes64
出力:
{ "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 デベロッパーガイドの「データキーlatest/developerguide/conceptshttps://docs.aws.amazon.com/kms/.html#data-keys」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のGenerateDataKey
」を参照してください。
-
次の例は、generate-random
を使用する方法を説明しています。
- AWS CLI
-
例 1: 256 ビットのランダムバイト文字列を生成するには (Linux または macOs)
次の
generate-random
の例は、256 ビット (32 バイト) の base64 でエンコードされたランダムバイト文字列を生成します。この例は、バイト文字列をデコードしてランダムファイルに保存します。このコマンドを実行する際は、
number-of-bytes
パラメーターを使用してランダム値の長さをバイト単位で指定する必要があります。このコマンドを実行するときに KMS キーを指定しません。ランダムバイト文字列は、Word KMSキーとは無関係です。
デフォルトでは、 AWS KMS は乱数を生成します。ただし、カスタムキーストア<latest/developerguide/customhttps://docs.aws.amazon.com/kms/-key-store-overview.html>を指定すると、ランダムバイト文字列はカスタムキーストアに関連付けられた AWS CloudHSM クラスターで生成されます。
この例は以下のパラメータと値を使用します。
値 の必須
--number-of-bytes
パラメータを使用して 32 バイト (256 ビット)32
をリクエストします。string.It は の値 の--output
パラメータを使用して、 AWS CLItext
に出力をテキストとして返すように指示します。 JSON の代わりに、 を使用して、response.It パイプ ( | ) からPlaintext
ユーティリティへのコマンドの出力base64
からプロパティの値を--query parameter
抽出します。 は、抽出された output.It をデコードし、リダイレクト演算子 ( > ) を使用してデコードされたバイト文字列をExampleRandom
file.It に保存し、リダイレクト演算子 ( > ) を使用してバイナリ暗号文をファイルに保存します。aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext | base64 --decode > ExampleRandom
このコマンドでは何も出力されません。
詳細については、「 Key Management Service GenerateRandom リファレンス」の「Word」を参照してください。 AWS API
例 2: 256 ビットの乱数を生成するには (Windows コマンドプロンプト)
次の例は、
generate-random
コマンドを使用して、base64 でエンコードされた 256 ビット (32 バイト)のランダムバイト文字列を生成します。この例は、バイト文字列をデコードしてランダムファイルに保存します。この例は前の例と同じですが、Windows のcertutil
のユーティリティを使用して、ランダムバイト文字列を base64 でデコードしてからファイルに保存する点が異なります。最初に base64 でエンコードされたランダムバイト文字列を生成し、テンポラリファイル (
ExampleRandom.base64
) に保存します。aws kms generate-random \ --number-of-bytes
32
\ --outputtext
\ --queryPlaintext
>
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.
詳細については、「 Key Management Service GenerateRandom リファレンス」の「Word」を参照してください。 AWS API
-
API の詳細については、 AWS CLI コマンドリファレンスの GenerateRandom
を参照してください。
-
次の例は、get-key-policy
を使用する方法を説明しています。
- AWS CLI
-
ある KMS キーから別の KMS キーにキーポリシーをコピーするには
次の
get-key-policy
例では、1 つの KMS キーからキーポリシーを取得し、テキストファイルに保存します。次に、テキストファイルをポリシー入力として使用して、別の KMS キーのポリシーを置き換えます。の
--policy
パラメータには文字列put-key-policy
が必要なため、--output text
オプションを使用して出力を JSON ではなくテキスト文字列として返す必要があります。aws kms get-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --queryPolicy
\ --outputtext
>
policy.txt
aws
kms
put-key-policy
\ --policy-namedefault
\ --key-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --policyfile://policy.txt
このコマンドでは何も出力されません。
詳細については、PutKeyPolicy AWS リファレンスの KMSAPI を参照してください。
-
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 を使用しますが、このコマンドではキー ID またはキーARNを使用できます。aws kms get-parameters-for-import \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --wrapping-algorithmRSAES_OAEP_SHA_256
\ --wrapping-key-specRSA_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 }
詳細については、AWS 「 Key Management Service デベロッパーガイド」の「パブリックキーをダウンロードしてトークンをインポートする」を参照してください。
-
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 ファイルに保存しています。AWS CLI で
get-public-key
コマンドを使用すると、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
\ --outputtext
\ --queryPublicKey
|
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 を AWS アカウントの有効なキー ID またはキー ARN に置き換えます。
aws kms import-key-material \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --encrypted-key-materialfileb://EncryptedKeyMaterial.bin
\ --import-tokenfileb://ImportToken.bin
\ --expiration-modelKEY_MATERIAL_EXPIRES
\ --valid-to2021-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 キーにのみ関連付けられますが、1 つの KMS キーには複数のエイリアスを含めることができます。このコマンドは、 AWS KMS コンソールが各 KMS キーに対して 1 つのエイリアスのみを一覧表示するため、非常に便利です。KMS キーのすべてのエイリアスを検索するには、
list-aliases
コマンドを使用する必要があります。この例では、
--key-id
パラメータに KMS キーのキー ID を使用しますが、このコマンドでキー ID、キー ARN、エイリアス名、またはエイリアス 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
-
an AWS KMS キーで許可を表示するには
次の
list-grants
例では、アカウント内の Amazon DynamoDB の指定された AWS マネージド KMS キーに対するすべての許可を表示します。この許可により、DynamoDB はユーザーに代わって KMS キーを使用して、ディスクに書き込む前に DynamoDB テーブルを暗号化できます。このようなコマンドを使用して、 AWS アカウントとリージョンの AWS マネージド KMS キーとカスタマーマネージド KMS キーの許可を表示できます。このコマンドは、キー ID を持つ
key-id
パラメータを使用して KMS キーを識別します。キー ID またはキーARNを使用して、KMS キーを識別できます。 AWS マネージド ARN キーのキー ID またはキー KMS を取得するには、list-keys
またはlist-aliases
コマンドを使用します。aws kms list-grants \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
出力は、付与が Amazon DynamoDB に暗号化オペレーションに KMS キーを使用するアクセス許可を付与し、KMS キー (
DescribeKey
) の詳細を表示し、付与 () を廃止するアクセス許可を付与することを示していますRetireGrant
。EncryptionContextSubset
の制約により、これらの権限は指定された暗号化コンテキストペアを含むリクエストに限定されます。そのため、この権限のアクセス許可は指定されたアカウントと 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 デベロッパーガイドの「Grants in AWS KMS」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のListGrants
」を参照してください。
-
次のコード例は、list-key-policies
を使用する方法を示しています。
- AWS CLI
-
KMS キーのキーポリシーの名前を取得するには
次の
list-key-policies
の例は、サンプルアカウントとリージョンのカスタマーマネージドキーのキーポリシーの名前を取得します。このコマンドを使用して、 AWS マネージドキーとカスタマーマネージドキーのキーポリシーの名前を検索できます。有効なキーポリシー名は
default
のみであるため、このコマンドは有用ではありません。KMS キーを指定するには、
key-id
パラメータを使用します。この例ではキー ID 値を使用しますが、このコマンドではキー ID またはキーARNを使用できます。aws kms list-key-policies \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
出力:
{ "PolicyNames": [ "default" ] }
AWS KMS キーポリシーの詳細については、Key AWS Management Service デベロッパーガイドのAWS KMS でのキーポリシーの使用」を参照してください。
-
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 値を使用しますが、このコマンドではキー ID またはキーARNを使用できます。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 デベロッパーガイドの「Grants in 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://
プレフィックスを使用します。このプレフィックスは、サポートされているすべてのオペレーティングシステムでファイルを識別するために必要です。最後に、コマンドは値がdefault
のpolicy-name
パラメーターを使用します。ポリシー名を指定しない場合、デフォルト値はdefault
となります。唯一の有効な値はdefault
です。aws kms put-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --policyfile://key_policy.json
このコマンドでは、出力が生成されません。コマンドが有効であることを確認するには、
get-key-policy
コマンドを使用します。次のコマンド例では、同じ KMS キーのキーポリシーを取得します。値がtext
のoutput
パラメータは、読みやすいテキスト形式を返します。aws kms get-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
出力:
{ "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 「コマンドラインインターフェイスユーザーガイド」のlatest/userguide/clihttps://docs.aws.amazon.com/cli/-usage-parameters-file.html」ファイルからの Loading AWS CLI パラメータと「ローカルファイルパラメータのベストプラクティスbest-practices-for-local」を参照してくださいAWS 。暗号文を復号するソース https://aws.amazon.com/blogs/ キーを指定します。対称暗号化 KMS キーで復号する場合、--source-key-id
パラメータは必要ありません。 AWS KMSは、暗号文ブロックのメタデータからデータを暗号化するために使用された KMSKMS キーを取得できます。ただし、使用している KMS キーを指定するのは常にベストプラクティスです。この練習では、意図した KMS キーを使用し、信頼KMSできない Word キーを使用して誤って暗号文を復号しないようにします。データを再暗号化する送信先 KMS キーを指定します。--destination-key-id
パラメータは常に必要です。この例ではキーARNを使用しますが、有効なキー識別子を使用できます。プレーンテキスト出力をテキスト値としてリクエストします。--query
パラメータは、出力からPlaintext
フィールドの値のみを取得するように CLI に指示します。--output
パラメータは出力を text.Base64 でデコードしたプレーンテキストとして返し、ファイルに保存します。次の例では、Plaintext
パラメータの値を Base64 ユーティリティにパイプ (|) して、Base64 ユーティリティでデコードします。次に、デコードされた出力をExamplePlaintext
ファイルにリダイレクト (>) します。このコマンドを実行する前に、サンプルキー IDs を AWS アカウントの有効なキー識別子に置き換えます。
aws kms re-encrypt \ --ciphertext-blob
fileb://ExampleEncryptedFile
\ --source-key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --destination-key-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --queryCiphertextBlob
\ --outputtext
|
base64
--decode>
ExampleReEncryptedFile
このコマンドでは何も出力されません。
re-encrypt
コマンドからの出力は base64 でデコードされ、ファイルに保存されます。詳細については、AWS Key Management Service Word APIリファレンスの ReEncrypt <latest/APIReference/APIhttps://docs.aws.amazon.com/kms/_ReEncrypt.html」を参照してください。
例 2: 暗号化されたメッセージを別の対称 KMS キーで再暗号化するには (Windows コマンドプロンプト)。
次の
re-encrypt
の例は、certutil
ユーティリティを使用してプレーンテキストデータを Base64 でデコードする点を除いて、前の例と同じです。この手順には、次の例に示すように 2 つのコマンドが必要です。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。
aws kms re-encrypt
^
--ciphertext-blobfileb://ExampleEncryptedFile
^
--source-key-id1234abcd-12ab-34cd-56ef-1234567890ab
^
--destination-key-id0987dcba-09fe-87dc-65ba-ab0987654321
^
--queryCiphertextBlob
^
--outputtext
>
ExampleReEncryptedFile.base64
その後、
certutil
ユーティリティーを使用します。certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
出力:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.
詳細については、AWS Key Management Service Word APIリファレンスの ReEncrypt <latest/APIReference/APIhttps://docs.aws.amazon.com/kms/_ReEncrypt.html」を参照してください。
-
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-idarn: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-id1234abcd-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" }
詳細については、AWS Key Management Service デベロッパーガイドの「オンデマンドキーローテーションの実行方法」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のRotateKeyOnDemand
」を参照してください。
-
次のコード例は、schedule-key-deletion
を使用する方法を示しています。
- AWS CLI
-
カスタマーマネージド KMS キーの削除をスケジュールするには。
次の
schedule-key-deletion
例では、指定されたカスタマーマネージド KMS キーを 15 日後に削除するようにスケジュールします。--key-id
パラメータは KMS キーを識別します。この例では、キーARN値を使用しますが、キー ID または ARN キーの KMS を使用できます。--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 コンソールを使用します。PendingDeletion
キー状態のKMSキーは、暗号化オペレーションでは使用できません。{ "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
コマンドを使用して検証できる、Base64 エンコードされたSignature
フィールドが含まれています。署名するメッセージと、非対称 KMS キーがサポートする署名アルゴリズムを指定する必要があります。KMS キーの署名アルゴリズムを取得するには、
describe-key
コマンドを使用します。In AWS CLI 2.0 では、
message
パラメータの値は Base64-encodedされている必要があります。または、メッセージをファイルに保存してfileb://
プレフィックスを使用できます。プレフィックスは、 AWS CLI にファイルからバイナリデータを読み取るように指示します。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、WordSIGN_KMS のキー使用量を持つ非対称 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" }
AWS KMS で非対称KMSキーを使用する方法の詳細については、AWS Key Management Service デベロッパーガイドのAWS KMS の非対称キー」を参照してください。
例 2: デジタル署名をファイルに保存するには (Linux と macOs)
次の
sign
例では、ローカルファイルに保存されている短いメッセージ向けの暗号化署名を生成します。コマンドはレスポンスからSignature
プロパティも取得し、Base64-decodesして ExampleSignature ファイル内に保存します。この署名ファイルを、署名検証用のverify
コマンドで使用できます。sign
コマンドには、Base64-encodedされたメッセージと、非対称 KMS キーがサポートする署名アルゴリズムが必要です。KMS キーがサポートする署名アルゴリズムを取得するには、describe-key
コマンドを使用します。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、WordSIGN_KMS のキー使用量を持つ非対称 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 値を使用しますが、このコマンドではキー ID またはキーARNを使用できます。aws kms tag-resource \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --tags TagKey='Purpose',TagValue='Test' TagKey='Dept',TagValue='IT'このコマンドでは何も出力されません。 AWS KMS KMS キーのタグを表示するには、
list-resource-tags
コマンドを使用します。AWS KMS でのタグの使用の詳細については、AWS 「Key Management Service デベロッパーガイド」の「キーのタグ付け」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のTagResource
」を参照してください。
-
次のコード例は、untag-resource
を使用する方法を示しています。
- AWS CLI
-
KMS キーからタグを削除するには
次の
untag-resource
例では、カスタマーマネージド KMS"Purpose"
キーから キーを持つ タグを削除します。KMS キーを指定するには、
key-id
パラメータを使用します。この例ではキー ID 値を使用しますが、このコマンドではキー ID またはキーARNを使用できます。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。aws kms untag-resource \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --tag-key 'Purpose
'このコマンドでは何も出力されません。 AWS KMS 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-nameExampleKeyStore
このコマンドはデータを返しません。コマンドが機能したことを確認するには、
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 に伝えるだけです。KMS に現在のkmsuser
パスワードがない場合は、 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-passwordExamplePassword
このコマンドは出力を返しません。変更が有効であることを確認するには、
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-idcluster-1a23b4cdefg
このコマンドは出力を返しません。変更が有効であることを確認するには、
describe-custom-key-stores
コマンドを使用します。AWS CloudHSM キーストアの更新の詳細については、AWS Key Management Service デベロッパーガイドのAWS 「CloudHSM キーストア設定の編集」を参照してください。
例 4: 外部キーストアのプロキシ認証情報を編集するには
次の例では、外部キーストアのプロキシ認証情報を更新します。値のいずれかのみを変更する場合でも
access-key-id
、raw-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-connectivityVPC_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 または KMS キーのキーARNを使用できます。--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
コマンドを使用します。詳細については、「 Key Management Service UpdateKeyDescription リファレンス」の「Word」を参照してください。 AWS API
例 2: カスタマーマネージド型 KMS キーの説明を削除するには
次の
update-key-description
例では、カスタマーマネージド KMS キーの説明を削除します。--key-id
パラメータは、 コマンドの KMS キーを識別します。この例ではキー ID 値を使用しますが、KMS キーのキー ID またはキーARNを使用できます。空の文字列値 ('') を持つ--description
パラメータは、既存の説明を削除します。aws kms update-key-description \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --description ''
このコマンドでは何も出力されません。KMS キーの説明を表示するには、describe-key コマンドを使用します。
詳細については、「Key Management Service UpdateKeyDescription Reference」の「Word」を参照してください。 AWS API
-
API の詳細については、AWS CLI 「 コマンドリファレンス」のUpdateKeyDescription
」を参照してください。
-
次のコード例は、verify
を使用する方法を示しています。
- AWS CLI
-
デジタル署名を検証するには
次の
verify
例では、Base64 エンコードされた短いメッセージの暗号化署名を検証します。キー ID、メッセージ、メッセージタイプ、署名アルゴリズムは、メッセージの署名に使用されたものと同じである必要があります。指定する署名は Base64 エンコードされているものであってはなりません。sign
コマンドが返す署名のデコードについては、sign
コマンドの例を参照してください。コマンドの出力には、署名が検証済みであることを示すブール値
SignatureValid
フィールドが含まれます。署名の検証が失敗した場合、verify
コマンドの実行結果も失敗となります。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。
aws kms verify \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --messagefileb://EncodedMessage
\ --message-typeRAW
\ --signing-algorithmRSASSA_PKCS1_V1_5_SHA_256
\ --signaturefileb://ExampleSignature
出力:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "SignatureValid": true, "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }
AWS KMS で非対称KMSキーを使用する方法の詳細については、AWS 「 キー管理サービスデベロッパーガイド」の「非対称キーの使用」を参照してください。
-
API の詳細については、AWS CLI 「 コマンドリファレンス」の「Verify
」を参照してください。
-