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.
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
Test
RAM authorization
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:
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. |
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.
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:
|
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.