Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for MongoDB:Şeffaf Veri Şifrelemeyi (TDE) Yapılandırın

Son Güncelleme:Oct 14, 2026

Ş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.

  • Key Management Service (KMS) etkinleştirilmiş olmalıdı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.

    Not

    Belirli 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

  1. 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.

  2. Sol gezinme bölmesinde Data Security > TDE öğesine tıklayın.

  3. TDE Status: yanındaki anahtarı açın.

  4. 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.

  5. 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.

  1. 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.

  2. Ş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)" } } })
      Not

      Bu komutta collection_name koleksiyonun 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 collMod ayrıcalığı vardır; örneğin dbOwner veya root rolüne sahip bir hesap.

Yordam

  1. 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.

  2. 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 ok değeri 1 olduğunda komut başarıyla çalışır.

  3. Her düğüme bağlanın ve şifreleme ilerlemesini kontrol etmek için db.serverStatus().wiredTiger.encryptionRewrite komutunu çalıştırın. Tüm düğümlerde pendingIdents değeri 0 olduğ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.

  • "*" belirtirseniz encryption=(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.