Operasi ini menghasilkan kunci data acak, lalu mengenkripsinya menggunakan customer master key (CMK) dan kunci publik yang Anda tentukan. Operasi ini mengembalikan ciphertext dari kunci data yang dienkripsi oleh CMK serta ciphertext dari kunci data yang dienkripsi oleh kunci publik.
Deskripsi operasi
Catatan
-
Untuk informasi selengkapnya mengenai kebijakan akses yang diperlukan agar RAM user atau RAM role dapat memanggil operasi ini, lihat Resource Access Management.
-
Anda dapat memanggil operasi ini melalui shared gateway atau dedicated gateway. Untuk informasi selengkapnya, lihat Alibaba Cloud SDK.
Shared gateway: Anda dapat mengakses KMS melalui Internet atau VPC. Untuk mengakses KMS melalui Internet, Anda harus mengaktifkan akses Internet. Untuk informasi selengkapnya, lihat Access KMS instances over the Internet.
Dedicated gateway: Anda dapat mengakses KMS menggunakan private endpoint KMS (
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com).
Deskripsi
Kami menyarankan agar Anda mengimpor kunci data ke modul kriptografi untuk enkripsi data dan dekripsi data dengan langkah-langkah berikut:
1. Panggil operasi GenerateAndExportDataKey untuk mendapatkan kunci data yang dienkripsi oleh kunci KMS dan kunci publik yang ditentukan.
2. Simpan ciphertext dari kunci data yang dienkripsi oleh kunci KMS ke KMS atau layanan penyimpanan, seperti ApsaraDB, untuk pencadangan dan pemulihan kunci.
3. Impor ciphertext dari kunci data yang dienkripsi oleh kunci publik ke modul kriptografi yang berisi kunci privat yang sesuai. Proses ini mendistribusikan kunci dari KMS ke modul kriptografi, sehingga Anda dapat menggunakan kunci data tersebut untuk mengenkripsi dan mendekripsi data.
Kunci KMS yang Anda tentukan dalam permintaan hanya digunakan untuk mengenkripsi kunci data, bukan untuk menghasilkannya. KMS tidak mencatat atau menyimpan kunci data acak yang dihasilkan. Anda bertanggung jawab untuk menyimpan kunci data atau ciphertext-nya.
Coba sekarang
Test
RAM authorization
Parameter permintaan
|
Parameter |
Type |
Required |
Description |
Example |
| KeyId |
string |
Yes |
ID kunci. Anda juga dapat menentukan alias atau Amazon Resource Name (ARN) kunci tersebut. Untuk informasi selengkapnya mengenai alias, lihat Manage aliases. Catatan
Untuk mengakses kunci di akun Alibaba Cloud lain, Anda harus menentukan ARN kunci tersebut. Format ARN kunci adalah |
1234abcd-12ab-34cd-56ef-12345678**** |
| KeySpec |
string |
No |
Panjang kunci data yang ingin Anda hasilkan. Nilai yang valid:
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. Nilai yang valid: 1 hingga 1024. Unit: byte. |
32 |
| EncryptionContext |
object |
No |
String JSON yang terdiri atas pasangan kunci-nilai. Jika Anda menentukan parameter ini, Anda harus menentukan parameter yang sama saat memanggil operasi Decrypt atau operasi lain untuk mengenkripsi ulang kunci data. Untuk informasi selengkapnya, lihat EncryptionContext. |
{"Example":"Example"} |
| PublicKeyBlob |
string |
Yes |
Kunci publik yang dikodekan dalam Base64. |
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndKfC2ReLL2+y8a0+ZBBeAft/uBYo86GZiYJuflqgUzKxpyuvlo3uQkBv6b+nx+0tz8g8v7GhpPWMSW5L9mNHYsvYFsa7jTxsYdt17yj6GlUHPuMIs8hr5qbwl38IHU1iIa7nYWwE2fb3ePOvLDACRJVgGpU0yxioW80d2QD+9aU4jF5dlAahcfgsNzo2CXzCUc1+xbmNuq7Rp+H9VJB9dyYOwqnW3RhOLBo21FzpORapf0UiRlrHRpk1V6ez+aE1dofaYh/9bh0m6ioxj7j5hpZbWccuEZTMBKd+cbuBkRhJzc6Tti6qwZbDiu4fUwbZS0Tqpuo1UadiyxMW******** |
| WrappingKeySpec |
string |
Yes |
Jenis kunci yang ditentukan oleh PublicKeyBlob. Untuk informasi selengkapnya mengenai jenis kunci, lihat Introduction to asymmetric keys.
|
RSA_2048 |
| WrappingAlgorithm |
string |
Yes |
Algoritma enkripsi yang digunakan untuk mengenkripsi kunci data menggunakan kunci publik yang ditentukan oleh PublicKeyBlob. Untuk informasi selengkapnya mengenai algoritma enkripsi, lihat AsymmetricDecrypt.
|
RSAES_OAEP_SHA_256 |
| DryRun |
string |
No |
Menentukan apakah fitur dry run diaktifkan.
Mode DryRun digunakan untuk menguji panggilan API dan memverifikasi izin pada resource yang dapat Anda akses serta validitas parameter permintaan. Jika Anda mengaktifkan mode DryRun, KMS selalu mengembalikan respons gagal dan penyebab kegagalannya. Penyebab kegagalan berikut termasuk:
|
false |
Elemen respons
|
Element |
Type |
Description |
Example |
|
object |
|||
| KeyVersionId |
string |
ID versi kunci yang digunakan untuk mengenkripsi teks biasa. Ini adalah versi primary dari kunci KMS yang ditentukan. |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
ID kunci. Jika Anda menggunakan alias kunci atau ARN kunci dalam permintaan, ID kunci akan dikembalikan. |
599fa825-17de-417e-9554-bb032cc6**** |
| CiphertextBlob |
string |
Ciphertext dari kunci data. Kunci data dienkripsi menggunakan versi primary dari kunci KMS yang ditentukan. |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| RequestId |
string |
ID permintaan, yaitu pengidentifikasi unik yang dihasilkan oleh Alibaba Cloud. Anda dapat menggunakan ID permintaan ini untuk memecahkan masalah. |
7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
| ExportedDataKey |
string |
Kunci data yang diekspor yang dilindungi oleh kunci publik. |
BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs******* |
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",
"ExportedDataKey": "BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs*******"
}
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. |
| 500 | InternalFailure | InternalFailure | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | The error message returned because the specified CMK does not exist. |
| 404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. |
Lihat Error Codes untuk daftar lengkap.
Catatan rilis
Lihat Release Notes untuk daftar lengkap.