All Products
Search
Document Center

PolarDB:Gunakan PolarDB Always-confidential

Last Updated:Aug 28, 2026

Peran dengan hak istimewa tinggi, seperti administrator basis data (DBA) dan pengembang, dapat mengakses data sensitif—seperti informasi identitas pengguna dan catatan transaksi—saat melakukan pemeliharaan database. Hal ini menimbulkan risiko kebocoran data. Fitur PolarDB for MySQL PolarDB Always-confidential mengenkripsi hasil kueri secara on-the-fly di lapisan database proxy, sehingga hanya aplikasi berwenang yang menggunakan driver tertentu yang dapat mendekripsi dan mengakses data sensitif tersebut. Anda dapat memanfaatkan fitur ini untuk melindungi data sensitif dan memenuhi persyaratan kepatuhan dengan perubahan minimal pada kode aplikasi.

Cara kerja

Fitur PolarDB Always-confidential bekerja di lapisan database proxy. Ketika kueri SQL sesuai dengan kebijakan enkripsi yang dikonfigurasi, proxy akan mengenkripsi data pada bidang yang ditentukan sebelum mengembalikan hasil kueri ke klien.

  • Penyimpanan data: Fitur ini tidak mengubah status penyimpanan fisik data di dalam database. Data tetap dalam bentuk teks biasa di file sistem operasi (OS) dan pada disk.

  • Perspektif pengguna:

    • Super Admin: Hasil kueri selalu dikembalikan dalam bentuk teks biasa dan tidak terpengaruh oleh kebijakan enkripsi, sehingga memudahkan manajemen database.

    • Standard Account: Hasil kueri dikembalikan dalam bentuk ciphertext. Untuk mendekripsi data di sisi klien, diperlukan driver enkripsi khusus—seperti driver EncJDBC atau driver GoLang—serta kunci yang sesuai.

    • pengguna lain: Hasil kueri dikembalikan dalam bentuk ciphertext dan tidak dapat didekripsi, bahkan dengan kunci sekalipun.

Prasyarat

Database proxy kluster PolarDB for MySQL Anda harus menggunakan versi 2.9.12 atau lebih baru.

Catatan
  • Lihat nomor versi: Anda dapat melihat versi database proxy kluster saat ini di halaman Settings and Management > Version Control.

  • Kompatibilitas versi: Jika versi database proxy lebih lama dari 2.9.12 tetapi lebih baru dari 2.8.18, antarmuka konfigurasi aturan enkripsi digabung dengan fitur dynamic data masking. Untuk pengalaman terbaik dan independensi fitur, disarankan melakukan 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

  1. Buka Konsol PolarDB. Di panel navigasi kiri, klik Clusters, pilih region tempat kluster Anda berada, lalu klik ID kluster untuk membuka halaman detail kluster.

  2. Di panel navigasi kiri, pilih Settings and Management > Security, lalu klik tab Encrypt.

Langkah 1: Konfigurasi kunci

Di halaman Encrypt, aktifkan sakelar Key Management untuk mengonfigurasi kunci yang digunakan untuk enkripsi dan dekripsi di sisi aplikasi.

Kunci KMS (Direkomendasikan)

Anda dapat menggunakan Key Management Service (KMS) Alibaba Cloud untuk menyimpan kunci Anda. KMS mendukung rotasi kunci serta menyediakan tingkat keamanan dan kemudahan pemeliharaan yang tinggi. Bahkan jika AccessKey (AK) yang digunakan untuk mengakses KMS bocor, Anda dapat memitigasi risiko tersebut dengan menonaktifkan AK atau memperketat kebijakan, tanpa mengompromikan kunci itu sendiri.

Catatan

Hanya tipe Customer Master Key (CMK) di KMS yang didukung. Tipe Default Key tidak didukung. Untuk informasi lebih lanjut, lihat Ikhtisar Layanan Kunci.

Konfigurasi Customer Master Key (CMK)

  1. Beli dan aktifkan instans KMS.

  2. Buat Customer Master Key (CMK).

  3. Kembali ke Konsol PolarDB, pilih CMK yang sesuai, lalu klik OK.

Kunci yang dikelola sendiri

Jika Anda tidak mengonfigurasi KMS, sistem secara default menggunakan kunci yang dikelola sendiri. Anda bertanggung jawab untuk menghasilkan, mendistribusikan, dan menyimpan kunci tersebut.

Penting

Kunci yang dikelola sendiri berisiko hilang atau bocor, dan pembaruan kunci saat ini belum didukung. Jika kunci hilang, Anda tidak dapat mendekripsi data terenkripsi yang sesuai. Oleh karena itu, Anda harus menerapkan prosedur keamanan ketat untuk mengelola kunci tersebut.

Langkah 2: Tentukan izin peran

Di halaman Encrypt, buka tab Role Policy Settings untuk mengonfigurasi peran bagi akun database yang berbeda, sehingga menentukan apakah mereka melihat teks biasa atau ciphertext saat melakukan kueri data.

  1. Klik Create Role Permission Policy.

  2. Di kotak dialog Role Permission Settings, tetapkan nama kebijakan dan tetapkan akun database ke peran tertentu.

    1. Policy Name: Tentukan nama untuk kebijakan. Nama dapat memiliki panjang hingga 64 karakter.

    2. Super Account: Pilih kotak centang akun database. Anda dapat memilih beberapa akun. Akun database dalam daftar ini selalu menerima hasil kueri dalam bentuk teks biasa.

      Catatan

      Peran Super Account memiliki izin tertinggi. Tambahkan hanya akun manajemen atau audit yang benar-benar diperlukan ke daftar ini dan kendalikan penggunaannya secara ketat.

    3. Standard Account: Pilih kotak centang akun database. Anda dapat memilih beberapa akun. Akun database dalam daftar ini menerima hasil kueri sebagai ciphertext tetapi dapat mendekripsi data dengan menggunakan driver enkripsi khusus dan kunci yang sesuai.

    Catatan

    pengguna lain: Setiap akun database yang tidak dikonfigurasi dalam dua peran di atas. Pengguna ini menerima hasil kueri sebagai ciphertext dan tidak dapat mendekripsi data tersebut.

Langkah 3: Buat kebijakan enkripsi

Di halaman Encrypt, buka tab Encryption Policy Settings untuk mengonfigurasi kebijakan enkripsi.

  1. Klik Create Encryption Policy.

  2. Di kotak dialog yang muncul, konfigurasikan parameter kebijakan seperti dijelaskan dalam tabel berikut.

    Catatan

    Tentukan cakupan enkripsi secara tepat: Saat membuat kebijakan, selalu tentukan secara eksplisit nama database, tabel, dan bidang. Hindari konfigurasi yang berlaku untuk semua database atau semua tabel agar tidak memengaruhi layanan yang tidak terkait.

    Parameter

    Deskripsi

    Rule Name

    Wajib diisi. Pengidentifikasi unik untuk kebijakan, misalnya encrypt-user-email. Panjangnya tidak boleh melebihi 64 karakter.

    Description

    Opsional. Deskripsi rinci tentang kebijakan, seperti Enkripsi bidang email di tabel user pada database customer. Panjangnya tidak boleh melebihi 64 karakter.

    Enable/Disable Rule

    Sakelar untuk mengaktifkan atau menonaktifkan kebijakan. Kebijakan diaktifkan secara default dan tidak dapat diubah saat pembuatan. Anda dapat mengubah pengaturan ini setelah kebijakan dibuat.

    Associate 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: Pengaturan ini hanya berlaku untuk database yang ditentukan. Gunakan koma , untuk memisahkan beberapa nama database.

    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: Hanya berlaku untuk tabel yang ditentukan. Pisahkan beberapa nama tabel dengan koma ,.

    Column Name

    Wajib diisi. Nama bidang yang akan dienkripsi, dipisahkan dengan koma ,.

    Encryption Algorithm

    Wajib diisi. Algoritma yang digunakan untuk enkripsi. Fitur ini mendukung algoritma berikut:

    • Seri SM4: SM4-128-CBC, SM4-128-ECB, SM4-128-GCM, dan SM4-128-GTR.

    • Seri AES-128: AES-128-CBC, AES-128-ECB, AES-128-GCM, dan AES-128-GTR.

    • Seri AES-256: AES-256-CBC, AES-256-ECB, AES-256-GCM, dan AES-256-GTR.

  3. Klik OK untuk membuat kebijakan.

Langkah 4: Kelola kebijakan enkripsi

Di halaman Encrypt, buka tab Encryption Policy Settings untuk mengelola kebijakan yang sudah ada.

  • Ubah kebijakan: Temukan aturan target dan klik Modify di kolom Actions.

  • Hapus kebijakan: Temukan aturan target, klik Delete di kolom Actions, lalu klik OK di kotak dialog yang muncul.

  • Aktifkan atau nonaktifkan kebijakan: Temukan aturan target dan klik sakelar di kolom Enable/Disable Rule.

Penguatan Keamanan

Untuk mencegah DBA atau pengembang dengan izin konsol melakukan perubahan atau penghapusan kebijakan enkripsi secara jahat, Anda dapat menggunakan Resource Access Management (RAM) untuk penguatan keamanan.

Prinsip inti

Buat Pengguna RAM terpisah untuk personel terkait, berikan izin untuk mengelola PolarDB, tetapi secara eksplisit tolak izin mereka untuk mengubah atau menghapus kebijakan enkripsi.

Petunjuk

  1. Buat kebijakan penolakan

    1. Masuk ke Konsol RAM. Di panel navigasi sebelah kiri, pilih Permissions > Policies, lalu klik Create Policy untuk membuat kebijakan kustom.

    2. Di tab editor visual, konfigurasikan parameter berikut:

      • Effect: Deny.

      • Service: PolarDB.

      • Actions: Pilih Specify Actions. Di bawah Write operations, pilih polardb:ModifyMaskingRules dan polardb:DeleteMaskingRules.

      • Resource dan Condition: Tentukan resource yang menjadi sasaran kebijakan dan kondisi penerapannya. Untuk informasi lebih lanjut, lihat Elemen dasar kebijakan.

      • Setelah konfigurasi selesai, klik OK. Di kotak dialog Create Policy, atur Policy Name dan Remarks.

  2. Konfigurasi izin Pengguna RAM

    1. Login ke Konsol RAM. Di panel navigasi kiri, pilih Identities > Users. Temukan Pengguna RAM target dan klik Add Permissions di kolom Actions.

    2. Di bagian Policies, pilih kebijakan penolakan yang telah Anda buat, lalu klik OK.

Hasil

Jika Pengguna RAM yang dibatasi mencoba mengubah atau menghapus kebijakan enkripsi, konsol akan menampilkan kesalahan No Permission. Kesalahan tersebut menunjukkan bahwa operasi saat ini secara eksplisit ditolak, dengan kode kesalahan Forbidden.RAM dan aksi otorisasi polardb:ModifyMaskingRules. Jenis kebijakan adalah kebijakan berbasis identitas (tingkat akun), dan keputusan izinnya adalah penolakan eksplisit. Pengguna harus menghubungi administrator akun untuk mendapatkan otorisasi.

Langkah selanjutnya

Setelah Anda mengonfigurasi aturan enkripsi, aplikasi Anda harus menggunakan driver yang mendukung enkripsi—seperti driver EncJDBC atau driver GoLang—untuk membaca dan menulis data terenkripsi dengan benar.

FAQ

Saya telah mengonfigurasi kebijakan enkripsi. Mengapa saya masih melihat teks biasa saat melakukan kueri data dari client database?

Periksa akun yang digunakan untuk login ke database. Jika akun tersebut dikonfigurasi sebagai Super Account, hasil kueri selalu dalam bentuk teks biasa demi kemudahan manajemen. Untuk melihat hasil ciphertext, uji dengan akun yang dikonfigurasi sebagai Standard Account.

Bagaimana cara memverifikasi bahwa enkripsi berfungsi?

Gunakan akun database yang tidak termasuk dalam daftar Super Account untuk terhubung ke database menggunakan client MySQL standar, seperti command line atau Navicat. Kemudian, lakukan kueri pada bidang yang dienkripsi. Jika Anda melihat ciphertext, berarti hasil kueri sedang dienkripsi secara on-the-fly di lapisan database proxy.

Apa saja risiko dari peran Super Admin?

Peran Super Account dapat langsung membaca data teks biasa, sehingga sepenuhnya melewati perlindungan enkripsi. Kami menyarankan Anda hanya menggunakan peran ini sementara untuk skenario yang benar-benar diperlukan, seperti koreksi data, migrasi, atau audit. Segera hapus akun dari peran ini setelah selesai digunakan dan pertahankan jejak audit lengkap untuk semua operasi.