All Products
Search
Document Center

Key Management Service:GenerateDataKeyWithoutPlaintext

Last Updated:Dec 21, 2025

Menghasilkan kunci data acak untuk enkripsi data lokal.

Deskripsi operasi

Pencegahan

  • Untuk informasi mengenai kebijakan akses yang diperlukan oleh pengguna RAM atau peran RAM untuk memanggil OpenAPI ini, lihat Resource Access Management.

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

    • Shared gateway: Akses KMS melalui Internet atau melalui nama domain VPC. Metode ini mengharuskan Anda mengaktifkan akses jaringan publik. Untuk informasi selengkapnya, lihat Akses kunci dalam instans KMS melalui Internet.

    • Dedicated gateway: Akses KMS melalui private endpoint KMS (<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).

Batas QPS

  • Pemanggilan melalui shared gateway: Batas queries per second (QPS) untuk satu pengguna adalah 1.000. Jika batas ini terlampaui, panggilan API akan dikenai throttle, yang dapat memengaruhi bisnis Anda. Kami menyarankan agar Anda memanggil API dalam batas tersebut.

  • Pemanggilan melalui dedicated gateway: Batas QPS untuk satu pengguna bergantung pada performa komputasi instans KMS Anda. Untuk informasi selengkapnya, lihat Metrik performa.

Detail

API ini menghasilkan kunci data acak, mengenkripsinya dengan customer master key (CMK) simetris yang ditentukan, lalu mengembalikan ciphertext dari kunci data tersebut. API ini menyediakan fungsi yang sama seperti GenerateDataKey, dengan satu-satunya perbedaan yaitu API ini tidak mengembalikan plaintext kunci data.

CMK yang Anda tentukan dalam permintaan hanya digunakan untuk mengenkripsi kunci data, bukan untuk menghasilkannya. KMS tidak mencatat atau menyimpan kunci data acak yang dihasilkan.

Catatan
  • API ini cocok untuk sistem yang tidak perlu segera menggunakan kunci data untuk enkripsi data. Saat enkripsi diperlukan, sistem memanggil API Decrypt untuk mendekripsi ciphertext kunci data tersebut.

  • API ini juga cocok untuk sistem terdistribusi dengan tingkat kepercayaan berbeda. Misalnya, sistem Anda menyimpan data dalam partisi berbeda berdasarkan kebijakan yang telah ditentukan. Sebuah modul terlebih dahulu membuat partisi data tersebut dan menghasilkan kunci data unik untuk masing-masing partisi. Setelah modul ini menginisialisasi control plane, ia bertindak sebagai distributor kunci dan tidak memproduksi atau mengonsumsi data. Saat modul data plane memproduksi dan mengonsumsi data, mereka terlebih dahulu mengambil ciphertext kunci data untuk suatu partisi, lalu mendekripsi ciphertext tersebut dan menggunakan plaintext kunci data untuk mengenkripsi atau mendekripsi data. Terakhir, mereka purge plaintext kunci data dari memori. Dalam sistem semacam ini, distributor kunci tidak perlu mengakses plaintext kunci data—ia hanya memerlukan izin `GenerateDataKeyWithoutPlaintext` untuk CMK terkait. Produsen dan konsumen data tidak perlu menghasilkan kunci data baru; mereka hanya memerlukan izin `Decrypt` untuk CMK terkait.

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

Identifier unik global dari CMK. Anda juga dapat menentukan alias yang terikat ke CMK tersebut. Untuk informasi selengkapnya tentang penggunaan alias, lihat Alias overview.

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

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

Gunakan 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 akan dihasilkan.
Nilai yang valid: 1 hingga 1024.
Satuan: byte




256

EncryptionContext

object

No

String JSON berupa pasangan kunci-nilai. Jika Anda menentukan parameter ini, Anda harus memberikan 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, memverifikasi izin Anda pada resource yang diperlukan, serta memeriksa apakah parameter permintaan valid. Jika Anda mengaktifkan mode DryRun, KMS akan mengembalikan respons gagal beserta alasannya. Alasan kegagalan tersebut meliputi:

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

  • ValidationError: Parameter 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 plaintext. Ini adalah versi primary dari CMK yang ditentukan.

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

KeyId

string

Identifier unik global dari CMK.

Catatan

Jika Anda menggunakan alias CMK dalam parameter KeyId pada permintaan, ID CMK tersebut yang dikembalikan.

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

CiphertextBlob

string

Ciphertext dari kunci data. Kunci data tersebut dienkripsi oleh versi primary dari CMK yang ditentukan.

ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****

RequestId

string

ID permintaan. ID ini merupakan identifier unik global yang dihasilkan oleh Alibaba Cloud untuk permintaan tersebut. Anda dapat menggunakan ID ini untuk pemecahan masalah dan pelacakan isu.

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

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

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.
404 InvalidAccessKeyId.NotFound The Access Key ID provided does not exist in our records.
404 Forbidden.KeyNotFound The specified Key is not found. The error message returned because the specified CMK does not exist.

Lihat Error Codes untuk daftar lengkap.

Catatan rilis

Lihat Release Notes untuk daftar lengkap.