全部产品
Search
文档中心

PolarDB:Gunakan fitur Confidential Database

更新时间:Jan 14, 2026

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.

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

  • 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

  1. 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.

  2. Di panel navigasi sebelah kiri, klik Settings and Management > Security, 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.

Catatan

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

  1. Beli dan aktifkan instans KMS.

  2. Buat customer master key (CMK).

  3. 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.

Penting

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.

  1. Klik Create Role Permission Policy.

  2. Pada kotak dialog Role Permission Settings, atur nama kebijakan dan akun database untuk peran tersebut.

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

    2. 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.

      Catatan

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

    3. 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.

    Catatan

    Pengguna 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.

image

Langkah 3: Buat dan aktifkan kebijakan enkripsi

Di halaman Encryption, pada tab Encryption Policy Settings, konfigurasikan kebijakan enkripsi.

  1. Klik Create Encryption Policy.

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

    Catatan

    Tentukan 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.

  3. 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

  1. Buat kebijakan untuk menolak modifikasi

    1. Login ke Konsol Resource Access Management (RAM). Di panel navigasi sebelah kiri, pilih Permission Management > Access Policies, lalu klik Create Policy.

    2. Di tab editor visual, konfigurasikan parameter berikut:

      • Effect: Deny.

      • Service: PolarDB.

      • Action: Pilih Specify Action. Di bagian Write, pilih polardb:ModifyMaskingRules dan polardb: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.

  2. Konfigurasi izin pengguna RAM

    1. 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.

    2. 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.image

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.

FAQ

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

Periksa akun yang Anda gunakan untuk login ke database. Jika akun tersebut dikonfigurasi sebagai super administrator, hasil kueri selalu dikembalikan dalam bentuk teks biasa untuk memudahkan manajemen. Untuk melihat hasil ciphertext, uji kueri menggunakan akun yang dikonfigurasi sebagai regular user.

Bagaimana cara memverifikasi bahwa enkripsi berfungsi?

Gunakan akun database yang tidak termasuk dalam daftar super administrator untuk terhubung ke database menggunakan klien MySQL standar, seperti command line atau Navicat. Kemudian, lakukan kueri pada bidang yang dienkripsi. Jika Anda melihat ciphertext, hal ini memverifikasi bahwa hasil kueri dienkripsi secara real time pada lapisan database proxy.

Apa saja risiko dari peran super administrator?

Peran super administrator dapat langsung membaca data dalam bentuk teks biasa, sepenuhnya melewati perlindungan enkripsi. Peran ini hanya boleh digunakan sementara untuk skenario yang benar-benar diperlukan, seperti koreksi data, migrasi, atau auditing. Segera hapus akun dari peran ini setelah tugas selesai dan pertahankan jejak audit lengkap atas semua operasi.