ローカルデータ暗号化用のランダムなデータキーを生成します。
操作説明
注意事項
-
RAM ユーザーまたは RAM ロールがこの OpenAPI を呼び出すために必要なアクセスポリシーの詳細については、「リソースアクセス管理」をご参照ください。
-
この API は、共有ゲートウェイまたは専用ゲートウェイを介して呼び出すことができます。 詳細については、「Alibaba Cloud SDK」をご参照ください。
共有ゲートウェイ: インターネット経由または VPC ドメイン名経由で KMS にアクセスします。 このメソッドでは、パブリックネットワークアクセスを有効にする必要があります。 詳細については、「インターネット経由で KMS インスタンスのキーにアクセスする」をご参照ください。
専用ゲートウェイ: KMS プライベートエンドポイント (
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com) を介して KMS にアクセスします。
QPS 制限
共有ゲートウェイ経由の呼び出し: 単一ユーザーの 1 秒あたりのクエリ数 (QPS) 制限は 1,000 です。 この制限を超えると、API 呼び出しがスロットリングされ、ビジネスに影響を与える可能性があります。 この制限内で API を呼び出すことを推奨します。
専用ゲートウェイ経由の呼び出し: 単一ユーザーの QPS 制限は、KMS インスタンスのコンピューティングパフォーマンスによって異なります。 詳細については、「パフォーマンスメトリック」をご参照ください。
詳細
この API は、ランダムなデータキーを生成し、指定された対称カスタマーマスターキー (CMK) で暗号化し、データキーの暗号文を返します。 この API は GenerateDataKey と同じ特徴を提供します。 唯一の違いは、この API がデータキーのプレーンテキストを返さないことです。
リクエストで指定した CMK は、データキーの暗号化にのみ使用されます。 データキーの生成には使用されません。 KMS は、ランダムに生成されたデータキーを記録または保存しません。
この API は、データ暗号化のためにデータキーをすぐに使用する必要がないシステムに適しています。 暗号化が必要な場合、システムは Decrypt API を呼び出して、データキーの暗号文を復号します。
この API は、信頼レベルが異なる分散システムにも適しています。 たとえば、システムは定義されたポリシーに基づいて、データを異なるパーティションに保存します。 モジュールはこれらのデータパーティションを事前に作成し、それぞれに一意のデータキーを生成します。 このモジュールがコントロールプレーンを初期化した後、キーディストリビューターとして機能し、データを生成または消費しません。 データプレーンモジュールがデータを生成および消費するとき、まずパーティションのデータキーの暗号文を取得します。 次に、暗号文を復号し、プレーンテキストのデータキーを使用してデータを暗号化または復号します。 最後に、メモリからプレーンテキストのデータキーを消去します。 このようなシステムでは、キーディストリビューターはデータキーのプレーンテキストにアクセスする必要はありません。 関連する CMK に対する `GenerateDataKeyWithoutPlaintext` 権限のみが必要です。 データプロデューサーとコンシューマーは、新しいデータキーを生成する必要はありません。 関連する CMK に対する `Decrypt` 権限のみが必要です。
今すぐお試しください
テスト
RAM 認証
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| KeyId |
string |
必須 |
CMK のグローバルに一意な識別子。 CMK にバインドされているエイリアスを指定することもできます。 エイリアスの使用方法の詳細については、「エイリアスの概要」をご参照ください。 |
599fa825-17de-417e-9554-bb032cc6**** |
| KeySpec |
string |
任意 |
生成するデータキーの長さ。 有効な値:
説明
KeySpec または NumberOfBytes を使用して、データキーの長さを指定します。 どちらのパラメーターも指定しない場合、KMS は 256 ビットのデータキーを生成します。 両方のパラメーターを指定した場合、KMS は KeySpec パラメーターを無視します。 |
AES_256 |
| NumberOfBytes |
integer |
任意 |
生成するデータキーの長さ。 |
256 |
| EncryptionContext |
object |
任意 |
キーと値のペアの JSON 文字列。 このパラメーターを指定する場合は、Decrypt 操作を呼び出すときに同じパラメーターを指定する必要があります。 詳細については、「EncryptionContext」をご参照ください。 |
{"Example":"Example"} |
| DryRun |
string |
任意 |
DryRun モードを有効にするかどうかを指定します。
DryRun モードは、API 呼び出しのテスト、必要なリソースに対する権限の確認、およびリクエストパラメーターが有効かどうかの確認に使用されます。 DryRun モードを有効にすると、KMS は理由付きの失敗応答を返します。 失敗の理由には、次のものが含まれます:
|
false |
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
|||
| KeyVersionId |
string |
プレーンテキストの暗号化に使用されるキーバージョンの ID。 これは、指定された CMK のプライマリバージョンです。 |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
CMK のグローバルに一意な識別子。 説明
リクエストの KeyId パラメーターで CMK のエイリアスを使用すると、CMK の ID が返されます。 |
599fa825-17de-417e-9554-bb032cc6**** |
| CiphertextBlob |
string |
データキーの暗号文。 データキーは、指定された CMK のプライマリバージョンによって暗号化されます。 |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| RequestId |
string |
リクエストの ID。 この ID は、Alibaba Cloud がリクエストに対して生成したグローバルに一意な識別子です。 この ID を使用して、問題のトラブルシューティングと特定を行うことができます。 |
7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
例
成功レスポンス
JSONJSON
{
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId": "599fa825-17de-417e-9554-bb032cc6****",
"CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
"RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0"
}
エラーコード
|
HTTP ステータスコード |
エラーコード |
エラーメッセージ |
説明 |
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter is not valid. | |
| 404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | アクセスキーが有効になっていません。 |
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。