All Products
Search
Document Center

Key Management Service:GenerateAndExportDataKey

Last Updated:Dec 21, 2025

Operasi ini menghasilkan kunci data acak, lalu mengenkripsinya menggunakan customer master key (CMK) dan kunci publik yang Anda tentukan. Operasi ini mengembalikan ciphertext dari kunci data yang dienkripsi oleh CMK serta ciphertext dari kunci data yang dienkripsi oleh kunci publik.

Deskripsi operasi

Catatan

  • Untuk informasi selengkapnya mengenai kebijakan akses yang diperlukan agar RAM user atau RAM role dapat memanggil operasi ini, lihat Resource Access Management.

  • Anda dapat memanggil operasi ini melalui shared gateway atau dedicated gateway. Untuk informasi selengkapnya, lihat Alibaba Cloud SDK.

    • Shared gateway: Anda dapat mengakses KMS melalui Internet atau VPC. Untuk mengakses KMS melalui Internet, Anda harus mengaktifkan akses Internet. Untuk informasi selengkapnya, lihat Access KMS instances over the Internet.

    • Dedicated gateway: Anda dapat mengakses KMS menggunakan private endpoint KMS (<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).

Deskripsi

Kami menyarankan agar Anda mengimpor kunci data ke modul kriptografi untuk enkripsi data dan dekripsi data dengan langkah-langkah berikut:

1. Panggil operasi GenerateAndExportDataKey untuk mendapatkan kunci data yang dienkripsi oleh kunci KMS dan kunci publik yang ditentukan.

2. Simpan ciphertext dari kunci data yang dienkripsi oleh kunci KMS ke KMS atau layanan penyimpanan, seperti ApsaraDB, untuk pencadangan dan pemulihan kunci.

3. Impor ciphertext dari kunci data yang dienkripsi oleh kunci publik ke modul kriptografi yang berisi kunci privat yang sesuai. Proses ini mendistribusikan kunci dari KMS ke modul kriptografi, sehingga Anda dapat menggunakan kunci data tersebut untuk mengenkripsi dan mendekripsi data.

Catatan

Kunci KMS yang Anda tentukan dalam permintaan hanya digunakan untuk mengenkripsi kunci data, bukan untuk menghasilkannya. KMS tidak mencatat atau menyimpan kunci data acak yang dihasilkan. Anda bertanggung jawab untuk menyimpan kunci data atau ciphertext-nya.

Coba sekarang

Coba API ini di OpenAPI Explorer tanpa perlu penandatanganan manual. Panggilan yang berhasil akan secara otomatis menghasilkan contoh kode SDK sesuai dengan parameter Anda. Unduh kode tersebut dengan kredensial bawaan yang aman untuk penggunaan lokal.

Test

RAM authorization

Tidak ada otorisasi untuk operasi ini. Jika Anda mengalami masalah saat menjalankan operasi ini, hubungi dukungan teknis.

Parameter permintaan

Parameter

Type

Required

Description

Example

KeyId

string

Yes

ID kunci. Anda juga dapat menentukan alias atau Amazon Resource Name (ARN) kunci tersebut. Untuk informasi selengkapnya mengenai alias, lihat Manage aliases.

Catatan

Untuk mengakses kunci di akun Alibaba Cloud lain, Anda harus menentukan ARN kunci tersebut. Format ARN kunci adalah acs:kms:${region}:${account}:key/${keyid}.

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

KeySpec

string

No

Panjang kunci data yang ingin Anda hasilkan. Nilai yang valid:

  • AES_256: kunci simetris 256-bit.

  • AES_128: kunci simetris 128-bit.

Catatan

Kami menyarankan agar Anda menggunakan parameter KeySpec atau NumberOfBytes untuk menentukan panjang kunci data. Jika Anda tidak menentukan salah satu parameter tersebut, KMS akan menghasilkan kunci data 256-bit. Jika Anda menentukan kedua parameter tersebut, KMS akan mengabaikan parameter KeySpec.

AES_256

NumberOfBytes

integer

No

Panjang kunci data yang ingin Anda hasilkan.

Nilai yang valid: 1 hingga 1024.

Unit: byte.

32

EncryptionContext

object

No

String JSON yang terdiri atas pasangan kunci-nilai. Jika Anda menentukan parameter ini, Anda harus menentukan parameter yang sama saat memanggil operasi Decrypt atau operasi lain untuk mengenkripsi ulang kunci data. Untuk informasi selengkapnya, lihat EncryptionContext.

{"Example":"Example"}

PublicKeyBlob

string

Yes

Kunci publik yang dikodekan dalam Base64.

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

WrappingKeySpec

string

Yes

Jenis kunci yang ditentukan oleh PublicKeyBlob. Untuk informasi selengkapnya mengenai jenis kunci, lihat Introduction to asymmetric keys.
Nilai yang valid:

  • RSA_2048

  • EC_SM2

RSA_2048

WrappingAlgorithm

string

Yes

Algoritma enkripsi yang digunakan untuk mengenkripsi kunci data menggunakan kunci publik yang ditentukan oleh PublicKeyBlob. Untuk informasi selengkapnya mengenai algoritma enkripsi, lihat AsymmetricDecrypt.
Nilai yang valid:

  • RSAES_OAEP_SHA_256

  • RSAES_OAEP_SHA_1

  • SM2PKE

RSAES_OAEP_SHA_256

DryRun

string

No

Menentukan apakah fitur dry run diaktifkan.

  • true: mengaktifkan fitur.

  • false (default): menonaktifkan fitur.

Mode DryRun digunakan untuk menguji panggilan API dan memverifikasi izin pada resource yang dapat Anda akses serta validitas parameter permintaan. Jika Anda mengaktifkan mode DryRun, KMS selalu mengembalikan respons gagal dan penyebab kegagalannya. Penyebab kegagalan berikut termasuk:

  • DryRunOperationError: Permintaan akan berhasil jika parameter DryRun tidak ditentukan.

  • ValidationError: Parameter yang ditentukan dalam permintaan tidak valid.

  • AccessDeniedError: Anda tidak memiliki otorisasi untuk melakukan operasi ini pada resource KMS.

false

Elemen respons

Element

Type

Description

Example

object

KeyVersionId

string

ID versi kunci yang digunakan untuk mengenkripsi teks biasa. Ini adalah versi primary dari kunci KMS yang ditentukan.

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

KeyId

string

ID kunci. Jika Anda menggunakan alias kunci atau ARN kunci dalam permintaan, ID kunci akan dikembalikan.

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

CiphertextBlob

string

Ciphertext dari kunci data. Kunci data dienkripsi menggunakan versi primary dari kunci KMS yang ditentukan.

ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****

RequestId

string

ID permintaan, yaitu pengidentifikasi unik yang dihasilkan oleh Alibaba Cloud. Anda dapat menggunakan ID permintaan ini untuk memecahkan masalah.

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

ExportedDataKey

string

Kunci data yang diekspor yang dilindungi oleh kunci publik.

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

Contoh

Respons sukses

JSONformat

{
  "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*******"
}

Kode kesalahan

HTTP status code

Error code

Error message

Description

400 InvalidParameter The specified parameter is not valid. An invalid value is specified for the parameter.
500 InternalFailure InternalFailure
404 Forbidden.KeyNotFound The specified Key is not found. The error message returned because the specified CMK does not exist.
404 InvalidAccessKeyId.NotFound The Access Key ID provided does not exist in our records.

Lihat Error Codes untuk daftar lengkap.

Catatan rilis

Lihat Release Notes untuk daftar lengkap.