GenerateDataKey で を使用する AWS SDK または CLI - AWS Key Management Service

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

GenerateDataKey で を使用する AWS SDK または CLI

以下のコード例は、GenerateDataKey の使用方法を示しています。

アクション例は、より大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。次のコード例で、このアクションのコンテキストを確認できます。

CLI
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 でエンコードされた形式で返されます。

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

例 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 でエンコードされた形式で返されます。

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

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

Python
SDK for Python (Boto3)
注記

については、「」を参照してください GitHub。完全な例を検索し、 でセットアップして実行する方法を学びます。 AWS コード例リポジトリ

class KeyManager: def __init__(self, kms_client): self.kms_client = kms_client self.created_keys = [] def generate_data_key(self, key_id): """ Generates a symmetric data key that can be used for client-side encryption. """ answer = input( f"Do you want to generate a symmetric data key from key {key_id} (y/n)? " ) if answer.lower() == "y": try: data_key = self.kms_client.generate_data_key( KeyId=key_id, KeySpec="AES_256" ) except ClientError as err: logger.error( "Couldn't generate a data key for key %s. Here's why: %s", key_id, err.response["Error"]["Message"], ) else: pprint(data_key)
  • API 詳細については、GenerateDataKey「」の「」を参照してください 。AWS SDK for Python (Boto3) APIリファレンス

Rust
SDK Rust 用
注記

については、「」を参照してください GitHub。完全な例を検索し、 でセットアップして実行する方法について説明します。 AWS コード例リポジトリ

async fn make_key(client: &Client, key: &str) -> Result<(), Error> { let resp = client .generate_data_key() .key_id(key) .key_spec(DataKeySpec::Aes256) .send() .await?; // Did we get an encrypted blob? let blob = resp.ciphertext_blob.expect("Could not get encrypted text"); let bytes = blob.as_ref(); let s = base64::encode(bytes); println!(); println!("Data key:"); println!("{}", s); Ok(()) }
  • API 詳細については、GenerateDataKey「」の「」を参照してください 。AWS SDK Rust APIリファレンスの

の完全なリストについては、 AWS SDK デベロッパーガイドとコード例については、「」を参照してください使用 AWS KMS を使用した AWS SDK。このトピックには、開始方法に関する情報と以前のSDKバージョンの詳細も含まれています。