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

:GenerateAndExportDataKey

最終更新日:Jul 29, 2025

この操作は、ランダムなデータキーを生成します。 データキーは、カスタマーマスターキー (CMK) と指定した公開キーを使用して暗号化されます。 この操作は、CMK によって暗号化されたデータキーの暗号文と、公開キーによって暗号化されたデータキーの暗号文を返します。

操作説明

注意事項

  • RAM ユーザーまたは RAM ロールがこの操作を呼び出すために必要なアクセス ポリシーの詳細については、「リソースアクセス管理」をご参照ください。

  • この操作は、共有ゲートウェイまたは専用ゲートウェイを使用して呼び出すことができます。 詳細については、「Alibaba Cloud SDK」をご参照ください。

    • 共有ゲートウェイ: インターネットまたは VPC 経由で KMS にアクセスできます。 インターネット経由で KMS にアクセスするには、インターネットアクセスを有効にする必要があります。 詳細については、「インターネット経由で KMS インスタンスにアクセスする」をご参照ください。

    • 専用ゲートウェイ: KMS のプライベートエンドポイント (<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com) を使用して KMS にアクセスできます。

説明

データの暗号化と復号のために、次のように暗号モジュールにデータキーをインポートすることをお勧めします。

1. GenerateAndExportDataKey 操作を呼び出して、KMS キーと指定された公開キーによって暗号化されたデータキーを取得します。

2. キーのバックアップと回復のために、KMS キーによって暗号化されたデータキーの暗号文を KMS または ApsaraDB などのストレージ サービスに保存します。

3. 公開キーで暗号化されたデータキーの暗号文を、対応する秘密キーを含む暗号モジュールにインポートします。 このプロセスは、KMS から暗号モジュールにキーを配布します。 その後、データキーを使用してデータを暗号化および復号できます。

説明

リクエストで指定する KMS キーは、データキーの暗号化にのみ使用され、データキーの生成には使用されません。 KMS は、ランダムに生成されたデータキーを記録または保存しません。 データキーまたはその暗号文を記録することは、お客様の責任となります。

今すぐお試しください

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

テスト

RAM 認証

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

リクエストパラメーター

パラメーター

タイプ

必須 / 任意

説明

KeyId

string

必須

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

説明

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

1234abcd-12ab-34cd-56ef-12345678****

KeySpec

string

任意

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

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

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

説明

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

AES_256

NumberOfBytes

integer

任意

生成するデータキーの長さ。

有効な値: 1 ~ 1024。

単位: バイト。

32

EncryptionContext

object

任意

キーと値のペアで構成される JSON 文字列。 このパラメーターを指定する場合は、Decrypt 操作またはデータキーを再暗号化する他の操作を呼び出すときに同じパラメーターを指定する必要があります。 詳細については、「EncryptionContext」をご参照ください。

{"Example":"Example"}

PublicKeyBlob

string

必須

Base64 でエンコードされた公開キー。

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndKfC2ReLL2+y8a0+ZBBeAft/uBYo86GZiYJuflqgUzKxpyuvlo3uQkBv6b+nx+0tz8g8v7GhpPWMSW5L9mNHYsvYFsa7jTxsYdt17yj6GlUHPuMIs8hr5qbwl38IHU1iIa7nYWwE2fb3ePOvLDACRJVgGpU0yxioW80d2QD+9aU4jF5dlAahcfgsNzo2CXzCUc1+xbmNuq7Rp+H9VJB9dyYOwqnW3RhOLBo21FzpORapf0UiRlrHRpk1V6ez+aE1dofaYh/9bh0m6ioxj7j5hpZbWccuEZTMBKd+cbuBkRhJzc6Tti6qwZbDiu4fUwbZS0Tqpuo1UadiyxMW********

WrappingKeySpec

string

必須

PublicKeyBlob で指定されたキーのタイプ。 キータイプの詳細については、「非対称キーの概要」をご参照ください。
有効な値:

  • RSA_2048

  • EC_SM2

RSA_2048

WrappingAlgorithm

string

必須

PublicKeyBlob で指定された公開キーを使用してデータキーを暗号化するために使用される暗号化アルゴリズム。 暗号化アルゴリズムの詳細については、「AsymmetricDecrypt」をご参照ください。
有効な値:

  • RSAES_OAEP_SHA_256

  • RSAES_OAEP_SHA_1

  • SM2PKE

RSAES_OAEP_SHA_256

DryRun

string

任意

ドライラン機能を有効にするかどうかを指定します。

  • true: 機能を有効にします。

  • false (デフォルト): 機能を無効にします。

ドライランモードは、API 呼び出しをテストし、アクセス権を持つリソースの権限とリクエストパラメーターの有効性を検証するために使用されます。 ドライランモードを有効にすると、KMS は常にエラー応答とエラーの原因を返します。 次のようなエラー原因が含まれます。

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

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

  • AccessDeniedError: KMS リソースでこの操作を実行する権限がありません。

false

レスポンスパラメーター

パラメーター

タイプ

説明

object

KeyVersionId

string

プレーンテキストの暗号化に使用されるキーバージョンの ID。 指定された KMS キーのプライマリバージョンです。

2ab1a983-7072-4bbc-a582-584b5bd8****

KeyId

string

キーの ID。 リクエストでキーエイリアスまたはキー ARN を使用した場合、キー ID が返されます。

599fa825-17de-417e-9554-bb032cc6****

CiphertextBlob

string

データキーの暗号文。 データキーは、指定された KMS キーのプライマリバージョンを使用して暗号化されます。

ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****

RequestId

string

リクエストの ID。Alibaba Cloud によって生成される一意の識別子です。 リクエスト ID を使用して問題のトラブルシューティングを行うことができます。

7021b6ec-4be7-4d3c-8a68-1e85d4d515a0

ExportedDataKey

string

公開キーによって保護されているエクスポートされたデータキー。

BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs*******

成功レスポンス

JSONJSON

{
  "KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
  "KeyId": "599fa825-17de-417e-9554-bb032cc6****",
  "CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
  "RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0",
  "ExportedDataKey": "BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs*******"
}

エラーコード

HTTP ステータスコード

エラーコード

エラーメッセージ

説明

400 InvalidParameter The specified parameter is not valid.
500 InternalFailure InternalFailure
404 Forbidden.KeyNotFound The specified Key is not found. アクセスキーが有効になっていません。
404 InvalidAccessKeyId.NotFound The Access Key ID provided does not exist in our records.

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

変更履歴

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