全部产品
Search
文档中心

:GenerateDataKey

更新时间:Dec 21, 2025

Menghasilkan kunci data acak yang digunakan untuk mengenkripsi data secara lokal.

Deskripsi operasi

  • Untuk informasi tentang izin yang diperlukan untuk memanggil operasi ini, lihat Resource Access Management.

  • Operasi ini dapat dipanggil menggunakan gateway bersama atau gateway khusus. Untuk informasi selengkapnya, lihat Alibaba Cloud SDK.

    • Gateway bersama: Anda dapat mengakses KMS melalui Internet atau VPC. Untuk mengakses KMS melalui Internet, Anda harus mengaktifkan titik akhir publik. Untuk informasi selengkapnya, lihat Mengakses kunci dalam instans KMS melalui Internet.

    • Gateway khusus: Anda dapat mengakses KMS menggunakan titik akhir pribadi KMS (<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).

Batas QPS

  • Jika Anda menggunakan gateway bersama untuk memanggil operasi ini, batas queries per second (QPS) untuk satu pengguna adalah 1.000. Jika batas tersebut dilampaui, panggilan API akan dikenai pengendalian aliran, yang dapat memengaruhi bisnis Anda. Kami menyarankan agar Anda memanggil operasi ini dengan laju yang wajar.

  • Jika Anda menggunakan gateway khusus untuk memanggil operasi ini, batas QPS untuk satu pengguna didasarkan pada kinerja komputasi instans KMS Anda. Untuk informasi selengkapnya, lihat Metrik kinerja.

Deskripsi

Operasi ini menghasilkan kunci data acak, mengenkripsi kunci data tersebut menggunakan customer master key (CMK) yang ditentukan, lalu mengembalikan teks biasa dan ciphertext dari kunci data tersebut. Anda dapat menggunakan teks biasa kunci data untuk mengenkripsi data secara lokal di luar KMS. Saat menyimpan data terenkripsi, Anda juga harus menyimpan ciphertext kunci data tersebut. Teks biasa kunci data tersedia di bidang Plaintext, sedangkan ciphertext-nya tersedia di bidang CiphertextBlob dalam respons.

CMK yang Anda tentukan dalam permintaan hanya digunakan untuk mengenkripsi kunci data dan tidak terlibat dalam pembuatan kunci data tersebut. KMS tidak mencatat atau menyimpan kunci data acak yang dihasilkan. Anda bertanggung jawab atas persistensi ciphertext kunci data tersebut.

Kami menyarankan langkah-langkah berikut untuk mengenkripsi data secara lokal:

Untuk mendekripsi data secara lokal:

Topik ini memberikan contoh cara menghasilkan kunci data acak untuk kunci dengan ID key-hzz630494463ejqjx****.

3. Simpan ciphertext kunci data yang dikembalikan dalam bidang CiphertextBlob pada respons, bersama dengan data terenkripsi.

Untuk mendekripsi data secara lokal:

  • Panggil operasi Decrypt untuk mendekripsi ciphertext kunci data yang disimpan. Operasi ini mengembalikan teks biasa kunci data.

  • Gunakan teks biasa kunci data tersebut untuk mendekripsi data secara lokal, lalu hapus teks biasa kunci data tersebut dari memori.

Topik ini memberikan contoh cara menghasilkan kunci data acak untuk kunci dengan ID key-hzz630494463ejqjx****.

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 Nama Sumber Daya Alibaba Cloud (ARN) kunci tersebut. Untuk informasi selengkapnya tentang alias, lihat Mengelola alias.

Catatan

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

key-hzz630494463ejqjx****

KeySpec

string

No

Panjang kunci data yang akan dihasilkan. 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. Satuan: byte.

Nilai yang valid: 1 hingga 1024.

Nilai default:

  • Jika Anda mengatur KeySpec ke AES_256, nilai default NumberOfBytes adalah 32.

  • Jika Anda mengatur KeySpec ke AES_128, nilai default NumberOfBytes adalah 16.

256

EncryptionContext

object

No

String JSON yang terdiri dari pasangan kunci-nilai.

Jika Anda menentukan parameter ini, Anda juga harus menentukan parameter yang sama saat memanggil operasi Decrypt. Untuk informasi selengkapnya, lihat EncryptionContext.

{"Example":"Example"}

DryRun

string

No

Menentukan apakah mode DryRun diaktifkan.

  • true: mengaktifkan mode DryRun.

  • false (default): menonaktifkan mode DryRun.

Mode DryRun digunakan untuk menguji pemanggilan API. Mode ini memverifikasi apakah Anda memiliki izin untuk mengakses resource yang ditentukan dan apakah parameter permintaan valid. Jika Anda mengaktifkan mode DryRun, KMS selalu mengembalikan respons kegagalan beserta alasan kegagalannya. Alasan kegagalan tersebut meliputi:

  • DryRunOperationError: Permintaan berhasil jika parameter DryRun tidak ditentukan.

  • ValidationError: Parameter yang ditentukan dalam permintaan tidak valid.

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

false

Untuk informasi tentang parameter permintaan umum, lihat Parameter umum.

Elemen respons

Element

Type

Description

Example

object

KeyVersionId

string

Pengidentifikasi unik global dari versi kunci.

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

KeyId

string

ID kunci. Jika Anda menggunakan alias kunci atau ARN kunci dalam parameter KeyId permintaan, ID kunci juga akan dikembalikan dalam respons.

key-hzz630494463ejqjx****

CiphertextBlob

string

Ciphertext kunci data yang dienkripsi oleh versi primary kunci yang ditentukan.

ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****

RequestId

string

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

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

Plaintext

string

Teks biasa kunci data yang dikodekan Base64.

QmFzZTY0IGVuY29kZWQgcGxhaW50****

Contoh

Respons sukses

JSONformat

{
  "KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
  "KeyId": "key-hzz630494463ejqjx****",
  "CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
  "RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0",
  "Plaintext": "QmFzZTY0IGVuY29kZWQgcGxhaW50****"
}

Kode kesalahan

HTTP status code

Error code

Error message

Description

400 UnsupportedOperation This action is not supported. The operation is not supported.
404 Forbidden.AliasNotFound The specified Alias is not found. The error message returned because the specified alias does not exist.
404 Forbidden.KeyNotFound The specified Key is not found. The error message returned because the specified CMK does not exist.
409 Rejected.Disabled The request was rejected because the key state is Disabled. The request was rejected because the key state is Disabled.
409 Rejected.PendingDeletion The request was rejected because the key state is PendingDeletion. The request was rejected because the key state is PendingDeletion.
409 Rejected.Unavailable The request was rejected because the key state is Unavailable. The request was denied because the key status is unavailable.

Lihat Error Codes untuk daftar lengkap.

Catatan rilis

Lihat Release Notes untuk daftar lengkap.