Peran dengan hak istimewa tinggi, seperti administrator basis data (DBA) dan pengembang, dapat mengakses data sensitif—seperti identitas pengguna dan catatan transaksi—di lingkungan produksi selama pemeliharaan database. Hal ini menimbulkan risiko kebocoran data. Fitur PolarDB for MySQL Confidential Database mengenkripsi hasil kueri secara real time pada lapisan database proxy. Fitur ini memastikan hanya aplikasi yang berwenang dan menggunakan driver tertentu yang dapat mendekripsi serta mengakses data sensitif tersebut. Dengan demikian, Anda dapat melindungi data sensitif dan memenuhi persyaratan kepatuhan hanya dengan perubahan minimal pada kode aplikasi.
Cara kerja
Fitur Confidential Database bekerja pada lapisan database proxy. Saat sebuah kueri SQL sesuai dengan kebijakan enkripsi yang dikonfigurasi, lapisan proxy akan mengenkripsi data pada bidang tertentu sebelum mengembalikan hasil kueri ke klien.
Penyimpanan data: Fitur ini tidak mengubah cara data disimpan secara fisik di database. Data tetap dalam bentuk teks biasa di sistem file (OS) dan pada disk cloud.
Perspektif pengguna:
Super administrator: Hasil kueri selalu dalam bentuk teks biasa dan tidak terpengaruh oleh kebijakan enkripsi, sehingga memudahkan manajemen database.
Pengguna reguler: Hasil kueri dikembalikan dalam bentuk ciphertext. Pengguna reguler harus menggunakan driver enkripsi tertentu—seperti driver EncJDBC dan driver GoLang—serta kunci yang sesuai untuk mendekripsi data di sisi klien.
Pengguna lainnya: Hasil kueri berupa ciphertext dan tidak dapat didekripsi, bahkan dengan kunci sekalipun.
Cakupan
Versi database proxy dari kluster PolarDB for MySQL Anda harus 2.9.12 atau lebih baru.
Lihat nomor versi: Anda dapat melihat versi database proxy kluster Anda di halaman .
Kompatibilitas versi: Jika versi database proxy lebih lama dari 2.9.12 namun lebih baru dari 2.8.18, antarmuka konfigurasi aturan enkripsi digabungkan dengan fitur dynamic data masking. Untuk pengalaman terbaik dan independensi fitur, lakukan upgrade ke versi 2.9.12 atau lebih baru.
Konfigurasi enkripsi on-the-fly
Mengonfigurasi enkripsi on-the-fly mencakup tiga langkah utama: mengonfigurasi kunci, menentukan izin peran, dan membuat kebijakan enkripsi.
Prosedur
Buka Konsol PolarDB. Di panel navigasi sebelah kiri, klik Clusters. Pilih region tempat kluster Anda berada, lalu klik ID kluster target untuk membuka halaman detail kluster.
Di panel navigasi sebelah kiri, klik , lalu klik tab Encryption.
Langkah 1: Konfigurasi kunci
Di halaman Encryption, aktifkan sakelar Key Management untuk mengonfigurasi kunci guna enkripsi dan dekripsi di sisi aplikasi.
Gunakan kunci KMS (Direkomendasikan)
Alibaba Cloud Key Management Service (KMS) memungkinkan Anda menghosting kunci Anda, mendukung rotasi kunci (pembaruan kunci otomatis), serta menyediakan tingkat keamanan dan kemudahan pemeliharaan yang tinggi. Bahkan jika AccessKey (AK) yang digunakan untuk mengakses KMS bocor, Anda dapat mengendalikan risiko tersebut dengan menonaktifkan AK atau memperkuat kebijakan akses. Kunci itu sendiri tidak dikompromikan.
Hanya tipe Customer Master Key di KMS yang didukung. Default Key tidak didukung. Untuk informasi selengkapnya, lihat Ikhtisar Layanan Kunci.
Konfigurasi Customer Master Key KMS
Kembali ke Konsol PolarDB, pilih customer master key yang sesuai, lalu klik OK.
Gunakan kunci yang dikelola sendiri
Jika Anda tidak mengonfigurasi KMS, sistem akan menggunakan kunci yang dikelola sendiri secara default. Anda harus menghasilkan, mendistribusikan, dan menyimpan kunci tersebut sendiri.
Kunci yang dikelola sendiri berisiko hilang atau bocor, dan pembaruan kunci saat ini belum didukung. Jika kunci hilang, data terenkripsi yang sesuai tidak dapat didekripsi. Anda harus menerapkan prosedur keamanan ketat untuk mengelola kunci Anda.
Langkah 2: Tentukan izin peran
Di halaman Encryption, pada tab Customer Role Permission Settings, Anda dapat mengonfigurasi peran untuk akun database yang berbeda. Hal ini menentukan apakah suatu akun dapat melihat data dalam bentuk teks biasa atau hanya dalam bentuk ciphertext saat melakukan kueri data.
Klik Create Role Permission Policy.
Pada kotak dialog Role Permission Settings, atur nama kebijakan dan akun database untuk peran tersebut.
Policy Name: Tentukan nama untuk kebijakan tersebut. Nama dapat memiliki panjang hingga 64 karakter.
Super administrator: Pilih kotak centang akun database. Anda dapat memilih beberapa akun. Akun database dalam daftar ini selalu menerima hasil kueri dalam bentuk teks biasa.
CatatanPeran Super administrator memiliki izin tertinggi. Tambahkan hanya akun manajemen atau audit yang benar-benar diperlukan ke daftar ini dan kendalikan penggunaannya secara ketat.
Regular user: Pilih kotak centang akun database. Anda dapat memilih beberapa akun. Akun database dalam daftar ini menerima hasil kueri dalam bentuk ciphertext tetapi dapat mendekripsi data tersebut menggunakan driver enkripsi tertentu dan kunci yang sesuai.
CatatanPengguna lainnya: Peran ini mencakup semua akun database yang tidak ditentukan dalam peran super administrator atau regular user. Pengguna ini menerima hasil kueri dalam bentuk ciphertext dan tidak dapat mendekripsi data tersebut.

Langkah 3: Buat dan aktifkan kebijakan enkripsi
Di halaman Encryption, pada tab Encryption Policy Settings, konfigurasikan kebijakan enkripsi.
Klik Create Encryption Policy.
Pada kotak dialog yang muncul, konfigurasikan parameter kebijakan seperti dijelaskan dalam tabel berikut.
CatatanTentukan cakupan enkripsi secara tepat: Saat membuat kebijakan, selalu tentukan nama database, tabel, dan bidang secara eksplisit. Hindari menerapkan kebijakan ke semua database atau tabel agar tidak memengaruhi layanan yang tidak terkait.
Parameter
Deskripsi
Rule Name
Wajib diisi. Pengidentifikasi unik untuk kebijakan, misalnya
encrypt-user-email. Nama dapat memiliki panjang hingga 64 karakter.Rule Description
Opsional. Deskripsi rinci tentang kebijakan, misalnya
Encrypt the email field in the user table of the customer database. Deskripsi dapat memiliki panjang hingga 64 karakter.Enable/Disable Rule
Sakelar untuk mengaktifkan atau menonaktifkan kebijakan. Kebijakan diaktifkan secara default saat dibuat dan tidak dapat diubah selama pembuatan. Anda dapat mengubah pengaturan ini setelah kebijakan dibuat.
Associated Permission Policy
Wajib diisi. Pilih izin peran yang ditentukan pada Langkah 2.
Database
Opsional. Database tempat kebijakan diterapkan. Anda dapat memilih salah satu opsi berikut:
(Default) All databases: Kebijakan berlaku untuk semua database dalam kluster.
Specify databases: Kebijakan hanya berlaku untuk database yang ditentukan. Pisahkan beberapa nama database dengan koma
,.
Table Name
Opsional. Tabel tempat kebijakan diterapkan. Anda dapat memilih salah satu opsi berikut:
(Default) All tables: Kebijakan berlaku untuk semua tabel dalam database yang ditentukan.
Specify tables: Kebijakan hanya berlaku untuk tabel yang ditentukan. Pisahkan beberapa nama tabel dengan koma
,.
Field Name
Wajib diisi. Nama bidang yang akan dienkripsi. Pisahkan beberapa nama bidang dengan koma (
,).Encryption Algorithm
Wajib diisi. Algoritma yang digunakan untuk enkripsi. Algoritma berikut didukung:
Seri SM4:
SM4-128-CBC,SM4-128-ECB,SM4-128-GCM,SM4-128-GTR.Seri AES-128:
AES-128-CBC,AES-128-ECB,AES-128-GCM,AES-128-GTR.Seri AES-256:
AES-256-CBC,AES-256-ECB,AES-256-GCM,AES-256-GTR.
Klik OK.
Langkah 4: Kelola kebijakan enkripsi
Di halaman Encryption, pada tab Encryption Policy Settings, Anda dapat mengelola kebijakan yang sudah ada dalam daftar kebijakan.
Ubah kebijakan: Temukan aturan target dan klik Modify di kolom Actions.
Hapus kebijakan: Temukan aturan target, klik Delete di kolom Actions, lalu klik OK pada kotak dialog yang muncul.
Aktifkan atau nonaktifkan kebijakan: Temukan aturan target dan klik sakelar di kolom Enable/Disable Rule.
Konvergensi izin dan Penguatan Keamanan
Untuk mencegah DBA atau pengembang yang memiliki izin konsol memodifikasi atau menghapus kebijakan enkripsi secara jahat, Anda dapat menggunakan Resource Access Management (RAM) untuk penguatan keamanan.
Konsep Inti
Buat Pengguna Resource Access Management (RAM) terpisah untuk personel terkait, berikan izin kepada mereka untuk mengelola PolarDB, dan secara eksplisit tolak izin mereka untuk memodifikasi atau menghapus kebijakan enkripsi.
Petunjuk
Buat kebijakan untuk menolak modifikasi
Login ke Konsol Resource Access Management (RAM). Di panel navigasi sebelah kiri, pilih Permission Management > Access Policies, lalu klik Create Policy.
Di tab editor visual, konfigurasikan parameter berikut:
Effect: Deny.
Service: PolarDB.
Action: Pilih Specify Action. Di bagian Write, pilih
polardb:ModifyMaskingRulesdanpolardb:DeleteMaskingRules.Resource dan Condition: Tentukan objek yang menjadi sasaran kebijakan dan kondisi penerapan kebijakan tersebut. Untuk informasi selengkapnya, lihat Elemen dasar kebijakan akses.
Setelah konfigurasi selesai, klik OK. Di kotak dialog Create Policy, atur Policy Name dan Note.
Konfigurasi izin pengguna RAM
Login ke Konsol Resource Access Management (RAM). Di panel navigasi sebelah kiri, pilih Identity Management > Users. Temukan pengguna RAM target dan klik Add Permissions di kolom Actions.
Di bagian Access Policies, pilih kebijakan deny yang telah Anda buat, lalu klik OK.
Hasil
Saat pengguna RAM yang dibatasi mencoba memodifikasi atau menghapus kebijakan enkripsi, pesan error yang menunjukkan izin tidak mencukupi akan ditampilkan.
Langkah selanjutnya
Setelah Anda mengonfigurasi aturan enkripsi, aplikasi Anda harus menggunakan driver JDBC (EncJDBC) atau driver GoLang—yang memiliki kemampuan dekripsi bawaan—untuk membaca dan menulis data terenkripsi secara benar.