Topik ini memberikan ikhtisar fitur dynamic data masking yang disediakan oleh PolarProxy.
Prasyarat
Versi PolarProxy harus V2.4.12 atau lebih baru. Untuk informasi selengkapnya tentang cara melihat versi saat ini dan melakukan upgrade PolarProxy, lihat Minor version update.
Solusi penyamaran data
Jika Anda ingin memberikan otorisasi kepada pihak ketiga untuk membuat laporan, menganalisis data, melakukan aktivitas pengembangan dan pengujian, atau menjalankan operasi terkait database lainnya, Anda mungkin perlu memperoleh data pelanggan terbaru dari database di lingkungan produksi secara real time. Untuk menghindari pengungkapan informasi pribadi, data tersebut harus disembunyikan sebelum diberikan kepada pihak ketiga. Alibaba Cloud menyediakan dua solusi penyamaran data: dynamic data masking dan static data masking. PolarProxy menggunakan dynamic data masking.
Solusi penyamaran data | Deskripsi | Keuntungan | Batasan |
Dynamic data masking | Ketika aplikasi Anda mengirim permintaan kueri data, PolarDB menyembunyikan data sensitif yang dikueri sebelum mengembalikan data tersebut ke aplikasi. Untuk mencapai hal ini, Anda perlu menentukan akun database, nama database, serta tabel atau kolom yang memerlukan penyamaran data sebelum data dikueri. |
| Dibandingkan dengan database cermin, performa kueri pada database produksi sedikit lebih rendah karena PolarProxy menyembunyikan data sensitif di database produksi secara real time. |
Static data masking | PolarProxy mengekspor seluruh data dari database produksi ke database cermin, serta mengenkripsi atau menyembunyikan data sensitif selama proses ekspor. | Aplikasi Anda mengkueri data dari database cermin, bukan dari database produksi. Dengan demikian, penyamaran data tidak memengaruhi layanan yang memerlukan akses ke database produksi. |
|
Cara kerja
Setelah Anda mengonfigurasi aturan penyamaran data di Konsol PolarDB, konsol tersebut menuliskan aturan-aturan ini ke PolarProxy. Ketika aplikasi Anda terhubung ke database menggunakan akun yang ditentukan dalam aturan penyamaran data dan mengkueri kolom tertentu, PolarProxy menyembunyikan data yang dikueri dari database dan mengembalikan data yang telah disembunyikan tersebut ke client. 
Gambar di atas menunjukkan aturan penyamaran data berikut:
Aturan penyamaran data hanya berlaku ketika Anda menggunakan akun
testAccuntuk mengkueri data dari database.PolarProxy hanya menyembunyikan data yang dikueri pada kolom
namedanage.
Jika suatu kolom dalam hasil kueri disembunyikan, semua nilai pada kolom tersebut akan disembunyikan. Misalnya, jika Anda menjalankan pernyataan SELECT * FROM t1 dan tabel t1 berisi kolom name dan age, nilai kedua kolom tersebut dalam hasil kueri akan disembunyikan.
Jika aplikasi Anda menggunakan akun testAcc untuk terhubung ke database dan mengkueri data pada kolom name, age, dan hobby dari suatu tabel, PolarProxy menyembunyikan data pada kolom name dan age, lalu mengembalikan data yang telah disembunyikan tersebut bersama dengan data yang tidak disembunyikan pada kolom hobby.
PolarProxy menggunakan metode berbeda untuk menyembunyikan tipe data yang berbeda. Tabel berikut menjelaskan metode penyamaran data tersebut.
Tipe data | Metode penyamaran data | Contoh |
Tipe data integer: TINYINT, SMALLINT, MEDIUMINT, INT, dan BIGINT | PolarProxy mengembalikan nilai acak dalam format yang ditentukan oleh tipe data aslinya. |
|
Tipe data desimal: DECIMAL, FLOAT, dan DOUBLE |
| |
Tipe data tanggal dan waktu: DATE, TIME, DATETIME, TIMESTAMP, dan YEAR |
| |
Tipe data lainnya | PolarProxy mengganti data tersebut dengan tanda bintang (*). |
|
Pertimbangan
Fitur dynamic data masking hanya berlaku untuk titik akhir kluster. Titik akhir kluster mencakup titik akhir kluster default dan titik akhir kluster kustom. Jika Anda menggunakan titik akhir utama untuk terhubung ke database dan mengkueri data, fitur dynamic data masking tidak akan berlaku. Untuk informasi selengkapnya tentang cara melihat titik akhir kluster, lihat View the endpoint and port number.
Jika hasil kueri berisi data yang harus disembunyikan dan ukuran satu baris melebihi 16 MB, sesi kueri akan ditutup.
Sebagai contoh, Anda ingin mengkueri data pada kolom
namedandescriptiondari tabelperson. Pada tabel ini, data sensitif pada kolomnameharus disembunyikan, sedangkan ukuran data pada satu baris kolomdescriptionmelebihi 16 MB. Dalam kasus ini, ketika Anda menjalankan pernyataanSELECT name, description FROM person, sesi kueri akan ditutup.Jika kolom yang ingin Anda sembunyikan datanya digunakan sebagai nilai parameter input dalam suatu fungsi, penyamaran data tidak akan berlaku.
Sebagai contoh, aturan penyamaran data dibuat untuk menyembunyikan data sensitif pada kolom
name. Ketika Anda menjalankan pernyataanSELECT CONCAT(name, '') FROM person, aplikasi Anda tetap dapat membaca nilai asli dari kolomname.Jika kolom yang ingin Anda sembunyikan datanya digunakan bersama operator UNION, penyamaran data mungkin tidak berlaku.
Sebagai contoh, aturan penyamaran data dibuat untuk menyembunyikan data sensitif pada kolom
name. Ketika Anda menjalankan pernyataanSELECT hobby FROM person UNION SELECT name FROM person, aplikasi Anda tetap dapat membaca nilai asli dari kolomname.
Aktifkan fitur dynamic data masking
Untuk informasi selengkapnya, lihat Manage data masking rules.
Lampiran: Dampak terhadap performa kluster
Fitur dynamic data masking memengaruhi performa kluster dalam skenario berikut.
Dalam contoh ini, permintaan per detik (QPS) read-only dari kluster digunakan untuk menunjukkan perbedaan performa.
Skenario | Dampak terhadap performa | |
Akun Anda termasuk dalam aturan penyamaran data atau tidak | Kueri Anda mengenai aturan penyamaran data atau tidak | |
Tidak | Tidak | Penyamaran data tidak berlaku pada kueri yang dilakukan oleh akun Anda. Dengan demikian, performa kluster Anda tidak terpengaruh. |
Ya | Tidak | PolarProxy hanya menganalisis data definisi kolom dalam set hasil dan tidak menyembunyikan data asli dalam hasil kueri. Hal ini menyebabkan overhead performa sekitar 6%. Setelah fitur dynamic data masking diaktifkan, QPS read-only menurun sekitar 6%. |
Ya | PolarProxy menganalisis data definisi kolom dalam set hasil dan menyembunyikan data asli dalam hasil kueri. Dalam kasus ini, overhead performa bergantung pada ukuran set hasil. Semakin banyak baris dalam hasil kueri, semakin besar overhead performa yang terjadi. Jika hasil kueri hanya mengembalikan satu baris, overhead performa sekitar 6% akan terjadi. | |