Menghasilkan kunci data acak untuk enkripsi envelope. Kunci data dikembalikan dalam bentuk plaintext dan ciphertext.
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 melalui VPC. Untuk mengakses KMS melalui Internet, Anda harus mengaktifkan endpoint publik. Untuk informasi selengkapnya, lihat Akses kunci di instance KMS melalui Internet.
-
Gateway khusus: Anda dapat mengakses KMS dengan menggunakan endpoint privat 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) per pengguna adalah 1.000. Jika batas tersebut terlampaui, panggilan API akan dibatasi, yang dapat memengaruhi bisnis Anda. Kami merekomendasikan Anda memanggil operasi ini dengan kecepatan yang wajar.
-
Jika Anda menggunakan gateway khusus untuk memanggil operasi ini, batas QPS per pengguna bergantung pada kinerja komputasi instance KMS Anda. Untuk informasi selengkapnya, lihat Metrik kinerja.
Deskripsi
Operasi ini menghasilkan kunci data acak, mengenkripsi kunci data tersebut dengan menggunakan customer master key (CMK) yang ditentukan, dan mengembalikan plaintext serta ciphertext dari kunci data. Anda dapat menggunakan plaintext kunci data untuk mengenkripsi data secara lokal dan di luar KMS. Ketika Anda menyimpan data yang dienkripsi, Anda juga harus menyimpan ciphertext kunci data. Anda dapat memperoleh plaintext kunci data dari field Plaintext dan ciphertext kunci data dari field CiphertextBlob dalam respons.
CMK yang ditentukan dalam permintaan hanya digunakan untuk mengenkripsi kunci data. CMK tidak terlibat dalam pembuatan kunci data. KMS tidak mencatat atau menyimpan kunci data yang dibuat secara acak. Anda bertanggung jawab atas persistensi ciphertext kunci data.
Kami merekomendasikan Anda melakukan langkah-langkah berikut untuk mengenkripsi data secara lokal:
1. Panggil operasi GenerateDataKey untuk memperoleh kunci data untuk enkripsi data.
2. Gunakan plaintext kunci data yang dikembalikan dalam field Plaintext dari respons untuk mengenkripsi data secara lokal. Kemudian, hapus plaintext kunci data dari memori.
3. Simpan ciphertext kunci data yang dikembalikan dalam field CiphertextBlob dari respons bersama dengan data yang dienkripsi.
Untuk mendekripsi data secara lokal:
-
Panggil operasi Decrypt untuk mendekripsi ciphertext kunci data yang tersimpan. Operasi ini mengembalikan plaintext kunci data.
-
Gunakan plaintext kunci data untuk mendekripsi data secara lokal. Kemudian, hapus plaintext kunci data dari memori.
Topik ini memberikan contoh cara menghasilkan kunci data acak untuk kunci dengan ID key-hzz630494463ejqjx****.
Coba sekarang
Test
RAM authorization
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| KeyId |
string |
Yes |
ID kunci. Anda juga dapat menentukan alias atau Alibaba Cloud Resource Name (ARN) dari kunci. Untuk informasi selengkapnya tentang alias, lihat Mengelola alias. Catatan
Ketika Anda mengakses kunci yang dimiliki oleh akun Alibaba Cloud lain, Anda harus menentukan ARN dari kunci tersebut. ARN kunci memiliki format berikut: |
key-hzz630494463ejqjx**** |
| KeySpec |
string |
No |
Panjang kunci data yang ingin Anda hasilkan. Nilai yang valid:
Catatan
Kami merekomendasikan Anda menggunakan parameter KeySpec atau NumberOfBytes untuk menentukan panjang kunci data. Jika Anda tidak menentukan salah satu dari 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:
|
256 |
| EncryptionContext |
object |
No |
String JSON yang terdiri dari pasangan kunci-nilai. Jika Anda menentukan parameter ini, Anda juga harus menentukan parameter yang sama ketika memanggil operasi Decrypt. Untuk informasi selengkapnya, lihat EncryptionContext. |
{"Example":"Example"} |
| DryRun |
string |
No |
Menentukan apakah akan mengaktifkan mode dry run. Nilai yang valid:
Mode dry run digunakan untuk menguji panggilan API. Mode ini memverifikasi apakah Anda memiliki izin untuk mengakses resource yang ditentukan dan apakah parameter permintaan valid. Jika Anda mengaktifkan mode dry run, KMS akan selalu mengembalikan respons kegagalan beserta alasan kegagalannya. Alasan kegagalan tersebut meliputi:
|
false |
Untuk informasi tentang parameter permintaan umum, lihat Common parameters.
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 menentukan alias kunci atau ARN kunci pada parameter KeyId dari permintaan, ID kunci juga akan dikembalikan dalam respons. |
key-hzz630494463ejqjx**** |
| CiphertextBlob |
string |
Ciphertext dari kunci data yang dienkripsi oleh versi utama dari kunci yang ditentukan. |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| RequestId |
string |
ID permintaan, yang merupakan pengidentifikasi unik yang dihasilkan oleh Alibaba Cloud untuk permintaan tersebut. Anda dapat menggunakan ID permintaan untuk memecahkan masalah. |
7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
| Plaintext |
string |
Plaintext kunci data dengan encoding 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. | |
| 404 | Forbidden.AliasNotFound | The specified Alias is not found. | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | |
| 409 | Rejected.Disabled | The request was rejected because the key state is Disabled. | |
| 409 | Rejected.PendingDeletion | The request was rejected because the key state is PendingDeletion. | |
| 409 | Rejected.Unavailable | The request was rejected because the key state is Unavailable. |
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.