Data Security Center (DSC) memungkinkan Anda mengonfigurasi enkripsi kolom untuk berbagai tipe database, seperti RDS for MySQL, RDS for PostgreSQL, PolarDB for MySQL, PolarDB for PostgreSQL, PolarDB for PostgreSQL (Compatible with Oracle), dan PolarDB-X 2.0. Fitur ini memastikan hanya pengguna berwenang yang dapat mendekripsi dan mengakses data di kolom sensitif melalui klien yang menjaga kerahasiaan, sehingga mencegah paparan data dalam bentuk teks biasa kepada pihak tidak berwenang.
-
Fitur enkripsi kolom hanya tersedia bagi pengguna Data Security Center Free Edition, Advanced Edition, Enterprise Edition, versi uji coba 7 hari, dan Value-added Services Only Edition. Jika enkripsi kolom belum diaktifkan atau kuota enkripsi kolom Anda tidak mencukupi, upgrade edisi Anda.
-
Saat klien melakukan kueri terhadap kolom terenkripsi menggunakan SQL, kueri tersebut mengabaikan tipe data asli kolom dan selalu mengembalikan data dalam format string. Konfigurasikan enkripsi kolom dengan hati-hati.
Prosedur
Setelah mengaktifkan instans DSC, Anda harus menyelesaikan langkah-langkah berikut secara berurutan saat pertama kali menggunakan enkripsi kolom di konsol: mengotorisasi DSC untuk mengakses sumber daya cloud, melakukan sinkronisasi aset database, menjalankan pekerjaan penemuan data sensitif, dan mengaktifkan enkripsi kolom.
Langkah 1: Otorisasi DSC untuk mengakses sumber daya
Setelah otorisasi, instans DSC dapat mengakses sumber daya di layanan cloud seperti Object Storage Service (OSS), ApsaraDB RDS, dan MaxCompute.
-
Login ke Konsol Data Security Center.
-
Pada kotak dialog RAM-based Authorization, klik Authorize.
Langkah 2: Sinkronisasi aset database
Anda harus menyinkronkan aset terlebih dahulu sebelum menggunakan DSC untuk mendeteksi data sensitif atau mengaudit aktivitas database di produk cloud seperti ApsaraDB RDS dan PolarDB.
-
Di panel navigasi sebelah kiri, pilih Asset Center.
-
Di halaman Asset Center, klik Asset synchronization.
CatatanSetelah membeli instans DSC, DSC secara otomatis menyinkronkan daftar aset cloud Anda saat pertama kali login ke konsol, sehingga tidak diperlukan tindakan manual. DSC secara otomatis memindai dan menyinkronkan daftar aset setiap hari pada pukul 00.00.
Langkah 3: Aktifkan klasifikasi dan gradasi data
Untuk menggunakan enkripsi kolom, Anda harus terlebih dahulu mengotorisasi koneksi database dan menyelesaikan pekerjaan penemuan data. DSC mendukung Connect dan Account Logon.
Anda dapat memilih metode koneksi berdasarkan kebutuhan keamanan data Anda dan metode yang didukung oleh database Anda, sebagaimana tercantum dalam tabel di bawah ini.
-
Gunakan koneksi satu klik jika database Anda mendukungnya dan Anda tidak perlu menggunakan database sebagai tujuan untuk tugas penyamaran data.
-
Jika Anda perlu menggunakan database sebagai tujuan untuk tugas penyamaran data, Anda harus menggunakan koneksi berbasis kredensial dengan akun yang memiliki izin baca dan tulis.
Tipe koneksi dan aset yang didukung
-
Di panel navigasi sebelah kiri, pilih Asset Center.
-
Di bagian Structured Data, klik tipe data tempat Anda ingin mengonfigurasi enkripsi kolom.
-
Klik ikon
di kolom Data Classification pada instans aset target.CatatanPastikan bahwa instans memiliki database dan Instance Status-nya adalah Running. Jika database belum dibuat, Anda tidak dapat mengaktifkan klasifikasi dan gradasi data atau membuat pekerjaan penemuan yang sesuai.
-
Di kotak dialog Enable Classification and Grading, konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut.
Parameter
Description
Activation Method
Konfigurasikan informasi akun yang digunakan untuk menghubungkan ke database guna deteksi data. Dua metode didukung:
Automatically create database accounts : DSC secara otomatis membuat akun read-only yang diawali dengan awalan
sddp_autopada aset data target. DSC menggunakan akun ini untuk terhubung ke database target dan menjalankan tugas deteksi data.CatatanMetode ini hanya tersedia untuk tipe data yang mendukung aktivasi satu klik.
Manually enter username and password: Masukkan nama pengguna dan kata sandi yang Anda gunakan untuk menghubungkan ke database.
Authorization Scope
Cakupan otorisasi untuk deteksi data.
Entire data source.
Manage authorization scope in the data source list: Pilih cakupan otorisasi yang diinginkan.
Automatically create and start a default scan task
Jika Anda memilih opsi ini, DSC secara otomatis membuat tugas pemindaian default setelah koneksi ke database berhasil dilakukan.
Pada tab , Anda dapat mengklik Default Tasks untuk melihat status eksekusi tugas pemindaian. Untuk informasi selengkapnya, lihat Scan for sensitive data using a detection task.
Automatically connect to new databases.
Jika Anda memilih opsi ini, DSC secara otomatis terhubung ke database baru yang terdeteksi dalam instans database Anda setelah sinkronisasi aset manual atau otomatis.
-
Setelah menyelesaikan konfigurasi, klik OK.
Langkah 4: Lihat detail database
Setelah pekerjaan penemuan data sensitif selesai, lihat informasi tentang instans database yang terhubung ke DSC, termasuk jumlah total kolom, status enkripsi kolom, dan informasi akun database.
-
Di panel navigasi sebelah kiri, pilih .
-
Di halaman Column Encryption, lihat informasi berikut. Anda dapat menggunakan komponen pencarian di atas daftar database untuk mencari dan melihat informasi tentang instans database target berdasarkan jenis aset, status enkripsi (seperti kolom terenkripsi, kolom tidak terenkripsi, atau enkripsi gagal), atau tingkat sensitivitas.
Item
Deskripsi
Columns
Menunjukkan jumlah total kolom di tabel instans database yang berhasil terhubung ke DSC.
Sensitive Data (S3 and Higher)
Kolom yang tingkat sensitivitasnya S3 atau lebih tinggi berdasarkan hasil penemuan data. Ini mencakup informasi seperti kolom sensitif, kolom terenkripsi, kolom tidak terenkripsi, dan kolom yang gagal dienkripsi.
Accounts
-
Total Accounts: Setiap pasangan database-akun dihitung sebagai satu. Misalnya, jika Akun C ada di Database A dan Database B, maka dihitung sebagai dua akun database.
-
Accounts For Which No Encryption Configured: Jika enkripsi tidak diaktifkan untuk kolom apa pun di database, izin akun adalah Accounts For Which No Encryption Configured.
-
Jumlah akun dengan izin Plaintext Permissions atau Ciphertext Permission: Saat Anda mengaktifkan enkripsi kolom untuk database, Anda dapat mengatur izin untuk akun database agar dapat mengakses data kolom terenkripsi.
Anda dapat mengklik angka apa pun dalam statistik atau mengklik Permission Settings. Di panel Permission Settings, cari dan lihat semua informasi akun untuk instans database target guna mengonfirmasi izin akses untuk akun database yang berbeda.
List information
Menampilkan informasi seperti Instance name, Asset Type, Region, Encryption Algorithm, Plaintext Permission Accounts, dan Encryption Check untuk instans DSC.
-
Anda hanya dapat mengonfigurasi enkripsi kolom untuk instans yang telah Passed pemeriksaan enkripsi.
-
Jika Encryption Check bernilai "Failed" karena versi database tidak kompatibel, klik Upgrade di kolom Encryption Check. Hal ini akan mengarahkan Anda ke halaman upgrade yang sesuai di konsol ApsaraDB RDS atau PolarDB untuk meningkatkan versi database. Untuk informasi lebih lanjut, lihat FAQ tentang kegagalan pemeriksaan.
Setelah Anda meningkatkan versi atau status diperbarui, Anda harus melakukan Asset synchronization di konsol DSC untuk mengambil informasi database terbaru.
-
Di panel navigasi sebelah kiri, pilih Asset Center. Di tab Authorization Management, klik Asset Authorization Management.
-
Di panel Asset Authorization Management, klik tipe instans target (RDS atau PolarDB) di panel navigasi nama produk di sebelah kiri, lalu klik Asset synchronization.
-
Langkah 5: Konfigurasikan enkripsi kolom
Setelah Anda mengonfirmasi informasi instans database target dan hasil Encryption Check adalah Passed, selesaikan konfigurasi enkripsi kolom.
Aktifkan enkripsi satu klik
Sebelum Anda mengaktifkan enkripsi satu klik untuk database, algoritma dan metode enkripsinya belum dikonfigurasi. Dalam keadaan ini, Anda tidak dapat mengaktifkan enkripsi untuk kolom individual database tersebut.
DSC mendukung tiga metode untuk mengaktifkan enkripsi kolom.
-
Klik Rapid Encryption di atas daftar instans database untuk mengonfigurasi enkripsi kolom untuk semua kolom yang belum terenkripsi.
-
Klik Rapid Encryption di kolom Actions pada instans database target untuk mengonfigurasi enkripsi kolom untuk instans tersebut.
-
Di halaman Asset Center, klik ikon
di kolom Column Encryption pada instans database target.
-
-
Di panel Encryption Configuration, pilih Asset Type, Instance name, Encryption Algorithm, Encryption Method, dan Plaintext Permission Accounts. Kemudian, pilih Databases, Table, dan Column target yang akan dienkripsi, lalu klik OK.
Perhatikan konfigurasi parameter berikut:
-
Operasi lainnya
Modifikasi izin akun database
Kecuali akun dengan izin Plaintext Permissions, semua akun lain untuk instans database memiliki izin ciphertext permission. Anda dapat memodifikasi izin akun menjadi Plaintext Permissions, Ciphertext Permission (No Decryption Permission), atau Ciphertext Permission (JDBC Decryption) sesuai kebutuhan bisnis Anda.
-
Di halaman , klik Permission Settings di bagian Accounts.
Atau, di kolom Actions pada daftar instans, klik Edit. Di panel Edit, klik Configure pada Account Permissions.
-
Di panel Permission Settings, cari instans dan akun target untuk melihat izin akun saat ini.
CatatanJika akun database yang baru ditambahkan tidak ditampilkan dalam daftar, lakukan Asset synchronization lalu periksa kembali.
-
Klik Modify Permissions di kolom Actions pada akun target.
Anda juga dapat memilih beberapa akun target dengan izin yang sama dan mengklik Batch Modify Permissions di bawah daftar.
-
Di kotak dialog Modify Permissions, pilih izin target dan klik OK.
Modifikasi konfigurasi enkripsi kolom
Setelah menyelesaikan konfigurasi enkripsi:
-
Di daftar instans, perluas instans target. Di daftar database, temukan Databases, Table, dan nama Column target, lalu klik Enable Encryption atau Disable Encryption untuk mengonfigurasi enkripsi untuk satu kolom.
-
Di kolom Actions pada daftar instans, klik Edit. Di panel Edit, modifikasi algoritma enkripsi, metode enkripsi, dan cakupan kolom terenkripsi.
-
Klik Modify pada Encryption Algorithm atau Encryption Method untuk memperbarui algoritma atau metode enkripsi.
PentingMemodifikasi metode enkripsi akan me-restart tugas enkripsi. Selama restart, data di kolom yang sebelumnya terenkripsi disimpan dalam bentuk teks biasa, yang menimbulkan risiko keamanan berupa paparan data. Lanjutkan dengan hati-hati.
-
Di daftar database untuk mengonfigurasi kolom terenkripsi, temukan Databases, Table, dan nama Column target, lalu klik Enable Encryption atau Disable Encryption untuk memperbarui cakupan kolom terenkripsi.
-
Contoh enkripsi kolom MySQL
Setelah mengonfigurasi enkripsi kolom dan izin akun, Anda dapat memverifikasi akses data di kolom terenkripsi. Jika akun dengan izin ciphertext permission mengambil ciphertext saat mengakses kolom terenkripsi, hal ini menunjukkan bahwa konfigurasi efektif.
Akun database ApsaraDB RDS for PostgreSQL hanya mendukung izin plaintext dan izin ciphertext (dekripsi JDBC). Metode verifikasi data enkripsi kolom sama dengan ApsaraDB RDS for MySQL. Bagian berikut menggunakan ApsaraDB RDS for MySQL sebagai contoh untuk menunjukkan cara memverifikasi akses ke data kolom terenkripsi di database ApsaraDB RDS.
ApsaraDB RDS for MySQL
Prasyarat
Anda telah menghubungkan instans ApsaraDB RDS for MySQL 8.0 ke DSC dan menyelesaikan klasifikasi serta gradasi data sensitif.
Hasil pemindaian menunjukkan bahwa tabel users di database sddp_em_db berisi tiga kolom: kolom phone memiliki tingkat sensitivitas S3 (Informasi Pribadi - Nomor Telepon Seluler), sedangkan kolom username dan id memiliki tingkat sensitivitas N/A. Semua kolom saat ini tidak terenkripsi, dan pemeriksaan enkripsi telah Passed.
Konfigurasikan enkripsi kolom
Ikuti langkah-langkah di Aktifkan enkripsi satu klik untuk mengonfigurasi enkripsi kolom untuk instans database ini:
-
Aktifkan enkripsi untuk kolom phone di tabel users.
-
Atur izin akses berikut untuk akun database yang terikat.
Atur izin plaintext untuk akun sddp_em01, izin ciphertext (dekripsi JDBC) untuk akun sddp_em03, dan izin ciphertext (tanpa dekripsi) untuk akun sddp_em02.
Akses data terenkripsi
-
Login ke database menggunakan akun dengan Plaintext Permissions. Untuk informasi lebih lanjut, lihat Login ke database ApsaraDB RDS menggunakan DMS.
-
Jalankan pernyataan SELECT untuk melihat tabel data. Kolom terenkripsi mengembalikan data plaintext.
-
Beralih ke akun dengan Ciphertext Permission (No Decryption Permission) dan login ke database. Jalankan pernyataan SELECT untuk melihat tabel data. Kolom terenkripsi mengembalikan data ciphertext.
-
Beralih ke akun dengan Ciphertext Permission (JDBC Decryption) dan login ke database. Jalankan pernyataan SELECT untuk melihat tabel data. Kolom terenkripsi mengembalikan data ciphertext.
PolarDB for MySQL
Prasyarat
Kluster PolarDB for MySQL 5.7 telah terhubung ke DSC untuk klasifikasi dan gradasi data sensitif. Hasil pemindaian adalah sebagai berikut.
Hasil pemindaian menunjukkan bahwa di tabel user3 database sddp_test, kolom password memiliki tingkat sensitivitas S4 (Informasi Sensitif Pribadi - Kata Sandi), kolom age memiliki tingkat sensitivitas S2 (Informasi Pribadi - Usia), dan kolom lainnya memiliki tingkat sensitivitas N/A. Semua kolom saat ini tidak terenkripsi, dan pemeriksaan enkripsi telah Passed.
Konfigurasikan enkripsi kolom
Ikuti langkah-langkah di Aktifkan enkripsi satu klik untuk mengonfigurasi enkripsi kolom untuk instans database ini:
-
Aktifkan enkripsi untuk kolom password di tabel user3.
-
Atur izin akses berikut untuk akun database yang terikat.
Atur izin plaintext untuk akun sddp_polardb dan izin ciphertext (dekripsi JDBC) untuk akun sddp_03.
Akses data terenkripsi
Karena DMS terhubung ke kluster PolarDB for MySQL melalui titik akhir utama, kebijakan enkripsi kolom tidak berlaku. Oleh karena itu, contoh ini menggunakan command line untuk terhubung ke kluster PolarDB for MySQL melalui titik akhir proxy database guna memverifikasi hasil enkripsi kolom.
-
Instal versi MySQL di server Anda yang kompatibel dengan sistem operasi Anda.
-
Terhubung ke kluster database dengan menjalankan perintah berikut:
mysql -h<endpoint> -P<port> -u<username> -p<password>-
Endpoint dan port: Gunakan titik akhir kluster dan pastikan server Anda dapat mengakses titik akhir ini. Untuk informasi detail tentang cara mengonfigurasi dan melihat titik akhir koneksi, lihat Konfigurasikan proxy database dan Kelola titik akhir.
-
Username dan password: Contoh ini menggunakan username dan password untuk akun database dengan izin plaintext dan izin ciphertext (dekripsi JDBC), masing-masing.
Contoh perintah koneksi:
-
Menggunakan akun dengan izin plaintext:
mysql -hpc-bp1fd7********v6f.rwlb.rds.aliyuncs.com -P3306 -usddp_polardb -pH********4. -
Menggunakan akun dengan izin ciphertext (dekripsi JDBC):
mysql -hpc-bp1fd7********v6f.rwlb.rds.aliyuncs.com -P3306 -usddp_03 -pP********3.
-
-
Jalankan perintah berikut untuk melihat tabel data.
-
Jalankan perintah
use <database_name>;untuk masuk ke database target. Dalam contoh ini, database sddp_test dipilih.use sddp_test; -
Jalankan pernyataan SELECT untuk melihat tabel data.
SELECT * FROM user3 LIMIT 0, 3;
Contoh hasil:
-
Untuk akun dengan izin plaintext, kolom terenkripsi mengembalikan data plaintext.
mysql> use sddp_test; Database changed mysql> SELECT * FROM user3 LIMIT 0, 3; +-----+------+----------+------+ | age | name | password | name | +-----+------+----------+------+ | xxx | xxx | xxx | xxx | | xxx | xxx | xxx | xxx | | xxx | xxx | xxx | xxx | +-----+------+----------+------+ 3 rows in set (0.01 sec) -
Untuk akun dengan izin ciphertext (dekripsi JDBC), kolom terenkripsi mengembalikan data ciphertext.
mysql> use sddp_test; Database changed mysql> SELECT * FROM user3 LIMIT 0, 3; +-----+------+----------------------------------------------+------+ | age | name | password | name | +-----+------+----------------------------------------------+------+ | xxx | xxx | /0D9Pxxx... | xxx | | xxx | xxx | Q0D9Pxxx... | xxx | | xxx | xxx | 7kD9Pxxx... | xxx | +-----+------+----------------------------------------------+------+ 3 rows in set (0.01 sec)
-
Dekripsi sisi klien
Untuk mengakses plaintext di kolom terenkripsi, Anda dapat menggunakan akun dengan Ciphertext Permission (JDBC Decryption) dan mendekripsi data menggunakan klien untuk dekripsi sisi klien dalam Java atau Go.
|
Bahasa |
Tipe database |
Dokumentasi |
|
Java |
|
Integrasikan EncJDBC (Mendukung dekripsi dengan kunci lokal dan kunci KMS) |
|
Go |
|
Integrasikan driver GoLang (Hanya mendukung dekripsi dengan kunci lokal) |
FAQ tentang kegagalan pemeriksaan
-
Versi database ApsaraDB RDS atau PolarDB tidak didukung
Klik Upgrade di kolom Encryption Check untuk menuju halaman upgrade yang sesuai di konsol ApsaraDB RDS atau PolarDB dan tingkatkan versi database.
-
Versi mesin minor ApsaraDB RDS atau versi proxy database PolarDB tidak didukung
-
Instans database ApsaraDB RDS adalah instans read-only
Saat instans read-only dibuat, data direplikasi dari instans secondary, sehingga konsisten dengan instans primary. Pembaruan data pada instans primary juga secara otomatis disinkronkan ke semua instans read-only segera setelah operasi selesai di instans primary. Oleh karena itu, Anda dapat mengonfigurasi enkripsi kolom pada instans primary.
-
Instans database tidak dalam status "Running"
Misalnya, instans database yang ditangguhkan atau dalam maintenance tidak mendukung konfigurasi enkripsi kolom. Anda dapat memulai instans atau menunggu maintenance selesai. Pastikan status instans database adalah Running sebelum mengonfigurasi enkripsi kolom.
Kuota dan batasan
-
Batasan Wilayah: Pastikan wilayah instans Anda mendukung fitur enkripsi kolom. Untuk informasi lebih lanjut, lihat Wilayah yang didukung.
-
Batasan Database:
Tipe Database
Versi
Algoritma Enkripsi
Metode Enkripsi
Izin
ApsaraDB RDS for MySQL
Versi mesin utama adalah MySQL 5.7 atau MySQL 8.0, dan versi mesin minor adalah 20240731 atau lebih baru.
-
AES-128-GCM.
-
AES-256-GCM: Hanya didukung jika versi mesin minor adalah 20241231 atau lebih baru.
-
SM4-128-GCM: Hanya didukung jika versi mesin minor adalah 20241231 atau lebih baru.
-
local key.
-
KMS key: Hanya didukung jika versi mesin minor adalah 20241231 atau lebih baru dan tipe penyimpanan adalah cloud disk.
-
Ciphertext permission (no decryption permission): Hanya didukung saat menggunakan local key. Ini adalah izin default.
-
Ciphertext permission (JDBC decryption): Ini adalah izin default saat menggunakan KMS key.
-
Plaintext permission.
ApsaraDB RDS for PostgreSQL
Versi mesin utama adalah PostgreSQL 16, dan versi mesin minor harus 20241230 atau lebih baru.
AES-256-GCM.
local key.
-
Ciphertext permission (JDBC decryption) (Default).
-
Plaintext permission.
PolarDB for MySQL
Versi mesin utama adalah MySQL 5.7 atau MySQL 8.0, dan versi proxy database harus 2.8.36 atau lebih baru.
PentingJika Anda mengonfigurasi kebijakan enkripsi kolom untuk kluster PolarDB for MySQL, Anda harus menggunakan titik akhir kluster baca/tulis. Titik akhir utama tidak mendukung kebijakan enkripsi kolom. Konfigurasikan proxy database dan Kelola titik akhir.
AES-128-GCM.
local key.
PolarDB for PostgreSQL
Versi mesin utama adalah PostgreSQL 14, dan versi database adalah 2.0.14.15.31.0 atau lebih baru.
AES-256-GCM.
local key.
PolarDB for PostgreSQL (Oracle Compatible)
Hanya versi 2.0 yang kompatibel dengan sintaks Oracle yang didukung. Versi mesin utama adalah PostgreSQL 14, dan versi database adalah 2.0.14.15.31.0 atau lebih baru.
AES-256-GCM.
local key.
PolarDB-X 2.0
Seri harus Edisi Perusahaan. Versi database harus polardb-2.5.0_5.4.20-20250714 atau lebih baru.
-
AES-128-GCM.
-
AES-256-GCM: Hanya didukung jika versi database adalah polardb-2.5.0_5.4.21-20260414 atau lebih baru.
-
SM4-128-GCM.
-
local key.
-
KMS key: Hanya didukung jika versi database adalah polardb-2.5.0_5.4.21-20260414 atau lebih baru.
-
Dokumen terkait
-
Untuk informasi tentang fitur dan prinsip kerja enkripsi kolom database, lihat Ikhtisar enkripsi kolom.
-
Untuk petunjuk detail tentang otorisasi dan koneksi database, lihat Otorisasi database umum.
-
Untuk petunjuk detail tentang cara melihat dan mengoreksi hasil penemuan data sensitif, lihat Pindai data sensitif menggunakan pekerjaan penemuan.
-
Jika data kolom sensitif di database berubah setelah otorisasi, Anda harus memindai ulang. Untuk informasi lebih lanjut, lihat Pindai data sensitif menggunakan pekerjaan penemuan.