Fitur enkripsi kolom dari Data Security Center (DSC) mengenkripsi kolom tertentu di database seperti ApsaraDB RDS for MySQL, ApsaraDB RDS for PostgreSQL, PolarDB for MySQL, PolarDB for PostgreSQL, PolarDB for PostgreSQL (Oracle Compatible), dan PolarDB-X 2.0. Fitur ini mencegah pengguna yang tidak sah mengakses data sensitif dalam bentuk teks biasa melalui perangkat lunak platform cloud atau alat koneksi database, sehingga membantu meredam ancaman keamanan internal maupun eksternal.
Manfaat
-
Tidak perlu perubahan aplikasi: Driver client secara otomatis menangani enkripsi dan dekripsi, sehingga prosesnya transparan bagi aplikasi Anda dan mengurangi biaya integrasi.
-
Beban performa rendah: Uji benchmark TPC-C menunjukkan bahwa performa mencapai lebih dari 93% operasi teks biasa.
-
Perlindungan kriptografi end-to-end: Data kritis selalu dikembalikan dalam bentuk ciphertext. Bahkan jika kredensial akun database dikompromikan, data tetap aman.
-
Dukungan SQL lengkap: Semua fungsi kueri SQL native didukung pada data terenkripsi tanpa batasan fungsional.
-
Pengelolaan kunci yang aman: Anda dapat menentukan kunci mana yang digunakan. Kunci segera dihapus saat layanan dihentikan serta mendukung pembaruan dan rotasi kunci.
Konsep utama
Enkripsi kolom di DSC terdiri dari dua bagian utama: pengaturan enkripsi dan pengelolaan izin akun. Pengaturan enkripsi menentukan algoritma enkripsi, metode, dan cakupannya, termasuk instansiasi basis data, database, tabel, dan kolom. Pengelolaan izin akun mengontrol akun database mana yang dapat mengakses data terenkripsi dan pada tingkat izin apa.
-
Algoritma enkripsi: Enkripsi kolom menggunakan algoritma enkripsi standar industri SM4-128-GCM, AES-128-GCM, dan AES-256-GCM untuk mengenkripsi data di kolom yang ditentukan.
-
Metode enkripsi: Enkripsi kolom mendukung dua metode untuk mengelola kunci enkripsi pada database yang ditentukan: local key dan KMS key.
-
Local key: Kunci enkripsi dihasilkan dan disimpan di lingkungan lokal Anda.
-
KMS key (Direkomendasikan): Gunakan Key Management Service (KMS) untuk menyimpan kunci enkripsi untuk database yang ditentukan. DSC mendukung penggunaan Customer Master Key yang Anda buat dan kelola di KMS. Untuk informasi lebih lanjut tentang jenis kunci, lihat Jenis kunci.
-
-
Izin akun:
Akun adalah akun database yang diambil dari instansiasi ApsaraDB RDS for MySQL, ApsaraDB RDS for PostgreSQL, PolarDB for MySQL, PolarDB for PostgreSQL, PolarDB for PostgreSQL (Oracle Compatible), dan PolarDB-X 2.0 yang telah Anda otorisasi agar DSC dapat mengaksesnya.
Tabel berikut menjelaskan izin yang tersedia.
Izin
Deskripsi
Ciphertext Permission (JDBC Decryption)
Secara default, akun dengan izin ini dapat mengakses ciphertext dari kolom terenkripsi. Akun tersebut dapat menggunakan SDK dan driver client always-confidential untuk mendekripsi data dengan local key atau KMS key guna melihat teks biasanya.
Ciphertext Permission (No Decryption Permission)
Akun hanya dapat mengakses ciphertext di kolom terenkripsi. Akun tidak dapat mendekripsi data dengan cara apa pun.
Plaintext Permissions
Setelah enkripsi kolom diaktifkan untuk suatu database, akun dengan izin ini melewati pengaturan enkripsi dan dapat langsung mengakses data teks biasa di kolom terenkripsi.
Kuota dan batasan
|
Jenis 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. |
|
|
|
|
ApsaraDB RDS for PostgreSQL |
Versi mesin utama adalah PostgreSQL 16, dan versi mesin minor harus 20241230 atau lebih baru. |
AES-256-GCM. |
local key. |
|
|
PolarDB for MySQL |
Versi mesin utama adalah MySQL 5.7 atau MySQL 8.0, dan versi proksi database harus 2.8.36 atau lebih baru. Penting
Jika Anda mengonfigurasi kebijakan enkripsi kolom untuk kluster PolarDB for MySQL, Anda harus menggunakan titik akhir kluster read/write untuk terhubung ke kluster tersebut. Jika Anda menggunakan titik akhir utama, kebijakan enkripsi kolom tidak akan berlaku. Untuk informasi lebih lanjut, lihat Konfigurasi database proxy dan Mengelola 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 kompatibel sintaks Oracle 2.0 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. |
|
|
Penagihan
DSC menyediakan kuota gratis untuk satu kolom terenkripsi. Untuk mengenkripsi lebih banyak kolom, Anda harus mengaktifkan layanan Column Encryption dan membeli jumlah number of encrypted columns yang mencukupi. Layanan ini berbasis langganan. Untuk informasi lebih lanjut, lihat Penagihan.
Jika Anda mengatur encryption method menjadi KMS key dalam konfigurasi enkripsi kolom Anda, KMS akan dikenai biaya untuk hosting kunci. Untuk informasi lebih lanjut, lihat Penagihan Produk.
Ikhtisar proses
Alur kerja enkripsi kolom
Gambar berikut menunjukkan alur kerja untuk mengonfigurasi enkripsi kolom untuk suatu database. Untuk informasi lebih lanjut, lihat Konfigurasi enkripsi kolom untuk database.
Mengakses data terenkripsi
Setelah Anda mengonfigurasi enkripsi kolom, ketika akun database dengan izin ciphertext melakukan kueri pada kolom terenkripsi, database hanya mengembalikan ciphertext. Anda kemudian dapat mendekripsi data tersebut di sisi client untuk mendapatkan teks biasa. Proses ini memastikan bahwa data tetap terenkripsi selama transmisi antara client dan database.
Penggunaan client
Alibaba Cloud menyediakan driver client always-confidential untuk Java dan Go. Anda dapat menggunakan akun database dengan ciphertext permission (JDBC decryption) untuk mendekripsi dan mengakses data teks biasa di kolom terenkripsi database target.
|
Bahasa |
Jenis database |
Dokumentasi |
|
Java |
|
Integrasikan EncJDBC (Mendukung dekripsi dengan local key dan KMS key) |
|
Go |
|
Integrasikan driver GoLang (Hanya mendukung dekripsi dengan local key) |