ローカルでデータを暗号化するために使用されるランダムなデータキーを生成します。
操作説明
-
この操作の呼び出しに必要な権限については、「リソースアクセス管理」をご参照ください。
-
この操作は、共有ゲートウェイまたは専用ゲートウェイを使用して呼び出すことができます。 詳細については、「Alibaba Cloud SDK」をご参照ください。
共有ゲートウェイ:インターネットまたは VPC 経由で KMS にアクセスできます。 インターネット経由で KMS にアクセスするには、パブリックエンドポイントを有効にする必要があります。 詳細については、「インターネット経由で KMS インスタンスのアクセスキーにアクセスする」をご参照ください。
専用ゲートウェイ:KMS のプライベートエンドポイント(
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com)を使用して KMS にアクセスできます。
QPS 制限
共有ゲートウェイを使用してこの操作を呼び出す場合、単一ユーザーのクエリ/秒 (QPS) 制限は 1,000 です。 制限を超えると、API 呼び出しがスロットルされます。 これはビジネスに影響を与える可能性があります。 妥当なレートでこの操作を呼び出すことをお勧めします。
専用ゲートウェイを使用してこの操作を呼び出す場合、単一ユーザーの QPS 制限は KMS インスタンスのコンピューティングパフォーマンスに基づいています。 詳細については、「パフォーマンスメトリック」をご参照ください。
説明
この操作は、ランダムなデータキーを生成し、指定されたカスタマーマスターキー (CMK) を使用してデータキーを暗号化し、データキーのプレーンテキストと暗号文を返します。 データキーのプレーンテキストを使用して、KMS の外部でローカルにデータを暗号化できます。 暗号化されたデータを保存するときは、データキーの暗号文も保存する必要があります。 データキーのプレーンテキストはレスポンスの Plaintext フィールドから、データキーの暗号文は CiphertextBlob フィールドから取得できます。
リクエストで指定する CMK は、データキーの暗号化にのみ使用されます。 データキーの生成には関与しません。 KMS は、ランダムに生成されたデータキーを記録または保存しません。 データキーの暗号文の永続化は、お客様の責任となります。
ローカルでデータを暗号化するには、次の手順を実行することをお勧めします。
1. GenerateDataKey 操作を呼び出して、データ暗号化用のデータキーを取得します。
2. レスポンスの Plaintext フィールドで返されたデータキーのプレーンテキストを使用して、ローカルでデータを暗号化します。 次に、メモリからデータキーのプレーンテキストをクリアします。
3. レスポンスの CiphertextBlob フィールドで返されたデータキーの暗号文を、暗号化されたデータと共に保存します。
ローカルでデータを復号化するには:
復号化 操作を呼び出して、保存されているデータキーの暗号文を復号化します。 この操作は、データキーのプレーンテキストを返します。
データキーのプレーンテキストを使用して、ローカルでデータを復号化します。 次に、メモリからデータキーのプレーンテキストをクリアします。
このトピックでは、ID が key-hzz630494463ejqjx**** のキーのランダムなデータキーを生成する例を示します。
今すぐお試しください
テスト
RAM 認証
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| KeyId |
string |
必須 |
キーの ID。 キーのエイリアスまたはキーリソース名 (ARN) を指定することもできます。 エイリアスの詳細については、「エイリアスの管理」をご参照ください。 説明
別の Alibaba Cloud アカウントのキーにアクセスする場合は、キーの ARN を入力する必要があります。 キー ARN の形式は |
key-hzz630494463ejqjx**** |
| KeySpec |
string |
任意 |
生成されるデータキーの長さ。 有効な値:
説明
KeySpec パラメーターまたは NumberOfBytes パラメーターを使用してデータキーの長さを指定することをお勧めします。 いずれのパラメーターも指定しない場合、KMS は 256 ビットのデータキーを生成します。 両方のパラメーターを指定した場合、KMS は KeySpec パラメーターを無視します。 |
AES_256 |
| NumberOfBytes |
integer |
任意 |
生成するデータキーの長さ。 単位:バイト。 有効な値:1 ~ 1024。 デフォルト値:
|
256 |
| EncryptionContext |
object |
任意 |
キーと値のペアで構成される JSON 文字列。 このパラメーターを指定する場合は、復号化 操作を呼び出すときにも同じパラメーターを指定する必要があります。 詳細については、「EncryptionContext」をご参照ください。 |
{"Example":"Example"} |
| DryRun |
string |
任意 |
DryRun モードを有効にするかどうかを指定します。
DryRun モードは、API 呼び出しをテストするために使用されます。 指定されたリソースにアクセスする権限があるかどうか、およびリクエストパラメーターが有効かどうかを確認します。 DryRun モードを有効にすると、KMS は常にエラーレスポンスとエラー理由を返します。 エラー理由には、次のものがあります。
|
false |
共通のリクエストパラメーターについては、「共通パラメーター」をご参照ください。
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
|||
| KeyVersionId |
string |
キーバージョンのグローバルに一意な識別子。 |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
キーの ID。 リクエストの KeyId パラメーターでキーエイリアスまたはキー ARN を使用する場合、キー ID もレスポンスで返されます。 |
key-hzz630494463ejqjx**** |
| CiphertextBlob |
string |
指定されたキーのプライマリバージョンによって暗号化されたデータキーの暗号文。 |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| RequestId |
string |
リクエストの ID。リクエストに対して Alibaba Cloud によって生成された一意の識別子です。 リクエスト ID を使用して、問題のトラブルシューティングと特定を行うことができます。 |
7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
| Plaintext |
string |
Base64 でエンコードされたデータキーのプレーンテキスト。 |
QmFzZTY0IGVuY29kZWQgcGxhaW50**** |
例
成功レスポンス
JSONJSON
{
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId": "key-hzz630494463ejqjx****",
"CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
"RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0",
"Plaintext": "QmFzZTY0IGVuY29kZWQgcGxhaW50****"
}
エラーコード
|
HTTP ステータスコード |
エラーコード |
エラーメッセージ |
説明 |
|---|---|---|---|
| 400 | UnsupportedOperation | This action is not supported. | |
| 404 | Forbidden.AliasNotFound | The specified Alias is not found. | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | アクセスキーが有効になっていません。 |
| 409 | Rejected.Disabled | The request was rejected because the key state is Disabled. | |
| 409 | Rejected.PendingDeletion | The request was rejected because the key state is PendingDeletion. | |
| 409 | Rejected.Unavailable | The request was rejected because the key state is Unavailable. |
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。