Şeffaf Veri Şifreleme (TDE), verileri diske yazmadan önce şifreler ve belleğe okurken şifresini çözer. Bu işlem dosya boyutunu artırmaz ve uygulama değişikliği gerektirmez. Örnek verilerini korumak için ApsaraDB for MongoDB konsolunda TDE'yi etkinleştirebilirsiniz.
Ön Koşullar
-
Örnek depolama türü ve mimarisi aşağıdaki gereksinimleri karşılamalıdır:
Yerel diskli örnekler: Çoğaltma kümesi ve parçalı kümeyi destekler; veritabanı sürümü 4,0 veya 4,2 olmalıdır.
Bulut diskli örnekler: Çoğaltma kümesini destekler; veritabanı sürümü 4,2 ile 8,3 arasında (tüm sürümler) olmalıdır.
Örnek, WiredTiger depolama motorunu kullanır.
-
Bulut diskli örneğin alt sürümü aşağıdakilerden daha eski olmamalıdır:
Ana sürüm
Minimum alt sürüm
4,2
4,0,36
4,4
5,0,22
5,0
6,0,23
6,0
7,0,24
7,0
8,0,16
8,0
9,0,9
8,3
9,3,1ÖnemliÖrneğinizin alt sürümü gereken sürümden daha eskiyse TDE'yi etkinleştirmeden önce alt sürümü yükseltin. Daha fazla bilgi için bkz. Örnek yapılandırmalarını değiştirin.
Örneğiniz bu gereksinimleri karşılamıyorsa Örnek yapılandırmalarını değiştirin.
Etkiler
TDE'yi etkinleştirmek örneği yeniden başlatır ve geçici bir bağlantı kesintisine neden olur. Bu işlemi yoğun olmayan saatlerde yapın ve uygulamanızın yeniden bağlantı mekanizması bulunduğundan emin olun.
TDE CPU kullanımını artırır.
Şifrelenmiş koleksiyonları fiziksel yedeklemeler kullanarak kendi kendine yönetilen bir veritabanına geri yükleyemezsiniz. Bunun yerine mantıksal yedekleme kullanın. Mantıksal yedekleme kullanarak verileri kendi kendine yönetilen bir veritabanına geri yükleme.
Dikkat Edilmesi Gerekenler
TDE etkinleştirildikten sonra devre dışı bırakılamaz.
Silinmiş ve TDE etkinleştirilmiş bir örneği Recycle Bin üzerinden geri yükleyemezsiniz.
-
TDE örnek düzeyinde şifreleme uygular ve yalnızca koleksiyonlar için geçerlidir. Belirli alanları şifrelemek için Client-Side Field-Level Encryption (yalnızca MongoDB 4,2) kullanın.
NotBelirli koleksiyonlar için şifrelemeyi atlamak üzere Bir koleksiyonu şifrelemenin dışında bırakma bölümüne bakın.
TDE yalnızca etkinleştirmeden sonra oluşturulan yeni koleksiyonları şifreler. Mevcut koleksiyonlar şifrelenmemiş olarak kalır.
Key Management Service (KMS), TDE anahtarlarını oluşturur ve yönetir. ApsaraDB for MongoDB şifreleme anahtarları veya sertifikaları sağlamaz. Key Management Service nedir?.
TDE etkinleştirildikten sonra şifreleme anahtarı değiştirilemez. Farklı bir anahtar kullanmak için Data Transmission Service (DTS) kullanarak verileri yeni anahtarla yapılandırılmış yeni bir örneğe taşıyın. ApsaraDB for MongoDB örnekleri arasında veri taşıma.
TDE tarafından kullanılan KMS anahtarının her zaman kullanılabilir olduğundan emin olun. Anahtar devre dışı bırakılırsa, silinirse veya süresi dolarsa örnek kilitlenir ve kullanılamaz hale gelir; mevcut yedeklemeler kurtarma için kullanılamaz.
Yordam
Replica Set Instances veya Sharded Cluster Instances sayfasına gidin. Üst gezinme çubuğunda bir kaynak grubu ve bölge seçin, ardından hedef örneğin kimliğine tıklayın.
Sol gezinme bölmesinde öğesine tıklayın.
TDE Status: yanındaki anahtarı açın.
-
Enable TDE iletişim kutusunda ihtiyaçlarınıza göre bir anahtar oluşturma yöntemi seçin.
Use Automatically Generated Key: Sistem otomatik olarak bir anahtar oluşturur.
Use Custom Key: Açılır listeden mevcut bir anahtar seçin. Kullanmak istediğiniz anahtar mevcut değilse öncelikle bir anahtar oluşturmanız gerekir. Talimatlar için bkz. Anahtar oluşturma.
-
OK düğmesine tıklayın.
Örnek Updating TDE durumuna girer. Durum Running olarak değiştiğinde işlem tamamlanır.
Bir Koleksiyonu Şifrelemenin Dışında Bırakma
TDE etkinleştirildikten sonra tüm yeni koleksiyonlar varsayılan olarak şifrelenir. Şifrelenmemiş bir koleksiyon oluşturmak için oluşturma sırasında depolama motoru yapılandırmasını belirtin.
Mongo shell kullanarak veritabanına bağlanın: Çoğaltma kümesi örneğine bağlanma veya Parçalı küme örneğine bağlanma.
-
Şifrelenmemiş bir koleksiyon oluşturmak için aşağıdaki komutu çalıştırın.
-
Sözdizimi:
db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })NotBu komutta
collection_namekoleksiyonun adıdır. -
Örnek:
db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })
-
Mevcut Koleksiyonları Şifreleme
TDE etkinleştirilmeden önce var olan koleksiyonlar otomatik olarak şifrelenmez. Mevcut bir koleksiyonu ve dizinlerini şifreli depolamaya dönüştürmek için encryptExistingCollection komutunu çalıştırın.
Ön Koşullar
Örnek için TDE etkinleştirilmiştir.
Örnek, MongoDB 8,0 çalıştıran ve alt sürümü 9,0,14 veya daha yeni olan bulut disk tabanlı bir çoğaltma kümesi örneğidir.
Komutu çalıştıran hesabın hedef koleksiyon üzerinde
collModayrıcalığı vardır; örneğindbOwnerveyarootrolüne sahip bir hesap.
Yordam
Mongo Shell kullanarak örneğin birincil düğümüne bağlanın. Komutu yalnızca birincil düğümde bir kez çalıştırın. İkincil düğümler şifreleme işlemini otomatik senkronizasyon yoluyla tamamlar.
-
Hedef veritabanına geçin ve aşağıdaki komutlardan birini çalıştırın:
-
Belirli bir koleksiyonu şifreleyin:
db.runCommand({ encryptExistingCollection: "<collection_name>" }) -
Mevcut veritabanındaki tüm koleksiyonları şifreleyin:
db.runCommand({ encryptExistingCollection: "*" })
Yanıttaki
okdeğeri1olduğunda komut başarıyla çalışır. -
Her düğüme bağlanın ve şifreleme ilerlemesini kontrol etmek için
db.serverStatus().wiredTiger.encryptionRewritekomutunu çalıştırın. Tüm düğümlerdependingIdentsdeğeri0olduğunda tüm mevcut veriler şifrelenmiş demektir.
Etkiler
Komut hedef koleksiyonu kısa süreliğine kilitler. Kilit genellikle milisaniyeler sürer; bu süre zarfında koleksiyona yönelik okuma ve yazma istekleri kısa süre bekler. Yoğun yazma iş yüküne sahip bir örnekte kilit saniyeler sürebilir.
Komut döndükten sonra mevcut veriler arka planda şifrelenir ve iş okuma veya yazma işlemlerini engellemez. İşlem disk G/Ç ve CPU kullanımını artırır. Etkisi koleksiyonda bir kez
compactçalıştırmaya benzer ve süresi koleksiyonun veri hacmiyle orantılıdır.Arka plan şifrelemesi sırasında veri dosyaları geçici olarak büyüyebilir. Hedef koleksiyonun ve dizinlerinin mevcut depolama boyutuna en azından eşit kadar kullanılabilir disk alanı ayırın.
Dikkat Edilmesi Gerekenler
Komutu yoğun olmayan saatlerde çalıştırın.
Bir koleksiyon şifrelendikten sonra şifrelenmemiş duruma geri döndürülemez.
"*"belirtirsenizencryption=(name=none)kullanılarak şifrelenmemiş olarak yapılandırılan koleksiyonlar dahil olmak üzere mevcut veritabanındaki tüm koleksiyonlar şifrelenir. Bu tür koleksiyonların şifrelenmemiş kalmasını sağlamak için koleksiyon adlarını tek tek belirtin ve şifrelemek istediğiniz her koleksiyon için komutu ayrı ayrı çalıştırın.Başarılı bir yanıt yalnızca koleksiyona yazılan yeni verilerin şifrelenmeye başladığını gösterir. Mevcut veriler arka planda işlenmeye devam eder. İşlemin ne zaman tamamlandığını belirlemek için şifreleme ilerlemesini kullanın. Arka plan şifrelemesi sırasında bir düğüm yeniden başlatılırsa veya birincil-ikincil geçişi gerçekleşirse şifreleme otomatik olarak devam eder ve komutu tekrar çalıştırmanız gerekmez.
Komut çalıştırılmadan önce oluşturulan yedeklemeler şifrelenmez.
Komutu görünümlerde veya işlemlerde çalıştıramazsınız.