Transparent Data Encryption (TDE) melindungi file data instans RDS saat disimpan (at rest) dengan melakukan enkripsi dan dekripsi I/O secara real-time. Akses tidak sah ke penyimpanan dasar diblokir, sehingga data Anda tetap terlindungi meskipun media fisiknya dikompromikan.
TDE tidak dapat dinonaktifkan setelah diaktifkan. Pilih jenis kunci Anda dengan cermat sebelum melanjutkan.
Informasi latar belakang
Untuk informasi lebih lanjut tentang TDE, lihat Prinsip.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Instans RDS yang menjalankan PostgreSQL 10 atau versi yang lebih baru
-
Instans RDS yang menggunakan cloud disk
-
Versi mesin minor 20221030 atau lebih baru — lihat Perbarui versi mesin minor
-
Semua instans read-only yang tersambung memenuhi persyaratan yang sama
-
Akun Alibaba Cloud yang telah memberikan otorisasi kepada ApsaraDB RDS untuk mengakses Key Management Service (KMS) — lihat Otorisasi ApsaraDB RDS untuk mengakses KMS
-
KMS diaktifkan (Anda dapat mengaktifkannya saat mengaktifkan TDE)
Catatan penggunaan
-
Pastikan versi mesin minor dari instans RDS primary dan instans RDS read-only adalah 20221030 atau lebih baru. Jika tidak, TDE tidak dapat diaktifkan.
-
Setelah TDE diaktifkan, performa database mungkin terpengaruh pada skenario workload yang bergantung pada I/O.
-
Jika TDE diaktifkan untuk instans RDS primary, replikasi streaming antara instans RDS primary dan instans secondary yang dikelola sendiri tidak didukung.
-
Pastikan KMS selalu diaktifkan dan berjalan. Jika KMS tidak tersedia, cloud disk instans RDS Anda tidak dapat didekripsi dan instans menjadi tidak tersedia.
-
Jika Anda menggunakan kunci kustom, perhatikan hal-hal berikut:
-
Menonaktifkan atau menghapus kunci kustom menyebabkan instans RDS tidak berjalan sebagaimana mestinya. Operasi yang terpengaruh mencakup pembuatan Snapshot, pemulihan data dari Snapshot, dan pembangunan ulang instans RDS secondary.
-
Me-restart instans RDS setelah menonaktifkan kunci kustom membuat instans tidak tersedia.
-
Anda harus menggunakan Akun Alibaba Cloud atau akun dengan kebijakan AliyunSTSAssumeRoleAccess yang dilampirkan.
-
Untuk informasi lebih lanjut tentang KMS, lihat Apa itu KMS?
Pilih jenis kunci
TDE menggunakan key encryption key (KEK) untuk melindungi kunci enkripsi data Anda. Dua jenis kunci tersedia:
| Kunci yang dihasilkan secara otomatis | Kunci kustom yang sudah ada | |
|---|---|---|
| Sumber kunci | Kunci layanan yang disediakan oleh KMS | Customer master key (CMK) yang Anda unggah ke KMS |
| Gunakan saat | Anda menginginkan beban operasional minimal | Anda perlu mengontrol akses kunci karena alasan kepatuhan atau kebijakan keamanan |
| Risiko | Tidak ada risiko operasional tambahan | Menonaktifkan atau menghapus kunci menyebabkan instans tidak tersedia |
Jika Anda belum memiliki kunci kustom, buat satu di Konsol KMS sebelum mengaktifkan TDE — lihat Buat CMK.
Aktifkan TDE
-
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS Anda berada, lalu klik ID instans tersebut.
-
Di panel navigasi kiri, klik Data Security.
-
Di tab TDE, aktifkan TDE Status.
-
Di kotak dialog, pilih jenis kunci dan klik OK:
-
Use Automatically Generated Key: menggunakan kunci layanan yang disediakan oleh KMS sebagai KEK.
-
Use Existing Custom Key: menggunakan CMK yang Anda unggah ke KMS. Jika Anda belum memiliki kunci kustom, klik go to the KMS console untuk membuatnya dan mengimpor bahan kunci Anda.
-
Ganti kunci
-
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS Anda berada, lalu klik ID instans tersebut.
-
Di panel navigasi kiri, klik Data Security.
-
Di tab TDE, klik Replace key di sebelah kanan TDE Status.
-
Di kotak dialog, pilih Use Automatically Generated Key atau Use Existing Custom Key, lalu klik OK.
Enkripsi atau dekripsi tabel dan indeks
Setelah TDE diaktifkan, Anda dapat mengontrol tabel dan indeks mana yang dienkripsi pada tingkat objek.
Operasi enkripsi dan dekripsi dapat menyebabkan penurunan performa. Pilih cakupan enkripsi yang sesuai berdasarkan workload Anda.
Enkripsi tabel dan indeks
Tetapkan default global (PostgreSQL 13, 14, dan 15 saja)
Tetapkan parameter rds_default_table_encryption ke on di Konsol ApsaraDB RDS untuk mengenkripsi semua tabel dan indeks baru secara default. Mengubah parameter ini dari on ke off hanya memengaruhi objek baru — tabel dan indeks terenkripsi yang sudah ada tidak terpengaruh.
Jika parameter tersebut tidak muncul di konsol, perbarui versi mesin minor Anda ke versi terbaru dan coba lagi. Lihat Ubah parameter instans ApsaraDB RDS untuk PostgreSQL.
Mengenkripsi tabel dan indeks secara terpisah
-- Buat tabel terenkripsi
CREATE TABLE <tablename> WITH (encryption=on);
-- Enkripsi tabel yang sudah ada
ALTER TABLE <tablename> SET (encryption=on);
-- Buat indeks terenkripsi
CREATE INDEX <indexname> ... WITH (encryption=on);
-- Enkripsi indeks yang sudah ada
ALTER INDEX <indexname> SET (encryption=on);
Jenis indeks berikut mendukung enkripsi: B-tree, hash, SP-GiST, GIN, GiST, dan BRIN.
Dekripsi tabel dan indeks
Pernyataan berikut memicu penulisan ulang penuh tabel atau indeks, mirip dengan VACUUM FULL. Jalankan selama jam sepi.
-- Dekripsi tabel
ALTER TABLE <tablename> SET (encryption=off);
-- Dekripsi indeks
ALTER INDEX <indexname> SET(encryption=off);
Lihat status enkripsi
SELECT relname, reloptions FROM pg_class WHERE relname IN ('<tablename>', '<indexname>');
FAQ
Apakah saya masih dapat menggunakan alat database seperti pgAdmin setelah mengaktifkan TDE?
Ya. Alat database umum seperti pgAdmin tetap dapat digunakan setelah TDE diaktifkan.
Apakah saya dapat melakukan migrasi data dari instans RDS saya ke instans lain setelah mengaktifkan TDE?
Ya. TDE tidak memblokir migrasi data antar instans RDS.
Data saya tampak sebagai teks biasa setelah mengaktifkan TDE — apakah ada yang salah?
Tidak. TDE mengenkripsi data di disk (ciphertext), tetapi mendekripsinya secara otomatis saat memuat data ke memori untuk kueri. Yang Anda lihat dalam hasil kueri adalah teks biasa yang telah didekripsi — ini adalah perilaku yang diharapkan. TDE juga mengenkripsi file backup; untuk memulihkan backup terenkripsi ke mesin lokal, dekripsi file backup tersebut terlebih dahulu.
Langkah selanjutnya
-
Gunakan ekstensi rds_tde_utils untuk mengenkripsi dan mendekripsi beberapa objek sekaligus
-
Enkripsi SSL — enkripsi koneksi ke instans RDS Anda
-
Database always-confidential — enkripsi kolom data sensitif sehingga data dikirim, diproses, dan disimpan dalam bentuk ciphertext
Referensi API
| Operasi | Deskripsi |
|---|---|
| ModifyDBInstanceTDE | Mengaktifkan TDE untuk sebuah instans |