全部产品
Search
文档中心

MaxCompute:ROTATE_WRAPPED_KEYSET

更新时间:Jul 02, 2025

Anda dapat menggunakan MaxCompute dengan Key Management Service (KMS) untuk mengelola kunci. Topik ini menjelaskan cara menggunakan fungsi ROTATE_WRAPPED_KEYSET untuk mendekripsi set kunci terbungkus, menerapkan rotasi kunci, dan menggunakan kunci baru untuk mengenkripsi data.

Informasi latar belakang dan prasyarat

MaxCompute dapat digunakan bersama KMS untuk mengelola kunci. Anda dapat menghasilkan set kunci terbungkus dengan mengenkripsi set kunci berdasarkan kunci KMS. Fungsi ROTATE_WRAPPED_KEYSET menggunakan kunci KMS baru dan algoritma kunci baru untuk mengenkripsi ulang set kunci terbungkus yang dihasilkan menggunakan fungsi NEW_WRAPPED_KEYSET. Dibandingkan dengan fungsi REWRAP_KEYSET, fungsi ROTATE_WRAPPED_KEYSET mendukung penggunaan algoritma kunci baru dalam proses enkripsi ulang.

Sebelum menggunakan fungsi ROTATE_WRAPPED_KEYSET, pastikan prasyarat berikut telah dipenuhi:

  • Set kunci terbungkus harus dihasilkan menggunakan fungsi NEW_WRAPPED_KEYSET. Untuk informasi lebih lanjut, lihat NEW_WRAPPED_KEYSET.

  • Kunci KMS harus dibuat, dan ARN kunci yang ditentukan oleh kms_cmk_arn harus diperoleh. Peran RAM juga harus memiliki izin untuk menggunakan kunci baru.

Sintaksis

binary ROTATE_WRAPPED_KEYSET(string <kms_cmk_arn> , string <role-arn>, string <wrapped_keyset>,string <key_type> [,string description,[string <role_chain>]])

Parameter

  • kms_cmk_arn: Wajib. Menentukan ARN dari kunci utama pelanggan KMS (CMK) yang digunakan untuk mengenkripsi ulang set kunci terbungkus. Format nilai parameter ini adalah 'acs:kms:<RegionId>:<UserId>:key/<CmkId>', di mana RegionId menentukan ID wilayah, UserId menentukan ID pengguna, dan CmkId menentukan ID CMK. ARN dapat diperoleh dari halaman Detail Kunci di Konsol KMS.

  • role_arn: Wajib. Menentukan ARN dari peran RAM yang memiliki izin pada kunci KMS lama dan baru. Format nilai parameter ini adalah 'acs:ram:${<userAID>}:role/${<roleName>}', di mana userAID menentukan ID pengguna, dan roleName menentukan nama peran.

  • wrapped_keyset: Wajib. Menentukan set kunci terbungkus yang ingin dienkripsi ulang.

  • key_type: Wajib. Menentukan tipe algoritma kunci dalam set kunci yang baru dihasilkan. Nilai valid meliputi: AES-GCM-256, AES-SIV-CMAC-128, dan AES-SIV-CMAC-256.

  • description: Opsional. Memberikan deskripsi untuk kunci.

  • role_chain: Opsional. Menentukan rantai peran untuk otorisasi pengguna. Format nilai parameter ini adalah 'acs:ram:<userAID>:role/<roleName2>,acs:ram:<userBID>:role/<roleName3>},...'. Rantai peran dapat digunakan untuk memanggil set kunci terbungkus di seluruh akun Alibaba Cloud.

Nilai kembali

Fungsi ini mengembalikan set kunci terbungkus bertipe BINARY. Anda dapat menggunakan fungsi HEX untuk mengonversi set kunci terbungkus bertipe BINARY menjadi set kunci bertipe STRING sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut tentang fungsi HEX, lihat HEX.

Contoh

Catatan

Kode sampel berikut berisi variabel. Anda harus menjalankan kode dalam mode skrip atau mengganti variabel dengan nilai aktual dalam pernyataan SQL.

  • Mengenkripsi ulang set kunci terbungkus.

    @kms_resource_keyId := 'acs:kms:${<RegionId>}:${<UserId>}:key/${<CmkId>}';
    @role_arn := 'acs:ram:${<UserId>}:role/${<roleName>}';
    @origin_key := unhex('<wrapped_keyset>');
    select hex(ROTATE_WRAPPED_KEYSET(@kms_resource_keyId, @role_arn, @origin_key, 'AES-GCM-256', 'hello world'));
  • Mengenkripsi ulang set kunci terbungkus, serta mengizinkan peran lain untuk memanggil set kunci terbungkus.

    @kms_resource_keyId := 'acs:kms:${<RegionId>}:${<UserId>}:key/${<CmkId>}';
    @role_arn := 'acs:ram:${<UserId>}:role/${<roleName>}';
    @origin_key := unhex('<wrapped_keyset>');
    @role_chain := 'acs:ram:${<UserAId>}:role/${<roleName2>},acs:ram:${<UserBId>}:role/${<roleName3>}';
    select hex(ROTATE_WRAPPED_KEYSET(@kms_resource_keyId, @role_arn, @origin_key, 'AES-GCM-256', 'hello world', @role_chain));