Menghasilkan kunci data acak hanya dalam bentuk ciphertext, tanpa salinan teks biasa.
Deskripsi operasi
Tindakan Pencegahan
-
Untuk informasi tentang kebijakan akses yang diperlukan pengguna RAM atau peran RAM untuk menggunakan operasi ini, lihat Resource Access Management.
-
Operasi ini dapat diakses melalui gateway bersama atau gateway khusus. Untuk informasi lebih lanjut, lihat Alibaba Cloud SDK.
-
Gateway bersama: Akses KMS melalui Internet atau melalui nama domain VPC. Metode ini memerlukan akses Internet yang diaktifkan. Untuk informasi lebih lanjut, lihat Kunci akses dalam instance KMS melalui Internet.
-
Gateway khusus: Akses KMS melalui endpoint privat KMS (
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).
-
Batas QPS
-
Panggilan melalui gateway bersama: Batas queries per second (QPS) untuk satu pengguna adalah 1.000. Jika Anda melampaui batas ini, permintaan akan dibatasi, yang dapat memengaruhi bisnis Anda. Kami menyarankan Anda untuk tetap berada dalam batas ini.
-
Panggilan melalui gateway khusus: Batas QPS untuk satu pengguna bergantung pada performa komputasi instance KMS Anda. Untuk informasi lebih lanjut, lihat Metrik performa.
Detail
Operasi ini menghasilkan kunci data acak, mengenkripsinya dengan customer master key (CMK) simetris yang ditentukan, dan mengembalikan ciphertext dari kunci data tersebut. Operasi ini menyediakan fitur yang sama dengan GenerateDataKey. Satu-satunya perbedaan adalah operasi ini tidak mengembalikan teks biasa dari kunci data.
CMK yang Anda tentukan dalam permintaan hanya digunakan untuk mengenkripsi kunci data. CMK tersebut tidak digunakan untuk menghasilkan kunci data. KMS tidak mencatat atau menyimpan kunci data yang dihasilkan secara acak.
-
Operasi ini cocok untuk sistem yang tidak perlu segera menggunakan kunci data untuk enkripsi data. Ketika enkripsi diperlukan, sistem akan memanggil API Decrypt untuk mendekripsi ciphertext kunci data.
-
Operasi ini juga cocok untuk sistem terdistribusi dengan tingkat kepercayaan yang berbeda. Sebagai contoh, sistem Anda menyimpan data dalam partisi yang berbeda berdasarkan kebijakan yang telah ditentukan. Sebuah modul membuat partisi data ini terlebih dahulu dan menghasilkan kunci data unik untuk masing-masing. Setelah modul ini menginisialisasi control plane, ia bertindak sebagai distributor kunci dan tidak memproduksi atau mengonsumsi data. Ketika modul data plane memproduksi dan mengonsumsi data, mereka pertama-tama mengambil ciphertext kunci data untuk sebuah partisi. Mereka kemudian mendekripsi ciphertext dan menggunakan kunci data teks biasa untuk mengenkripsi atau mendekripsi data. Akhirnya, mereka menghapus kunci data teks biasa dari memori. Dalam sistem seperti itu, distributor kunci tidak perlu mengakses teks biasa dari kunci data. Ia hanya memerlukan izin `GenerateDataKeyWithoutPlaintext` untuk CMK yang relevan. Produsen dan konsumen data tidak perlu menghasilkan kunci data baru. Mereka hanya memerlukan izin `Decrypt` untuk CMK yang relevan.
Coba sekarang
Test
RAM authorization
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| KeyId |
string |
Yes |
ID unik global dari CMK. Anda juga dapat menentukan alias yang terikat pada CMK. Untuk informasi lebih lanjut tentang cara menggunakan alias, lihat Ikhtisar alias. |
599fa825-17de-417e-9554-bb032cc6**** |
| KeySpec |
string |
No |
Panjang kunci data yang akan dihasilkan. Nilai valid:
Catatan
Gunakan KeySpec atau NumberOfBytes untuk menentukan panjang kunci data. Jika Anda tidak menentukan salah satu parameter, KMS akan menghasilkan kunci data 256-bit. Jika Anda menentukan kedua parameter, KMS akan mengabaikan parameter KeySpec. |
AES_256 |
| NumberOfBytes |
integer |
No |
Panjang kunci data yang akan dihasilkan. |
256 |
| EncryptionContext |
object |
No |
String JSON berisi pasangan kunci-nilai. Jika Anda menentukan parameter ini, Anda harus memberikan parameter yang sama saat memanggil operasi Decrypt. Untuk informasi lebih lanjut, lihat EncryptionContext. |
{"Example":"Example"} |
| DryRun |
string |
No |
Menentukan apakah akan mengaktifkan mode DryRun. Nilai valid:
Mode DryRun digunakan untuk menguji panggilan API, memverifikasi izin Anda pada sumber daya yang diperlukan, dan memeriksa apakah parameter permintaan valid. Jika Anda mengaktifkan mode DryRun, KMS akan mengembalikan respons kegagalan dengan alasannya. Alasan kegagalan meliputi:
|
false |
Elemen respons
|
Element |
Type |
Description |
Example |
|
object |
|||
| KeyVersionId |
string |
ID versi kunci yang digunakan untuk mengenkripsi teks biasa. Ini adalah versi utama dari CMK yang ditentukan. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
Pengidentifikasi unik global dari CMK. Catatan
Jika Anda menggunakan alias CMK dalam parameter KeyId pada permintaan, ID CMK akan dikembalikan. |
599fa825-17de-417e-9554-bb032cc6**** |
| CiphertextBlob |
string |
Ciphertext dari kunci data. Kunci data dienkripsi menggunakan versi utama dari CMK yang ditentukan. |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| RequestId |
string |
ID permintaan. ID ini adalah pengidentifikasi unik global yang dihasilkan oleh Alibaba Cloud untuk permintaan tersebut. Anda dapat menggunakan ID ini untuk memecahkan masalah dan menemukan sumber masalah. |
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.