REWRAP_KEYSET melakukan enkripsi ulang terhadap keyset terbungkus yang sudah ada menggunakan kunci master pelanggan (CMK) Key Management Service (KMS) yang baru. Gunakan fungsi ini untuk mengenkripsi ulang keyset terbungkus yang dihasilkan oleh NEW_WRAPPED_KEYSET dengan kunci KMS yang berbeda.
Untuk detail tentang pembuatan keyset terbungkus, lihat NEW_WRAPPED_KEYSET.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Keyset terbungkus yang dihasilkan oleh
NEW_WRAPPED_KEYSETCMK KMS baru beserta ARN-nya (
kms_cmk_arn) yang tersediaPeran RAM yang memiliki izin atas kunci KMS lama dan baru serta diotorisasi untuk diasumsikan oleh MaxCompute
Sintaksis
binary REWRAP_KEYSET(string <kms_cmk_arn>, string <role_arn>, string <wrapped_keyset> [, string <role_chain>])Parameter
| Parameter | Wajib | Deskripsi |
|---|---|---|
kms_cmk_arn | Ya | ARN dari KMS CMK baru yang akan digunakan untuk enkripsi ulang. Format: 'acs:kms:<RegionId>:<UserId>:key/<CmkId>'. Dapatkan ARN ini dari halaman Key Details di Konsol KMS. |
role_arn | Ya | ARN dari Peran RAM yang memiliki izin atas kunci KMS lama dan baru. MaxCompute mengasumsikan peran ini untuk melakukan enkripsi ulang. Format: 'acs:ram::<UserId>:role/<roleName>'. |
wrapped_keyset | Ya | Keyset terbungkus yang akan dienkripsi ulang. |
role_chain | Tidak | Rantai peran untuk otorisasi cross-account. Format: 'acs:ram:<UserAId>:role/<roleName2>,acs:ram:<UserBId>:role/<roleName3>,...'. Gunakan parameter ini untuk memanggil keyset terbungkus lintas akun Alibaba Cloud. |
Nilai kembalian
Mengembalikan keyset terbungkus yang telah dienkripsi ulang sebagai nilai BINARY. Untuk mengonversinya menjadi string yang dapat disimpan, bungkus pemanggilan fungsi tersebut dengan fungsi HEX. Untuk detail selengkapnya, lihat HEX.
Contoh
Contoh berikut berisi placeholder variabel. Jalankan dalam mode skrip atau ganti setiap placeholder dengan nilai aktual sebelum menjalankan dalam mode SQL.
Enkripsi ulang keyset terbungkus
@origin_key := unhex('<wrapped_keyset>');
SELECT HEX(REWRAP_KEYSET(
'acs:kms:cn-hangzhou:1**************7:key/key-hzz******************',
'acs:ram::1**************7:role/kms',
@origin_key
));Enkripsi ulang dan aktifkan akses cross-account
@origin_key := unhex('<wrapped_keyset>');
@role_chain := 'acs:ram:<UserAId>:role/<roleName2>,acs:ram:<UserBId>:role/<roleName3>';
SELECT HEX(REWRAP_KEYSET(
'acs:kms:cn-hangzhou:1**************7:key/key-hzz******************',
'acs:ram::1**************7:role/kms',
@origin_key,
@role_chain
));Parameter role_chain memberikan izin kepada akun Alibaba Cloud lain untuk menggunakan keyset terbungkus yang telah dienkripsi ulang.
Referensi
Dokumen | Deskripsi |
Menjelaskan cara menggunakan fungsi enkripsi keyset. | |
Membuat keyset berdasarkan algoritma tertentu. | |
Menambahkan kunci baru ke keyset dan menetapkan kunci tersebut sebagai kunci master. | |
Mengonversi keyset bertipe BINARY ke format JSON yang dapat dibaca untuk melihat detail keyset. | |
Mengonversi keyset bertipe JSON ke tipe BINARY. | |
Sistem secara otomatis menghasilkan kunci baru dan menetapkannya sebagai kunci master. | |
Membuat keyset terbungkus baru. Fungsi ini memberikan izin CMK KMS kepada MaxCompute melalui suatu role. Anda juga dapat menggunakan rantai peran untuk mengotorisasi akun Alibaba Cloud lain agar dapat mendekripsi keyset tersebut. | |
Mendekripsi keyset terenkripsi yang sudah ada, melakukan rotasi kunci, lalu mengenkripsi kembali keyset tersebut dengan kunci baru. | |
Mengonversi keyset terbungkus menjadi keyset dasar untuk digunakan sebagai parameter dalam fungsi enkripsi dan dekripsi. Fungsi ini juga memungkinkan Anda memperoleh dan menyimpan informasi tentang keyset terbungkus guna memudahkan maintenance. | |
Mengenkripsi data dengan keyset tertentu. | |
Mendekripsi data dengan keyset tertentu. |
Langkah berikutnya
NEW_WRAPPED_KEYSET — buat keyset terbungkus
HEX — konversi output
BINARYmenjadi string yang dapat disimpan