SQL Firewall memungkinkan Anda mengontrol pernyataan SQL mana yang dapat dijalankan terhadap kluster PolarDB Anda. Setelah mengonfigurasi aturan daftar putih, PolarProxy akan memblokir atau memberi peringatan terhadap setiap pernyataan SQL yang tidak termasuk dalam daftar putih, sehingga melindungi akun database Anda dari kueri yang tidak sah atau tidak disengaja.
Cara kerja
PolarProxy beroperasi dalam salah satu dari tiga mode untuk setiap aturan daftar putih:
| Mode | Apa yang dilakukan PolarProxy |
|---|---|
| Training mode | Mengumpulkan pernyataan SQL secara diam-diam. Tidak memblokir atau menghasilkan peringatan. |
| Detection mode | Mencatat pernyataan SQL yang tidak termasuk dalam daftar putih saat terdeteksi. Tidak memblokirnya. |
| Protection mode | Mencatat dan memblokir pernyataan SQL yang tidak termasuk dalam daftar putih saat terdeteksi. |
Saat PolarProxy mengumpulkan pernyataan SQL dalam Training mode, sistem menyimpan bentuk *parameterized* dari setiap pernyataan—bukan teks literalnya. Contohnya:
| Teks SQL | |
|---|---|
| Pernyataan yang Anda jalankan | update t set k = 2 where id = 2; |
| Bentuk parameterized yang disimpan | update t set k = ? where id = ? |
? merepresentasikan nilai apa pun. Artinya, satu pernyataan yang telah dilatih mencakup semua kueri yang identik secara struktural, terlepas dari nilai spesifik yang digunakan. Anda tidak perlu melatih setiap kombinasi parameter yang mungkin.
Konfigurasikan beberapa aturan daftar putih untuk memisahkan kebutuhan yang berbeda. Gunakan akun database khusus untuk melatih setiap aturan, lalu tentukan akun mana saja yang diterapkan oleh aturan tersebut saat beralih ke Detection mode atau Protection mode.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster PolarDB for MySQL
Akses ke Konsol PolarDB
Setidaknya satu akun database untuk dikaitkan dengan aturan
Buat aturan daftar putih
Masuk ke Konsol PolarDB.
Di pojok kiri atas konsol, pilih wilayah tempat kluster Anda dideploy.
Temukan kluster tersebut dan klik ID kluster.
Di panel navigasi sebelah kiri, pilih Settings and Management > Security Management.
Di pojok kiri atas tab SQL Firewall, klik Add.
Pada kotak dialog Create a Rule, konfigurasikan parameter berikut: Opsi Database account name: Nama akun harus mengikuti salah satu format berikut:
username— contohnya,userusername@IP address— contohnya,user@10.0.0.0
Informasi dasar
Parameter Wajib Deskripsi Rule name Ya Nama aturan. Dapat berisi angka dan huruf. Maksimal 30 karakter. Description Tidak Deskripsi aturan. Maksimal 64 karakter. Endpoint Ya Titik akhir tempat aturan ini berlaku. Konfigurasi
Parameter Wajib Deskripsi Rule type Ya Pilih Whitelist Rule. Current mode Tidak Mode operasi: Training mode, Detection mode, atau Protection mode. Database account name Tidak Akun database mana saja yang diterapkan oleh aturan ini. Lihat opsi di bawah. Opsi Perilaku All accounts Berlaku untuk semua akun database. Biarkan bidang di sebelah kanan kosong. Include Hanya berlaku untuk akun yang Anda tentukan. Masukkan minimal satu nama akun, dipisahkan dengan koma (,). Exclude Berlaku untuk semua akun kecuali yang Anda tentukan. Masukkan minimal satu nama akun, dipisahkan dengan koma (,). Klik OK.
Lakukan langkah lanjutan berdasarkan mode yang Anda pilih:
Training mode: Sambungkan ke titik akhir yang ditentukan menggunakan akun database yang didefinisikan dalam aturan. Jalankan pernyataan SQL terkait bisnis yang ingin Anda masukkan ke daftar putih. PolarProxy akan memparameterisasi setiap pernyataan dan menyimpannya ke dalam aturan.
Untuk menambahkan pernyataan ke daftar putih secara manual tanpa menjalankannya, tambahkan awalan berikut pada pernyataan tersebut:
sql hint(/* store_to_whitelist */)Important: Setiap kali Anda memperbarui bisnis, latih ulang semua pernyataan SQL baru. Dalam mode Protection, PolarProxy akan memblokir setiap pernyataan yang belum dilatih.
Setelah pelatihan selesai, alihkan aturan ke Detection mode atau Protection mode untuk mulai menerapkan daftar putih.
Detection mode: Sambungkan ke titik akhir yang ditentukan menggunakan akun database yang telah ditentukan. Jalankan pernyataan SQL bisnis Anda seperti biasa. PolarProxy akan mencatat setiap pernyataan yang tidak ada dalam daftar putih dan tetap mengizinkannya. Untuk pernyataan yang tidak ada dalam daftar putih, hasilnya akan tampak seperti:
Query OK, 0 rows affected (0.03 sec) Rows matched:1 Changed: 0 Warnings:0Protection mode: Sambungkan ke titik akhir yang ditentukan menggunakan akun database yang telah ditentukan. Jalankan pernyataan SQL bisnis Anda. PolarProxy akan mencatat dan memblokir setiap pernyataan yang tidak ada dalam daftar putih. Untuk pernyataan yang diblokir, pesan error-nya akan tampak seperti:
ERROR 1141 (HY000): This SQL is rejected by SQL Firewall. Access denied for user 'xzh'@'x.x.x.x' to database 'xzh': This SQL is not in whitelist wl_test.
Aktifkan atau nonaktifkan aturan daftar putih
Masuk ke Konsol PolarDB.
Di pojok kiri atas konsol, pilih wilayah tempat kluster Anda dideploy.
Temukan kluster tersebut dan klik ID kluster.
Di panel navigasi sebelah kiri, pilih Settings and Management > Security Management.
Pada tab SQL Firewall, temukan aturan tersebut dan aktifkan/nonaktifkan tombol Enable/Disable.
Pada pesan konfirmasi, klik OK.
Untuk mengaktifkan atau menonaktifkan beberapa aturan sekaligus, pilih aturan tersebut dalam tabel aturan lalu klik Enable atau Disable.
Ubah aturan daftar putih
Masuk ke Konsol PolarDB.
Di pojok kiri atas konsol, pilih wilayah tempat kluster Anda dideploy.
Temukan kluster tersebut dan klik ID kluster.
Di panel navigasi sebelah kiri, pilih Settings and Management > Security Management.
Pada tab SQL Firewall, temukan aturan tersebut dan klik Modify di kolom Actions.
Pada kotak dialog Modify a Rule, perbarui parameter dan klik OK.
Nama aturan tidak dapat diubah setelah aturan dibuat.
Anda tidak dapat mengubah pernyataan SQL berparameter dalam suatu aturan melalui Konsol PolarDB. Untuk memperbarui pernyataan SQL berparameter, hapus dari tabel proxy_auditing.sql_list dan latih ulang.Hapus aturan daftar putih
Masuk ke Konsol PolarDB.
Di pojok kiri atas konsol, pilih wilayah tempat kluster Anda dideploy.
Temukan kluster tersebut dan klik ID kluster.
Di panel navigasi sebelah kiri, pilih Settings and Management > Security Management.
Pada tab SQL Firewall, temukan aturan tersebut dan klik Delete di kolom Actions.
Pada pesan Delete, klik OK.
Untuk menghapus beberapa aturan sekaligus, pilih aturan tersebut dalam daftar aturan lalu klik Delete.