ローカルでデータを暗号化するために使用されるランダムなデータキーを生成します。
この操作では、ランダムなデータキーが作成され、指定された顧客マスターキー (CMK) を使用してデータキーが暗号化され、データキーの平文と暗号文が返されます。 データキーの平文を使用して、KMSを使用せずにデータをローカルで暗号化し、暗号化されたデータをデータキーの暗号文と一緒に保存できます。 応答のplaintextパラメーターからデータキーの平文を取得し、応答のCiphertextBlobパラメーターからデータキーの暗号文を取得できます。
この操作の要求で指定したCMKは、データキーの暗号化にのみ使用され、データキーの生成には関与しません。 KMSは、生成されたデータキーを記録または保存しません。 したがって、データキーの暗号文を永続ストレージに保存する必要があります。
次の手順を実行して、データをローカルで暗号化することを推奨します。
1。 GenerateDataKey操作を呼び出します。
2. 取得したデータキーのプレーンテキストを使用して、KMSを使用せずにデータをローカルで暗号化します。 次に、データキーの平文をメモリから削除します。
3. 暗号化されたデータを、取得したデータキーの暗号文と一緒に保存します。
次の手順を実行して、データをローカルで復号することを推奨します。
- Decrypt操作を呼び出して、ローカルに保存されているデータキーの暗号文を復号します。 データキーの平文が返されます。
- データキーの平文を使用してデータをローカルで復号し、データキーの平文をメモリから削除します。
この例では、IDが7906979c-8e06-46a2-be2d-68e3ccbc ****
のCMKに対してランダムなデータキーが生成されます。
デバッグ
リクエストパラメーター
パラメーター | データ型 | 必須/任意 | 例 | 説明 |
---|---|---|---|---|
操作 | String | 必須 | GenerateDataKey |
実行する操作です。 値をGenerateDataKeyに設定します。 |
KeyId | String | 必須 | 7906979c-8e06-46a2-be2d-68e3ccbc **** |
CMKのID。 IDはグローバルに一意である必要があります。 You can also set this parameter to an alias that is bound to the CMK. 詳細については、「エイリアスの概要」をご参照ください。 |
KeySpec | String | 任意 | AES_256 |
生成するデータキーのタイプ。 設定可能な値は以下のとおりです。
注 KeySpecまたはNumberOfBytesパラメーターを使用して、データキーの長さを指定することを推奨します。 いずれのパラメーターも指定されていない場合、KMSは256ビットのデータキーを生成します。
両方のパラメーターが指定されている場合、KMSはKeySpecパラメーターを無視します。
|
NumberOfBytes | Integer | 任意 | 256 |
生成するデータキーの長さ。 単位:バイト 有効な値: 1 ~ 1024 デフォルト値:
|
EncryptionContext | Map | 任意 | {"例":"例"} |
キーと値のペアで構成されるJSON文字列。 このパラメーターを指定すると、Decrypt操作を呼び出すときに同等の値が必要になります。 詳細については、「EncryptionContext」をご参照ください。 |
共通リクエストパラメーターの詳細については、「共通パラメーター」をご参照ください。
レスポンスパラメーター
パラメーター | データ型 | 例 | 説明 |
---|---|---|---|
KeyVersionId | String | 2ab1a983-7072-4bbc-a582-584b5bd8 **** |
CMKバージョンのID。 IDはグローバルに一意である必要があります。 |
KeyId | String | 7906979c-8e06-46a2-be2d-68e3ccbc **** |
CMKのID。 IDはグローバルに一意である必要があります。 注 リクエストのKeyIdパラメーターをCMKのエイリアスに設定すると、エイリアスがバインドされているCMKのIDが返されます。
|
CiphertextBlob | String | ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b + i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS **** |
指定されたCMKのプライマリバージョンを使用して暗号化されるデータキーの暗号文。 |
RequestId | String | 7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
リクエストのID。問題の特定とトラブルシューティングに使用されます。 |
Plaintext | String | QmFzZTY0IGVuY29kZWQgcGxhaW50 **** |
データキーのBase64エンコードされた平文。 |
例
リクエストの例
http(s)://[Endpoint]/?Action=GenerateDataKey
&KeyId=7906979c-8e06-46a2-be2d-68e3ccbc ****
&KeySpec=AES_256
&NumberOfBytes=256
&共通リクエストパラメータ
正常に処理された場合のレスポンス例
XML
形式
HTTP/1.1 200 OK
Content-Type:application/xml
<GenerateDataKeyResponse>
<KeyVersionId>2ab1a983-7072-4bbc-a582-584b5bd8****</KeyVersionId>
<KeyId>7906979c-8e06-46a2-be2d-68e3ccbc ****</KeyId>
<CiphertextBlob>ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b + i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS ****</CiphertextBlob>
<RequestId>7021b6ec-4be7-4d3c-8a68-1e85d4d515a0</RequestId>
<プレーンテキスト> QmFzZTY0IGVuY29kZWQgcGxhaW50 ****</プレーンテキスト>
</GenerateDataKeyResponse>
JSON
形式
HTTP/1.1 200 OK
Content-Type:application/json
{
"KeyVersionId" : "2ab1a983-7072-4bbc-a582-584b5bd8 ****" 、
"KeyId" : "7906979c-8e06-46a2-be2d-68e3ccbc ****" 、
"CiphertextBlob" : "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b + i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS ****" 、
"RequestId" : "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0" 、
「プレーンテキスト」: 「QmFzZTY0IGVuY29kZWQgcGxhaW50 **** 」
}
エラーコード
エラーコードリストについては、「API エラーセンター」をご参照ください。