Transparent Data Encryption (TDE) mengenkripsi dan mendekripsi I/O data secara real time. TDE mengenkripsi data sebelum menuliskannya ke disk dan mendekripsi data saat membacanya ke memori. TDE tidak menambah ukuran file data dan tidak memerlukan perubahan pada aplikasi Anda. Untuk meningkatkan keamanan data, Anda dapat mengaktifkan TDE di Konsol guna mengenkripsi data instans Anda.
Prasyarat
Arsitektur: Instans set replika atau instans kluster sharded.
Mesin penyimpanan: WiredTiger.
Jenis penyimpanan: Local SSD.
Versi database: 4.0 atau 4.2. Jika versi database lebih lama, Anda dapat melakukan upgrade versi utama database.
CatatanSebelum mengaktifkan TDE, Anda dapat membuat instans Pay-As-You-Go versi 4.0 atau 4.2 untuk menguji kompatibilitas aplikasi. Setelah pengujian selesai, Anda dapat melepas instans tersebut.
Jika instans Anda tidak memenuhi persyaratan arsitektur atau mesin penyimpanan, Anda dapat mengubah konfigurasi instans.
Dampak
Mengaktifkan TDE akan me-restart instans, menyebabkan gangguan koneksi sementara. Kami menyarankan agar operasi ini dilakukan selama jam sepi dan memastikan aplikasi Anda memiliki mekanisme penyambungan ulang.
Setelah TDE diaktifkan, utilisasi CPU instans akan meningkat.
Koleksi yang dienkripsi tidak dapat dipulihkan ke database yang dikelola sendiri menggunakan backup fisik. Untuk pemulihan semacam itu, gunakan cadangan logis. Untuk informasi selengkapnya, lihat Memulihkan data ke database yang dikelola sendiri dengan menggunakan cadangan logis.
Pertimbangan
Setelah diaktifkan, TDE tidak dapat dinonaktifkan.
Instans yang telah dilepas dengan TDE aktif tidak dapat dipulihkan dari Recycle Bin.
TDE diaktifkan pada tingkat instans dan hanya mendukung enkripsi tingkat koleksi. Untuk enkripsi tingkat field, lihat Client-Side Field Level Encryption (hanya tersedia untuk instans MongoDB 4.2).
CatatanJika Anda memiliki kebutuhan bisnis khusus, Anda dapat menentukan agar suatu koleksi tidak dienkripsi saat membuatnya. Untuk informasi selengkapnya, lihat Tentukan agar suatu koleksi tidak dienkripsi.
Setelah TDE diaktifkan, hanya koleksi baru yang akan dienkripsi. Koleksi yang sudah ada tetap tidak terenkripsi.
Key Management Service (KMS) menghasilkan dan mengelola kunci yang digunakan oleh TDE. ApsaraDB for MongoDB tidak menyediakan kunci atau Sertifikat yang diperlukan untuk enkripsi.
CatatanSaat ini, hanya kunci KMS default yang didukung.
Rotasi kunci tidak didukung. Untuk mengubah kunci, Anda harus memigrasikan data ke instans baru dengan menggunakan DTS. Untuk informasi lebih lanjut tentang migrasi data, lihat Migrasikan data antar instans ApsaraDB for MongoDB.
Prosedur
Buka halaman Replica Set Instances atau Sharded Cluster Instances. Di bilah navigasi atas, pilih kelompok sumber daya dan Wilayah tempat instans yang diinginkan berada. Lalu, temukan instans tersebut dan klik ID instans.
Di panel navigasi sebelah kiri halaman detail instans, pilih .
Nyalakan sakelar di sebelah kanan TDE Status:.
Di kotak dialog Enable TDE, pilih metode pembuatan kunci.
Use Automatically Generated Key: Gunakan kunci yang dihasilkan sistem.
Use Custom Key: Pilih kunci dari daftar drop-down. Jika kunci yang ingin Anda gunakan belum tersedia, Anda dapat membuatnya terlebih dahulu lalu memilihnya. Untuk informasi selengkapnya tentang cara membuat kunci, lihat Create a key.
Klik OK.
Status instans berubah menjadi Updating TDE. Operasi selesai ketika status kembali menjadi Running.
Menyisihkan koleksi dari enkripsi
Setelah TDE diaktifkan, semua koleksi yang baru dibuat akan dienkripsi secara default. Untuk membuat koleksi tanpa enkripsi, ikuti langkah-langkah berikut.
Hubungkan ke database menggunakan mongo shell. Untuk informasi selengkapnya, lihat Connect to a replica set instance atau Connect to a sharded cluster instance.
Jalankan perintah berikut untuk membuat koleksi yang tidak dienkripsi.
Sintaks:
db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })Contoh:
db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })