データキーをランダムに生成し、CMKと公開キーを使用してデータキーを暗号化します。 この操作は、CMKを使用して暗号化されたデータキーの暗号文と、公開キーを使用して暗号化されたデータキーの暗号文の両方を返します。
データキーを暗号化モジュールにインポートするには、次の手順を実行することを推奨します。
- GenerateAndExportDataKey操作を呼び出してデータキーを生成し、CMKを使用して暗号化されたデータキーと公開キーを使用して暗号化されたデータキーの両方の暗号文を取得します。
- CMKを使用して暗号化されたデータキーの暗号文をKMS Secrets ManagerまたはApsaraDBなどのストレージサービスに保存します。 この暗号文は、バックアップと復元に使用されます。
- 公開鍵を使用して暗号化されたデータ鍵の暗号文を、秘密鍵が格納されている暗号モジュールにインポートします。 次に、データキーを使用してデータを暗号化または復号化できます。
デバッグ
リクエストパラメーター
パラメーター | データ型 | 必須/任意 | 例 | 説明 |
---|---|---|---|---|
アクション | String | 必須 | GenerateAndExportDataKey |
実行する操作です。 値をGenerateAndExportDataKeyに設定します。 |
KeyId | String | 必須 | 1234abcd-12ab-34cd-56ef-12345678 **** |
CMKのグローバル一意ID。 このパラメーターをCMKにバインドされているエイリアスに設定することもできます。 詳細については、「エイリアスの使用」をご参照ください。 |
PublicKeyBlob | String | 必須 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndKfC2ReLL2 + y8a0 + ZBBeAft/uBYo86GZiYJuflqgUzKxpyuvlo3uQkBv6b + nx + 0tz8g8v7GhpPWMSW5L9mNHYsvYFsa7jTxsYdt17yj6GlUHPuMIs8hr5qbwl38IHU1iIa7nYWwE2fb3ePOvLDACRJVgGpU0yxioW80d2QD + xbmNuq7Rp + H9VJB9dyYOwqnW3RhOLBo21FzpORapf0UiRlrHRpk1V6ez + aE1dofaYh/9bh0m6ioxj7j5hpZbWccuEZTMBKd + cbuBkRhJzc6Tti6qwZbDiu4fUwbZS0Tqpuo1UadiyxMW ******** |
Base64-encoded公開鍵。 |
WrappingAlgorithm | String | 必須 | RSAES_OAEP_SHA_256 |
PublicKeyBlobで指定された公開鍵を使用してデータ鍵を暗号化するための暗号化アルゴリズム。 暗号化アルゴリズムの詳細については、「AsymmetricDecrypt」をご参照ください。 設定可能な値は以下のとおりです。
|
WrappingKeySpec | String | 必須 | RSA_2048 |
PublicKeyBlobで指定された公開キーのキータイプ。 キーの種類の詳細については、「非対称キーの概要」をご参照ください。 設定可能な値は以下のとおりです。
|
KeySpec | String | 任意 | AES_256 |
生成するデータキーの長さ。 設定可能な値は以下のとおりです。
注 KeySpecまたはNumberOfBytesパラメーターを使用して、データキーの長さを指定することを推奨します。 両方のパラメーターが指定されていない場合、KMSは256ビットのデータキーを生成します。
両方のパラメーターが指定されている場合、KMSはKeySpecパラメーターを無視します。
|
NumberOfBytes | Integer | 任意 | 32 |
生成するデータキーの長さ。 有効な値: 1 ~ 1024 単位:バイト |
EncryptionContext | ジェソン | 任意 | {"Example":"Example"} |
キーと値のペアのJSON文字列。 ここでこのパラメーターを指定すると、データキーを復号化または再暗号化するときに同等の値が必要になります。 詳細については、「EncryptionContext」をご参照ください。 |
レスポンスパラメーター
パラメーター | データ型 | 例 | 説明 |
---|---|---|---|
CiphertextBlob | String | ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b + i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS **** |
プライマリCMKバージョンを使用して暗号化されたデータキーの暗号文。 |
ExportedDataKey | String | BQKP 1zK6 ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H hIH6DoM25fTLNcKj mFB0Xnh9m2 HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ // ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB |
公開鍵を使用して暗号化され、エクスポートされたデータ鍵。 |
KeyId | String | 599fa825-17de-417e-9554-bb032cc6 **** |
グローバルに一意な CMK の ID。 注 KeyIdパラメーターをエイリアスに設定すると、エイリアスがバインドされているCMKのIDが返されます。
|
KeyVersionId | String | 2ab1a983-7072-4bbc-a582-584b5bd8 **** |
プレーンテキストの暗号化に使用されるCMKバージョンのID。 CMKのプライマリバージョンです。 |
RequestId | String | 7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
リクエストの ID です。 |
例
リクエストの例
http(s)://[Endpoint]/?Action=GenerateAndExportDataKey
&KeyId=1234abcd-12ab-34cd-56ef-12345678 ****
&PublicKeyBlob=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndKfC2ReLL2 + y8a0 + ZBBeAft/uBYo86GZiYJuflqgUzKxpyuvlo3uQkBv6b + nx + 0tz8g8v7GhpPWMSW5L9mNHYsvYFsa7jTxsYdt17yj6GlUHPuMIs8hr5qbwl38IHU1iIa7nYWwE2fb3ePOvLDACRJVgGpU0yxioW80d2QD + xbmNuq7Rp + H9VJB9dyYOwqnW3RhOLBo21FzpORapf0UiRlrHRpk1V6ez + aE1dofaYh/9bh0m6ioxj7j5hpZbWccuEZTMBKd + cbuBkRhJzc6Tti6qwZbDiu4fUwbZS0Tqpuo1UadiyxMW ********
&WrappingAlgorithm=RSAES_OAEP_SHA_256
&WrappingKeySpec=RSA_2048
&<共通リクエストパラメーター>
正常に処理された場合のレスポンス例
XML
形式
<KMS>
<KeyId>202b9877-5a25-46e3-a763-e20791b5****</KeyId>
<KeyVersionId>2ab1a983-7072-4bbc-a582-584b5bd8****</KeyVersionId>
<CiphertextBlob>ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b + i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS ****</CiphertextBlob>
<ExportedDataKey>BQKP + 1zK6 + ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H + hIH6DoM25fTLNcKj + mFB0Xnh9m2 + HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ // ZC6t0AWcUoKL6QDm /dg5koK9Z*Vm*
<RequestId>4bd560a1-729e-45f1-a3d9-b2a33d61046b</RequestId>
</KMS>
JSON
形式
{
"KeyId": "202b9877-5a25-46e3-a763-e20791b5****",
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"CiphertextBlob":"ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b + i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS ****" 、
"ExportedDataKey": "BQKP 1zK6 ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H hIH6DoM25fTLNcKj mFB0Xnh9m2 HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ // ZC6t0AWcUoKL6QDm /dg5kocleB Rinp*Ls*V4F*
"RequestId": "207596a2-36d3-4840-b1bd-f87044699bd7"
}
エラーコード
HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 |
---|---|---|---|
404 | Forbidden.KeyNotFound | 指定されたキーが見つかりません。 | 指定されたキーが存在しない場合に返されるエラーメッセージ。 |
エラーコードリストについては、「API エラーセンター」をご参照ください。