すべてのプロダクト
Search
ドキュメントセンター

:GenerateDataKey

最終更新日:Feb 05, 2026

ローカルでデータを暗号化するために使用されるランダムなデータキーを生成します。

操作説明

  • この操作の呼び出しに必要な権限については、「リソースアクセス管理」をご参照ください。

  • この操作は、共有ゲートウェイまたは専用ゲートウェイを使用して呼び出すことができます。 詳細については、「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**** のキーのランダムなデータキーを生成する例を示します。

今すぐお試しください

この API を OpenAPI Explorer でお試しください。手作業による署名は必要ありません。呼び出しに成功すると、入力したパラメーターに基づき、資格情報が組み込まれた SDK コードが自動的に生成されます。このコードをダウンロードしてローカルで使用できます。

テスト

RAM 認証

この操作の認証情報はありません。問題が発生した場合は、アカウントマネージャーにご連絡ください。

リクエストパラメーター

パラメーター

必須 / 任意

説明

KeyId

string

必須

キーの ID。 キーのエイリアスまたはキーリソース名 (ARN) を指定することもできます。 エイリアスの詳細については、「エイリアスの管理」をご参照ください。

説明

別の Alibaba Cloud アカウントのキーにアクセスする場合は、キーの ARN を入力する必要があります。 キー ARN の形式は acs:kms:${region}:${account}:key/${keyid} です。

key-hzz630494463ejqjx****

KeySpec

string

任意

生成されるデータキーの長さ。 有効な値:

  • AES_256: 256 ビットの対称キー。

  • AES_128: 128 ビットの対称キー。

説明

KeySpec パラメーターまたは NumberOfBytes パラメーターを使用してデータキーの長さを指定することをお勧めします。 いずれのパラメーターも指定しない場合、KMS は 256 ビットのデータキーを生成します。 両方のパラメーターを指定した場合、KMS は KeySpec パラメーターを無視します。

AES_256

NumberOfBytes

integer

任意

生成するデータキーの長さ。 単位:バイト。

有効な値:1 ~ 1024。

デフォルト値:

  • KeySpec を AES_256 に設定した場合、NumberOfBytes のデフォルト値は 32 です。

  • KeySpec を AES_128 に設定した場合、NumberOfBytes のデフォルト値は 16 です。

256

EncryptionContext

object

任意

キーと値のペアで構成される JSON 文字列。

このパラメーターを指定する場合は、復号化 操作を呼び出すときにも同じパラメーターを指定する必要があります。 詳細については、「EncryptionContext」をご参照ください。

{"Example":"Example"}

DryRun

string

任意

DryRun モードを有効にするかどうかを指定します。

  • true: DryRun モードを有効にします。

  • false (デフォルト): DryRun モードを無効にします。

DryRun モードは、API 呼び出しをテストするために使用されます。 指定されたリソースにアクセスする権限があるかどうか、およびリクエストパラメーターが有効かどうかを確認します。 DryRun モードを有効にすると、KMS は常にエラーレスポンスとエラー理由を返します。 エラー理由には、次のものがあります。

  • DryRunOperationError: DryRun パラメーターが指定されていない場合、リクエストは成功します。

  • ValidationError: リクエストで指定されたパラメーターが無効です。

  • AccessDeniedError: 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.

完全なリストについては、「エラーコード」をご参照ください。

変更履歴

完全なリストについては、「変更履歴」をご参照ください。