Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDK または CLI GenerateDataKey
で使用する
以下のコード例は、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_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
」を参照してください。
-
- Python
-
- Python 用 SDK (Boto3)
-
注記
GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリ
での設定と実行の方法を確認してください。 class KeyManager: def __init__(self, kms_client): self.kms_client = kms_client self.created_keys = [] @classmethod def from_client(cls) -> "KeyManager": """ Creates a KeyManager instance with a default KMS client. :return: An instance of KeyManager initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) 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 for AWS Python (Boto3) SDK APIリファレンス」を参照してください。
-
- Rust
-
- Rust のSDK
-
注記
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 for Rust API リファレンス」を参照してください。
-