Kami merekomendasikan penggunaan fitur Transparent Data Encryption (TDE) untuk instans ApsaraDB RDS for SQL Server dalam skenario seperti kepatuhan keamanan atau enkripsi data saat diam. Topik ini menjelaskan cara menggunakan TDE untuk melakukan enkripsi dan dekripsi I/O secara real-time pada file data, memastikan bahwa data sensitif dienkripsi sebelum ditulis ke disk dan didekripsi ketika dibaca dari disk ke memori. Hal ini mencegah penyerang menghindari database untuk membaca informasi sensitif dari penyimpanan serta meningkatkan keamanan data sensitif dalam database. Setelah TDE diaktifkan untuk instans RDS Anda, ukuran file data dalam instans tidak bertambah. Anda dapat menggunakan TDE tanpa perlu mengubah konfigurasi aplikasi Anda.
Cara kerja TDE
Bagian ini menjelaskan cara kerja TDE di berbagai tingkat dalam sistem komputer.
Lapisan sistem operasi
Microsoft Data Protection API (DPAPI) adalah API bawaan dalam sistem operasi Windows yang digunakan untuk mengenkripsi atau mendekripsi data. DPAPI membebaskan Anda dari fokus pada kunci enkripsi dan algoritma.
DPAPI merupakan akar dari hierarki TDE. DPAPI melindungi hierarki kunci pada lapisan sistem operasi dan Service Master Key (SMK) dari instans database.
Lapisan instans SQL Server
Dalam SQL Server, SMK adalah kunci enkripsi tingkat lanjut yang digunakan oleh mesin database. SMK adalah kunci root untuk mesin SQL Server dan dihasilkan ketika instans SQL Server dibuat. SMK digunakan untuk mengenkripsi kunci tingkat rendah dan data.
SMK dilindungi oleh DPAPI dan digunakan untuk mengenkripsi Database Master Key (DMK).
Lapisan database
TDE dilakukan pada database Master dan User database di lapisan database.
Database Master
Setelah Anda mengaktifkan TDE untuk instans RDS Anda, DMK dibuat di database Master dan digunakan untuk membuat sertifikat. DMK dan sertifikat disimpan di database Master.
DMK adalah kunci simetris yang digunakan untuk mengenkripsi informasi sensitif dalam database. DMK dienkripsi oleh SMK dan digunakan untuk mengenkripsi sertifikat. Sertifikat di database Master digunakan untuk mengenkripsi Database Encryption Key (DEK) di User database.
User database
DEK adalah kunci enkripsi yang dibuat dan disimpan di User database dan hanya bekerja bersama dengan TDE.
DEK dienkripsi oleh sertifikat di database Master. Data di User database tempat DEK disimpan dienkripsi oleh DEK. DEK dienkripsi oleh sertifikat dan disimpan di User database. Jika DEK tidak dienkripsi, DEK disimpan di memori. Ketika data ditulis ke atau dibaca dari database, SQL Server menggunakan kunci privat dari sertifikat untuk mendekripsi DEK yang terenkripsi dan memuat DEK yang didekripsi ke memori untuk mengenkripsi atau mendekripsi file data secara real-time. Proses ini transparan bagi aplikasi dan pengguna.
Jika sertifikat untuk TDE tidak dihasilkan untuk database Master, DEK tidak dapat didekripsi. Akibatnya, Anda tidak dapat memulihkan file cadangan database yang memiliki TDE diaktifkan atau menambahkan database ke instans database.
Prasyarat
Instans RDS memenuhi kondisi berikut:
Instans RDS termasuk dalam keluarga instans umum atau khusus. Keluarga instans bersama tidak didukung. Untuk informasi lebih lanjut, lihat Keluarga Instans.
Metode penagihan untuk instans RDS adalah berlangganan atau bayar sesuai pemakaian. Instans serverless tidak didukung. Untuk informasi lebih lanjut, lihat Instans Serverless ApsaraDB RDS untuk SQL Server.
Instans RDS menjalankan salah satu versi SQL Server berikut: SQL Server 2019 SE, SQL Server 2022 SE, dan SQL Server EE.
CatatanInstans RDS Baca-saja tidak mendukung fitur ini.
Jika Anda ingin menggunakan Bring Your Own Keys (BYOKs), peroleh sertifikat, kunci privat, dan kata sandi yang digunakan untuk enkripsi dan dekripsi terlebih dahulu.
Akun Alibaba Cloud Anda digunakan untuk mengotorisasi instans RDS mengakses Key Management Service (KMS). Untuk informasi lebih lanjut, lihat Otorisasi ApsaraDB RDS untuk mengakses KMS.
Catatan Penggunaan
Jika Anda menggunakan kunci layanan yang disediakan oleh Alibaba Cloud untuk instans RDS dan mengaktifkan TDE untuk instans RDS, Anda tidak dapat menggunakan file cadangan yang dihasilkan setelah fitur TDE diaktifkan untuk memulihkan data instans RDS ke perangkat lokal.
Setelah TDE diaktifkan, kinerja database Anda terpengaruh.
Pengaruh pada kinerja: Kinerja keseluruhan berkurang sekitar 3% hingga 5% berdasarkan dokumentasi resmi Microsoft.
Pengaruh pada data dalam memori: Jika sebagian besar data yang diakses disimpan di memori, kinerja sedikit terpengaruh.
Pengaruh pada pemanfaatan CPU dan kinerja I/O: Melakukan TDE adalah proses intensif CPU dan melibatkan operasi I/O.
Jika beban I/O pada server atau aplikasi rendah dan pemanfaatan CPU rendah, kinerja sedikit terpengaruh. Jika pemanfaatan CPU pada aplikasi tinggi, kerugian kinerja sekitar 28% terjadi.
Jika beban I/O pada server atau aplikasi tinggi tetapi pemanfaatan CPU cukup rendah, kinerja sedikit terpengaruh.
Batasan
Untuk instans RDS dengan TDE diaktifkan:
Anda tidak dapat memperbarui versi mesin minor dari instans tersebut.
Jika instans menggunakan Premium Local SSDs dan menjalankan SQL Server 2008 R2, Anda tidak dapat memutakhirkan versi mesin utama instans dari SQL Server 2008 R2 ke SQL Server 2012 atau SQL Server 2016.
Jika TDE diaktifkan untuk instans RDS, file cadangan instans dapat digunakan untuk memulihkan data instans ke instans RDS baru. Namun, Anda tidak dapat menggunakan file cadangan instans RDS untuk membangun ulang instans RDS atau memulihkan data instans ke instans RDS lain yang sudah ada.
Aktifkan TDE
Buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Kemudian, temukan instans RDS dan klik ID instans tersebut.
Di panel navigasi sisi kiri, klik Data Security.
Di tab TDE, nyalakan saklar di sebelah Disabled.
CatatanAnda hanya dapat mengaktifkan TDE jika instans RDS Anda memenuhi semua kondisi yang ditentukan dalam bagian "Prasyarat".
Di kotak dialog yang muncul, pilih jenis kunci dan klik OK.
Use Automatically Generated Key
Pilih database dari bagian Database Tidak Dipilih, klik ikon
untuk memindahkan database yang dipilih ke bagian Database Dipilih, lalu klik Confirm.
Encrypt with own SQL Server key
Unggah file sertifikat dan file kunci privat ke Bucket OSS Anda. Untuk informasi lebih lanjut, lihat Unggah objek.

Klik Next step dan konfigurasikan parameter berikut.

Parameter
Deskripsi
OSS Bucket
Bucket OSS tempat file sertifikat dan file kunci privat disimpan.
Certificate
File sertifikat yang Anda unggah ke Bucket OSS.
Private key
File kunci privat yang Anda unggah ke Bucket OSS.
Password
Kata sandi kunci SQL Server Anda sendiri.
Klik Next step untuk menuju ke langkah Authorization database.
Pilih database dari bagian Database Tidak Dipilih, klik ikon
untuk memindahkan database yang dipilih ke bagian Database Dipilih, lalu klik Confirm.
Nonaktifkan TDE
Jika Anda ingin menonaktifkan TDE untuk satu atau beberapa database, Anda dapat menghapus database tersebut dari bagian Selected Databases.
Jika Anda ingin menonaktifkan TDE untuk instans RDS, Anda harus menghapus semua database pada instans RDS dari bagian Selected Databases. Kemudian, sistem menonaktifkan TDE untuk instans RDS.
Buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Kemudian, temukan instans RDS dan klik ID instans tersebut.
Di panel navigasi sisi kiri, klik Data Security.
Klik tab TDE. Lalu, klik TDE Settings.
Pilih database dari bagian Selected Databases, klik ikon
untuk memindahkan database yang dipilih ke bagian Database Tidak Dipilih, lalu klik OK.
Saat Anda menonaktifkan TDE, beberapa operasi database terlibat, seperti menunggu cadangan terakhir selesai, mendekripsi data, mencatat log, dan memperbarui metadata. Dekripsi data adalah operasi intensif sumber daya dan mengonsumsi sejumlah besar sumber daya CPU, memori, dan I/O. Waktu yang diperlukan untuk dekripsi data sebanding dengan volume data database. Jika Anda ingin menonaktifkan TDE untuk database yang berisi sejumlah besar data, waktu yang lama diperlukan. Sebagai contoh, jika database berisi sekitar 200 GB data, mungkin memerlukan lebih dari 40 menit untuk menonaktifkan TDE.
Jika Anda ingin melihat kemajuan dekripsi data setelah TDE dinonaktifkan, jalankan pernyataan SQL berikut:
SELECT
db_name(database_id) AS DatabaseName,
encryption_state,
percent_complete
FROM
sys.dm_database_encryption_keys;Referensi
Untuk informasi lebih lanjut tentang cara mengaktifkan TDE dengan memanggil operasi API, lihat ModifyDBInstanceTDE.
Untuk informasi lebih lanjut tentang cara mengenkripsi koneksi ke instans RDS menggunakan enkripsi SSL, lihat Konfigurasi fitur enkripsi SSL.