All Products
Search
Document Center

PolarDB:Gunakan PolarDB Always-confidential

Last Updated:Apr 24, 2026

Peran dengan hak istimewa tinggi, seperti administrator basis data (DBA) dan pengembang, berisiko mengekspos data sensitif—seperti informasi identitas pengguna atau catatan transaksi—saat memelihara database produksi. Fitur PolarDB Always-confidential untuk PolarDB for MySQL mengurangi risiko tersebut dengan mengenkripsi hasil kueri secara on-the-fly di lapisan database proxy. Hanya aplikasi yang berwenang dan menggunakan driver tertentu yang dapat mendekripsi serta melihat data sensitif. Dengan perubahan minimal pada kode aplikasi, fitur ini membantu melindungi data sensitif dan memenuhi persyaratan kepatuhan.

Cara kerja

Fitur PolarDB Always-confidential beroperasi di lapisan database proxy. Ketika kueri SQL sesuai dengan kebijakan enkripsi yang dikonfigurasi, proxy mengenkripsi data pada bidang yang ditentukan 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 file sistem operasi (OS) dan pada disk cloud.

  • Perspektif pengguna:

    • Super Admin: Hasil kueri selalu dikembalikan sebagai teks biasa. Kebijakan enkripsi tidak memengaruhi akun ini, sehingga menyederhanakan manajemen database.

    • Akun Standar: Hasil kueri dikembalikan sebagai ciphertext. Diperlukan driver enkripsi khusus, seperti driver EncJDBC atau driver GoLang, serta kunci yang benar di sisi klien untuk mendekripsi data.

    • Pengguna lain: Hasil kueri dikembalikan sebagai ciphertext dan tidak dapat didekripsi, bahkan jika kuncinya tersedia.

Prasyarat

Versi database proxy kluster PolarDB for MySQL Anda harus 2.9.12 atau lebih baru.

Catatan
  • Lihat nomor versi: Lihat versi database proxy kluster Anda 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 kebijakan enkripsi digabungkan dengan fitur dynamic data masking. Untuk meningkatkan pengalaman pengguna dan mengelola fitur secara independen, kami merekomendasikan peningkatan proxy 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 berbasis peran, dan membuat kebijakan enkripsi.

Prosedur

  1. Masuk ke PolarDB console. Di panel navigasi kiri, klik Clusters. Pilih region tempat kluster Anda ditempatkan dan klik ID kluster tersebut.

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

Langkah 1: Konfigurasi kunci

Di halaman Encrypt, aktifkan sakelar Key Management untuk mengonfigurasi kunci guna enkripsi dan dekripsi di sisi klien.

Gunakan kunci KMS (direkomendasikan)

Key Management Service (KMS) Alibaba Cloud menyimpan kunci Anda, mendukung rotasi kunci otomatis, serta menyediakan tingkat keamanan dan kemudahan pemeliharaan yang tinggi. Jika Pasangan Kunci Akses yang digunakan untuk mengakses KMS dikompromikan, Anda dapat mengurangi risiko dengan menonaktifkan Pasangan Kunci Akses tersebut atau membatasi kebijakan aksesnya. Kunci itu sendiri tidak diekspos.

Catatan

Hanya tipe customer master key (CMK) dari KMS yang didukung. Tipe default key tidak didukung. Untuk informasi lebih lanjut, lihat Overview of Key Management Service.

Konfigurasi customer master key (CMK)

  1. Beli dan aktifkan instans KMS.

  2. Buat customer master key (CMK).

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

Gunakan 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 dikompromikan, dan rotasi kunci tidak 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 tab Role Policy Settings pada halaman Encrypt, konfigurasikan peran untuk akun database yang berbeda. Konfigurasi ini menentukan apakah pengguna melihat teks biasa atau ciphertext saat mengkueri data.

  1. Klik Create Role Permission Policy.

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

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

    2. Super Account: Pilih kotak centang akun database yang ingin Anda tetapkan ke peran ini. Anda dapat memilih beberapa akun. Akun database dalam daftar ini selalu menerima hasil kueri sebagai teks biasa.

      Catatan

      Peran Super Account memiliki tingkat izin tertinggi. Berikan peran ini hanya kepada akun manajemen atau audit yang esensial dan kendalikan penggunaannya secara ketat.

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

    Catatan

    Pengguna lain: Setiap akun database yang tidak ditetapkan ke peran Super Admin atau Standard Account akan menerima hasil kueri sebagai ciphertext dan tidak dapat mendekripsi data tersebut.

image

Langkah 3: Buat dan aktifkan kebijakan enkripsi

Di tab Encryption Policy Settings pada halaman Encrypt, konfigurasikan 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 yang tepat: Saat membuat kebijakan, selalu tentukan nama database, tabel, dan bidangnya. Hindari menerapkan kebijakan ke semua database atau semua tabel agar tidak secara tidak sengaja memengaruhi layanan lain.

    Parameter

    Deskripsi

    Rule Name

    Wajib diisi. Pengenal unik untuk kebijakan, misalnya encrypt-user-email. Nama dapat memiliki panjang hingga 64 karakter.

    Description

    Opsional. Deskripsi untuk kebijakan, misalnya Encrypts the email field in the user table of the customer database. Deskripsi dapat memiliki panjang hingga 64 karakter.

    Enable/Disable Rule

    Mengontrol aktivasi kebijakan. Kebijakan diaktifkan secara default dan tidak dapat dinonaktifkan saat pembuatan. Anda dapat mengubah pengaturan ini nanti dari daftar kebijakan.

    Associate Permission Policy

    Wajib diisi. Pilih kebijakan izin peran yang telah Anda tentukan di Langkah 2.

    Database

    Opsional. Database tempat kebijakan diterapkan. Opsi berikut tersedia:

    • (Default) All databases: Menerapkan kebijakan ke semua database dalam kluster.

    • Specify databases: Menerapkan kebijakan hanya ke database yang ditentukan. Pisahkan beberapa nama database dengan koma (,).

    Table Name

    Opsional. Tabel tempat kebijakan diterapkan. Opsi berikut tersedia:

    • (Default) All tables: Menerapkan kebijakan ke semua tabel dalam database yang ditentukan.

    • Specify tables: Menerapkan kebijakan hanya ke tabel yang ditentukan. Pisahkan beberapa nama tabel dengan koma (,).

    Column 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 untuk membuat kebijakan.

Langkah 4: Kelola kebijakan enkripsi

Di tab Encryption Policy Settings pada halaman Encrypt, Anda dapat mengelola kebijakan yang telah dibuat dalam daftar kebijakan.

  • Ubah kebijakan: Temukan kebijakan yang ingin diubah, lalu klik Modify di kolom Actions.

  • Hapus kebijakan: Temukan kebijakan yang ingin dihapus, klik Delete di kolom Actions, lalu klik OK di kotak dialog konfirmasi.

  • Aktifkan atau nonaktifkan kebijakan: Temukan kebijakan tersebut, lalu klik sakelar di kolom Enable/Disable Rule.

Penguatan Keamanan dengan izin detail halus

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 RAM terpisah untuk personel terkait. Berikan izin kepada pengguna ini untuk mengelola PolarDB, tetapi secara eksplisit tolak izin mereka untuk memodifikasi atau menghapus kebijakan enkripsi.

Prosedur

  1. Buat kebijakan untuk menolak modifikasi

    1. Masuk ke RAM console. Di panel navigasi kiri, pilih Permissions > Policies. Klik Create Policy.

    2. Di tab editor visual, konfigurasikan parameter berikut:

      • Effect: Deny.

      • Service: PolarDB.

      • Actions: Pilih Specify Action. Di bagian Write, pilih polardb:ModifyMaskingRules dan polardb:DeleteMaskingRules.

      • Resource dan Condition: Tentukan resource tempat kebijakan diterapkan dan kondisi di mana kebijakan berlaku. Untuk informasi lebih lanjut, lihat Elements of an access policy.

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

  2. Menetapkan izin kepada Pengguna RAM

    1. Masuk ke RAM console. Di panel navigasi kiri, pilih Identities > Users. Temukan pengguna RAM target, lalu klik Add Permissions di kolom Actions.

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

Hasil

Ketika pengguna RAM yang dibatasi mencoba memodifikasi atau menghapus kebijakan enkripsi, pesan error akan muncul yang menunjukkan izin tidak mencukupi.image

Langkah berikutnya

Setelah mengonfigurasi kebijakan enkripsi, aplikasi Anda harus menggunakan driver yang mendukung enkripsi, seperti driver JDBC (EncJDBC) atau driver GoLang, untuk membaca dan menulis data terenkripsi secara benar.

FAQ

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

Periksa akun database yang Anda gunakan untuk login. Jika akun tersebut ditetapkan ke peran Super Account, hasil kueri selalu dalam bentuk teks biasa untuk menyederhanakan manajemen. Untuk melihat ciphertext, gunakan akun yang ditetapkan ke peran Standard Account.

Bagaimana cara memverifikasi bahwa enkripsi telah diaktifkan?

Gunakan akun database yang tidak termasuk dalam daftar Super Account untuk terhubung ke database dari client MySQL standar, seperti command line atau Navicat. Kemudian, kueri bidang yang dienkripsi. Hasil ciphertext membuktikan bahwa enkripsi on-the-fly berfungsi di lapisan database proxy.

Apa saja risiko yang terkait dengan peran Super Admin?

Peran Super Account dapat membaca data teks biasa secara langsung, melewati enkripsi. Kami merekomendasikan agar Anda hanya menggunakan peran ini untuk tugas-tugas esensial, seperti koreksi data, migrasi, atau audit. Setelah menyelesaikan tugas, segera hapus akun tersebut dari peran ini dan pastikan jejak audit lengkap atas semua operasi dipertahankan.