Şeffaf Veri Şifreleme (TDE), ApsaraDB RDS for SQL Server veritabanlarınızı depolama sırasında şifreleyerek temel depolama birimi güvenliği ihlal edilse bile veri dosyalarını ve yedeklemeleri yetkisiz erişime karşı korur. Bu konuda TDE'nin nasıl çalıştığı, nasıl etkinleştirilip devre dışı bırakılacağı ve TDE ile şifrelenmiş yedeklemelerin yerel bir SQL Server sunucusuna nasıl geri yükleneceği açıklanmaktadır; hem Alibaba Cloud tarafından yönetilen anahtarlar hem de Kendi Anahtarınızı Getirin (BYOK) senaryolarını kapsar.
TDE etkin durumdayken oluşturulan yedekleme dosyaları Veritabanı Şifreleme Anahtarı (DEK) ile şifrelenir. DEK, master veritabanında depolanan bir sertifika tarafından korunur. TDE sertifikası master veritabanında mevcut değilse DEK çözülemez ve etkilenen veritabanının yedekleme dosyalarını geri yükleyemezsiniz. TDE'yi etkinleştirdikten sonra sertifikanızı ve özel anahtarınızı yedekleyin.
TDE nasıl çalışır
TDE, uygulama kodunda veya bağlantı mantığında değişiklik gerektirmeden verileri depolama katmanında korur. Kimlik doğrulaması yapılmış uygulamalar ve kullanıcılar düz metin verilerini her zamanki gibi okur; şifreleme ve şifre çözme işlemleri SQL Server G/Ç yolunda şeffaf bir şekilde gerçekleşir.
TDE çok katmanlı bir anahtar hiyerarşisi kullanır. Her katman, altındaki katmanı şifreler:
OS layer
└── Data Protection API (DPAPI) — Windows built-in API; root of the hierarchy
└── Service Master Key (SMK) — root key for the SQL Server engine; generated at instance creation
└── Database Master Key (DMK) — symmetric key stored in the master database
└── Certificate — stored in the master database; created from the DMK
└── Database Encryption Key (DEK) — stored in the user database; encrypts data files
Master veritabanı DMK'yı ve sertifikayı depolar. Kullanıcı veritabanları, sertifika tarafından şifrelenen DEK'yı depolar. SQL Server veri okuduğunda veya yazdığında, bellekteki DEK'yı çözmek için sertifikanın özel anahtarını kullanır ve ardından veri dosyalarını gerçek zamanlı olarak şifrelemek veya şifresini çözmek için DEK'yı kullanır.
Sertifika master veritabanından eksikse DEK çözülemez. Etkilenen veritabanının yedekleme dosyalarına erişilemez hale gelir.
Performans değerlendirmesi
Resmi Microsoft kıyaslamalarına göre, tipik iş yüklerinde TDE genel veritabanı performansını yaklaşık %3–%5 oranında azaltır. Yüksek CPU kullanımında etki yaklaşık %28'e ulaşabilir.
| Faktör | Etki |
|---|---|
| Bellekteki veriler | Minimal — önbellek havuzunda zaten bulunan veriler her okumada yeniden şifrelenmez |
| CPU | Yüksek — şifreleme/şifre çözme işlemleri her G/Ç yoluna ek yük getirir |
| G/Ç ağırlıklı, düşük CPU iş yükleri | CPU sınırlı iş yüklerine göre daha düşük etki |
Ön koşullar
TDE'yi etkinleştirmeden önce aşağıdaki koşulların karşılandığından emin olun:
RDS örneği general-purpose veya dedicated örnek ailesine aittir. Paylaşılan örnekler desteklenmez. Bkz. Örnek aileleri.
Faturalandırma yöntemi subscription veya pay-as-you-go olmalıdır. Serverless ApsaraDB RDS örnekleri desteklenmez. Bkz. Serverless ApsaraDB RDS for SQL Server örnekleri.
Örnek aşağıdaki SQL Server sürümlerinden birini çalıştırır: SQL Server 2019 SE, SQL Server 2022 SE veya SQL Server EE.
Alibaba Cloud hesabınız, RDS örneğinin Key Management Service (KMS) hizmetine erişmesine izin vermiştir. Bkz. ApsaraDB RDS'in KMS hizmetine erişimini yetkilendirme.
(Yalnızca BYOK) Başlamadan önce sertifika dosyasını, özel anahtar dosyasını ve parolayı edinin.
Salt okunur örnekler TDE'yi desteklemez.
Sınırlamalar
| Sınırlama | Ayrıntılar |
|---|---|
| Alibaba Cloud anahtarıyla yerel geri yükleme | Yedekleme dosyaları doğrudan yerel bir cihaza veri geri yüklemek için kullanılamaz. Geçici çözüm için bkz. Yerele geri yükleme: Alibaba Cloud anahtarı. |
| RDS örneğini yeniden oluşturma | TDE etkin durumdayken yedekleme dosyaları RDS örneğini yeniden oluşturmak için kullanılamaz. Bkz. Bir RDS örneğini yeniden oluşturma. |
| Sürüm yükseltmeleri ve küçük altyapı güncellemeleri | TDE etkin durumdayken, yerel diskli bir RDS örneğini SQL Server 2008 R2'den SQL Server 2012 veya SQL Server 2016'ya yükseltemez veya küçük altyapı sürümünü güncelleyemezsiniz. Bkz. SQL Server 2008 R2'yi yükseltme ve Küçük altyapı sürümünü güncelleme. |
TDE'yi etkinleştirin veya devre dışı bırakın
TDE'yi etkinleştirin
Örnekler sayfasına gidin. Üst gezinme çubuğunda, RDS örneğinin bulunduğu bölgeyi seçin. Örneği bulun ve ID'sine tıklayın.
Sol gezinme bölmesinde Data Security seçeneğine tıklayın.
TDE sekmesinde, Disabled yanındaki anahtarı açın.
İletişim kutusunda bir anahtar türü seçin ve OK seçeneğine tıklayın.
Alibaba Cloud tarafından yönetilen bir anahtar kullanın
Unselected Databases bölümünden veritabanlarını seçin, bunları Selected Databases bölümüne taşımak için
simgesine tıklayın ve ardından Confirm seçeneğine tıklayın.

Kendi SQL Server anahtarınızı kullanın (BYOK)
-
Sertifika dosyasını ve özel anahtar dosyasını bir OSS paketine yükleyin. Bkz. Nesneleri yükleme.

-
Next step seçeneğine tıklayın ve aşağıdaki parametreleri yapılandırın.
Parametre Açıklama OSS Bucket Sertifika ve özel anahtar dosyalarının depolandığı OSS paketi. Certificate OSS paketine yüklenen sertifika dosyası. Private key OSS paketine yüklenen özel anahtar dosyası. Password SQL Server anahtarınızın parolası. 
-
Authorization database adımına ilerlemek için Next step seçeneğine tıklayın. Unselected Databases bölümünden veritabanlarını seçin, bunları Selected Databases bölümüne taşımak için
simgesine tıklayın ve ardından Confirm seçeneğine tıklayın.
TDE'yi devre dışı bırakın
TDE'yi devre dışı bırakmak, seçilen veritabanlarındaki tüm verilerin şifresini çözer. Şifre çözme işlemi kaynak yoğundur; önemli miktarda CPU, bellek ve G/Ç tüketir ve gereken süre veri hacmiyle orantılıdır. Yaklaşık 200 GB veri içeren bir veritabanı için TDE'yi devre dışı bırakmak 40 dakikadan fazla sürebilir.
Bir veya daha fazla veritabanı için TDE'yi devre dışı bırakmak amacıyla bu veritabanlarını Selected Databases bölümünden kaldırın. Tüm RDS örneği için TDE'yi devre dışı bırakmak üzere tüm veritabanlarını Selected Databases bölümünden kaldırın.
Örnekler sayfasına gidin. Üst gezinme çubuğunda, RDS örneğinin bulunduğu bölgeyi seçin. Örneği bulun ve ID'sine tıklayın.
Sol gezinme bölmesinde Data Security seçeneğine tıklayın.
TDE sekmesinde TDE Settings seçeneğine tıklayın.
-
Selected Databases bölümünden veritabanlarını seçin, bunları Unselected Databases bölümüne taşımak için
simgesine tıklayın ve ardından OK seçeneğine tıklayın.
Şifre çözme ilerlemesini izleyin
TDE'yi devre dışı bıraktıktan sonra şifre çözme ilerlemesini kontrol etmek için aşağıdaki sorguyu çalıştırın:
SELECT
db_name(database_id) AS DatabaseName,
encryption_state,
percent_complete
FROM
sys.dm_database_encryption_keys;
Yerele geri yükleme: Alibaba Cloud anahtarı
TDE, Alibaba Cloud tarafından yönetilen bir hizmet anahtarıyla etkinleştirildiyse bu prosedürü kullanın. Hizmet anahtarı Alibaba Cloud tarafından yönetildiği ve dışa aktarılamadığı için şifrelenmiş yedekleme dosyaları doğrudan kullanılamaz. Geçici çözüm, önce TDE'yi devre dışı bırakmak ve ardından yeni bir tam yedekleme almaktır.
Adım 1: TDE'yi devre dışı bırakın
Tüm veritabanlarını Selected Databases bölümünden kaldırmak için TDE'yi devre dışı bırakın bölümündeki adımları izleyin.
TDE'yi devre dışı bıraktıktan sonra bazı şifrelenmiş işlem günlükleri hala mevcut olabilir. Yedeklemeyi yalnızca sonraki adımdaki tam yedeklemeyi tamamladıktan sonra indirin.
Adım 2: Tam yedekleme alın
TDE devre dışı bırakıldıktan sonra tam bir yedekleme alın. Ayrıntılar için bkz. Manuel yedeklemeleri yapılandırma.
Manuel yedekleme oluştururken tüm RDS örneğini veya belirli veritabanlarını yedekleyebilirsiniz. Belirli veritabanlarını yedeklemek için fiziksel yedekleme yöntemi gerekir.
Adım 3: Yedeklemeyi indirin ve verileri geri yükleyin
Backup and Restoration sayfasında en son tam yedekleme dosyasını indirin. İndirilen paketteki .bak dosyasını kullanarak verileri yerel SQL Server sunucunuza geri yükleyin. Bkz. Veri yedekleme dosyalarını ve günlük yedekleme dosyalarını indirme.
Yerele geri yükleme: BYOK
TDE, kendi SQL Server anahtarınızla (BYOK) etkinleştirildiyse şifrelenmiş yedeği kendi sertifikanız ve özel anahtarınızı kullanarak yerel bir SQL Server sunucusuna geri yükleyebilirsiniz.
Bunun yerine, devre dışı bırakıp sonra yedekleme yaklaşımını kullanarak Alibaba Cloud anahtarı prosedürünü de kullanabilirsiniz.
Aşağıdaki deyimleri çalıştırmadan önce bir SQL Server istemcisi kullanarak RDS örneğinize bağlanın. Bkz. Bir ApsaraDB RDS for SQL Server örneğine bağlanma .
Adım 1: Bir ana şifreleme anahtarı oluşturun
RDS örneğinizin master veritabanında bir ana şifreleme anahtarı (MEK) oluşturmak için aşağıdaki deyimi çalıştırın. MEK zaten varsa 2. Adıma geçin.
USE master;
GO
IF NOT EXISTS (
SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101
)
BEGIN
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<your-mek-password>'; -- Replace with your custom password.
END;
Parola, kendi yönetiminizdeki SQL Server veritabanının oluşturulduğu sunucuda MEK oluşturmak için kullanılan paroladan farklı olabilir.
Adım 2: BYOK dosyalarınızdan bir sertifika oluşturun
RDS örneğinde TDE'yi etkinleştirirken kullanılan sertifikayı ve özel anahtarı içe aktarın.
USE master;
GO
CREATE CERTIFICATE TDE_Certificate
FROM FILE = 'C:\cert\tde_cert.cer' -- Replace with the actual path to your certificate file.
WITH PRIVATE KEY (
FILE = 'C:\cert\tde_privatekey.pvk', -- Replace with the actual path to your private key file.
DECRYPTION BY PASSWORD = '<your-tde-password>' -- Replace with the password used when enabling TDE.
);
| Yer Tutucu | Açıklama |
|---|---|
<your-mek-password> |
Yerel sunucudaki MEK'yı korumak için bir parola. |
C:\cert\tde_cert.cer |
TDE'yi etkinleştirirken kullanılan sertifika dosyasının yolu. |
C:\cert\tde_privatekey.pvk |
TDE'yi etkinleştirirken kullanılan özel anahtar dosyasının yolu. |
<your-tde-password> |
BYOK ile TDE'yi etkinleştirirken belirtilen parola. |
Adım 3: Yedeklemeyi indirin ve verileri geri yükleyin
RDS örneğinin Backup and Restoration sayfasında gerekli yedekleme setini bulun, indirin ve .bak dosyasını kullanarak verileri yerel SQL Server sunucusuna geri yükleyin. Bkz. Veri yedekleme dosyalarını ve günlük yedekleme dosyalarını indirme.
Sürüm uyumluluğu: Geri yükleme The media family on device '<backup file name>' is incorrectly formed. SQL Server cannot process this media family. hatasıyla başarısız olursa, yerel SQL Server küçük altyapı sürümü RDS örneği sürümünden daha eskidir. Bu sorunu çözmek için yerel veritabanının büyük ve küçük altyapı sürümlerinin RDS örneğiyle eşleştiğinden emin olun. Konsoldaki örneğin Basic Information sayfasında altyapı sürümünü kontrol edin. Ayrıntılar için bkz. KB5014298.
Sonraki adımlar
ApsaraDB RDS for SQL Server'da bulunan diğer veri şifreleme seçenekleri için bkz. Veri güvenliği ve şifreleme.