Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Arc tarafından etkinleştirilen bir SQL Yönetilen Örneği üzerinde atıl saydam veri şifrelemesini (TDE) etkinleştirme ve devre dışı bırakma işlemleri açıklanmaktadır. Bu makalede, yönetilen örnek terimi, Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği dağıtımını ifade eder ve TDE'nin etkinleştirilmesi/devre dışı bırakılması, yönetilen örnekte çalışan tüm veritabanlarını kapsar.
TDE hakkında daha fazla bilgi için bkz . Saydam veri şifrelemesi.
TDE özelliğini açmak aşağıdakileri yapar:
- Tüm mevcut veritabanları artık otomatik olarak şifrelenecek.
- Yeni oluşturulan tüm veritabanları otomatik olarak şifrelenir.
Not
Önizleme özelliği olarak, bu makalede sunulan teknoloji Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'na tabidir.
Önkoşullar
Bu makaleye devam etmeden önce Azure Arc kaynağı tarafından etkinleştirilmiş bir SQL Yönetilen Örneği oluşturmanız ve buna bağlanmanız gerekir.
- Azure Arc ile etkinleştirilen bir SQL Yönetilen Örneği oluşturma
- Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneğine bağlan
Sınırlamalar
Otomatik TDE'yi etkinleştirdiğinizde aşağıdaki sınırlamalar geçerlidir:
- Yalnızca Genel Amaçlı Katman desteklenir.
- Yük devretme grupları desteklenmez.
Azure CLI ile TDE etkinleştirilmiş bir yönetilen örnek oluşturun
Aşağıdaki örnek, Azure Arc tarafından etkinleştirilen, tek bir replika ve TDE etkinleştirilmiş bir SQL Yönetilen Örneği oluşturur:
az sql mi-arc create --name sqlmi-tde --k8s-namespace arc --tde-mode ServiceManaged --use-k8s
Yönetilen örnekte TDE'yi açma
TDE'nin Arc özellikli SQL Yönetilen Örneği'nde etkinleştirilmesiyle, veri hizmeti otomatik olarak aşağıdaki görevleri yapar:
- Hizmet tarafından yönetilen veritabanı ana anahtarını
masterveritabanına ekler. - Hizmet tarafından yönetilen sertifika koruyucusunu ekler.
- Yönetilen örnekteki tüm veritabanlarına ilişkili Veritabanı Şifreleme Anahtarlarını (DEK) ekler.
- Yönetilen örnekteki tüm veritabanlarında şifrelemeyi etkinleştirir.
Azure Arc TDE tarafından etkinleştirilen SQL Yönetilen Örneği iki moddan birinde ayarlayabilirsiniz:
- Hizmet yönetimli
- Müşteri tarafından yönetilen
Hizmet tarafından yönetilen modda TDE, yönetilen örneğin hem hizmet tarafından yönetilen veritabanı ana anahtarını hem de hizmet tarafından yönetilen sunucu sertifikasını kullanmasını gerektirir. Bu kimlik bilgileri, hizmet tarafından yönetilen TDE etkinleştirildiğinde otomatik olarak oluşturulur.
Müşteri tarafından yönetilen modda, TDE hizmet tarafından yönetilen bir veritabanı ana anahtarı kullanır ve sunucu sertifikası için sağladığınız anahtarları kullanır. Müşteri tarafından yönetilen modu yapılandırmak için:
- Bir sertifika oluşturun.
- Sertifikayı, örnek ile aynı Kubernetes ad alanında gizli nesne olarak depolayın.
Etkinleştir
Aşağıdaki bölümde hizmet tarafından yönetilen modda TDE'nin nasıl etkinleştirileceği açıklanmaktadır.
Hizmet yönetilen modunda TDE'yi etkinleştirmek için aşağıdaki komutu çalıştırın:
az sql mi-arc update --tde-mode ServiceManaged
Yönetilen örnekte TDE'yi kapatma
Arc ile etkinleştirilmiş SQL Yönetilen Örneği TDE devre dışı bırakıldığında, veri hizmeti otomatik olarak aşağıdaki görevleri yapar:
- Yönetilen örnekteki tüm veritabanlarında şifrelemeyi devre dışı bırakır.
- Yönetilen örnekteki tüm veritabanlarındaki ilişkili DEK'leri (Veritabanı Şifreleme Anahtarları) kaldırır.
- Hizmet tarafından yönetilen sertifika koruyucusunu devre dışı bırakır.
- Hizmet tarafından yönetilen veritabanı ana anahtarını
masterveritabanına bırakır.
TDE'yi devre dışı bırakmak için:
az sql mi-arc update --tde-mode Disabled
TDE kimlik bilgilerini yedekleme
Kimlik bilgilerini yönetilen örnekten yedeklediğinizde, kimlik bilgileri kapsayıcı içinde depolanır. Kimlik bilgilerini kalıcı bir birimde depolamak için kapsayıcıdaki bağlama yolunu belirtin. Örneğin, var/opt/mssql/data. Aşağıdaki örnek, yönetilen örnekten bir sertifikayı yedekler:
Not
kubectl cp Komut Windows'tan çalıştırılırsa, mutlak Windows yolları kullanılırken komut başarısız olabilir. Göreli yolları veya aşağıda belirtilen komutları kullanın.
Sertifikayı kapsayıcıdan
/var/opt/mssql/data'ye yedekleyin.USE master; GO BACKUP CERTIFICATE <cert-name> TO FILE = '<cert-path>' WITH PRIVATE KEY ( FILE = '<private-key-path>', ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>');Örnek:
USE master; GO BACKUP CERTIFICATE MyServerCert TO FILE = '/var/opt/mssql/data/servercert.crt' WITH PRIVATE KEY ( FILE = '/var/opt/mssql/data/servercert.key', ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>');Sertifikayı kapsayıcıdan dosya sisteminize kopyalayın.
Özel anahtarı kapsayıcıdan dosya sisteminize kopyalayın.
Sertifikayı ve özel anahtarı kapsayıcıdan silin.
kubectl exec -it --namespace <namespace> --container arc-sqlmi <pod-name> -- bash -c "rm <certificate-path> <private-key-path>Örnek:
kubectl exec -it --namespace arc-ns --container arc-sqlmi sql-0 -- bash -c "rm /var/opt/mssql/data/servercert.crt /var/opt/mssql/data/servercert.key"
Yönetilen örneğe TDE kimlik bilgilerini geri yükleme
Yukarıdakine benzer şekilde, kimlik bilgilerini geri yüklemek için bunları kapsayıcıya kopyalayın ve ilgili T-SQL'i daha sonra çalıştırın.
Not
kubectl cp Komut Windows'tan çalıştırılırsa, mutlak Windows yolları kullanılırken komut başarısız olabilir. Göreli yolları veya aşağıda belirtilen komutları kullanın.
TDE etkinleştirilmeden önce alınan veritabanı yedeklemelerini geri yüklemek için SQL Yönetilen Örneği TDE'yi devre dışı bırakmanız, veritabanı yedeklemesini geri yüklemeniz ve TDE'yi yeniden etkinleştirmeniz gerekir.
Sertifikayı dosya sisteminizden kapsayıcıya kopyalayın.
Özel anahtarı dosya sisteminizden kapsayıcıya kopyalayın.
/var/opt/mssql/datadosya yollarını kullanarak sertifikayı oluşturun.USE master; GO CREATE CERTIFICATE <certicate-name> FROM FILE = '<certificate-path>' WITH PRIVATE KEY ( FILE = '<private-key-path>', DECRYPTION BY PASSWORD = '<UseStrongPasswordHere>' );Örnek:
USE master; GO CREATE CERTIFICATE MyServerCertRestored FROM FILE = '/var/opt/mssql/data/servercert.crt' WITH PRIVATE KEY ( FILE = '/var/opt/mssql/data/servercert.key', DECRYPTION BY PASSWORD = '<UseStrongPasswordHere>' );Sertifikayı ve özel anahtarı kapsayıcıdan silin.
kubectl exec -it --namespace <namespace> --container arc-sqlmi <pod-name> -- bash -c "rm <certificate-path> <private-key-path>Örnek:
kubectl exec -it --namespace arc-ns --container arc-sqlmi sql-0 -- bash -c "rm /var/opt/mssql/data/servercert.crt /var/opt/mssql/data/servercert.key"