Erkunden von Transparent Data Encryption
Das TDE-Feature (Transparent Data Encryption) von Microsoft SQL Server verschlüsselt sämtliche Daten in einer Zieldatenbank auf Seitenebene. Die Daten werden verschlüsselt, wenn die Daten auf die Datenseite eines Datenträgers geschrieben werden, und entschlüsselt, wenn die Datenseite in den Arbeitsspeicher gelesen wird. Das Endergebnis ist, dass alle Datenseiten auf dem Datenträger verschlüsselt werden.
TDE verschlüsselt keine Daten auf Tabellen- oder Spaltenebene. Jeder Benutzer mit den entsprechenden Berechtigungen kann die Daten lesen, kopieren und sogar freigeben. Die Verschlüsselung ruhender Daten verhindert, dass eine Sicherung von einem nicht geschützten Server wiederhergestellt oder eine Kopie aller Datenbank- und Transaktionsprotokolldateien erstellt und an einen anderen, ungeschützten Server angefügt wird. Während des Sicherungsvorgangs erfolgt keine Entschlüsselung.
TDE schützt ruhende Daten und befolgt verschiedene Gesetze, Vorschriften und Richtlinien, die in verschiedenen Branchen gelten. Mit dieser Funktion können Softwareentwickler Daten mithilfe der Verschlüsselungsalgorithmen AES und 3DES verschlüsseln, ohne bestehende Anwendungen ändern zu müssen.
Die folgende Abbildung zeigt, wie die TDE-Verschlüsselung funktioniert.
Die Aktivierung von TDE richtet sich bei Azure SQL-Datenbank nach ganz einfachen Regeln. Für Datenbanken, die nach Mai 2017 in Azure SQL-Datenbank erstellt wurden, ist TDE automatisch aktiviert. Für Datenbanken, die vor Mai 2017 erstellt wurden, ist TDE standardmäßig deaktiviert und muss manuell aktiviert werden. TDE ist in Datenbanken aktiviert, die nach Februar 2019 mit Azure SQL Managed Instance erstellt wurden. Für Datenbanken, die vor Februar 2019 erstellt wurden, ist TDE deaktiviert.
Sie können TDE in einer Azure SQL-Datenbank-Instanz aktivieren, indem Sie die Datenbank über das Azure-Portal bearbeiten. Aktivieren Sie die Datenverschlüsselung einfach über den Bereich Transparent Data Encryption.
Standardmäßig werden Datenbanken in Azure SQL-Datenbank mithilfe eines von Microsoft bereitgestellten Zertifikats verschlüsselt. Microsoft Azure bietet eine Bring Your Own Key-Option, die es Ihnen ermöglicht, ein von Ihrem Unternehmen erstelltes und in Azure hochgeladenes Zertifikat zu verwenden. Wenn Ihr Unternehmen das Zertifikat aus Azure entfernt, werden die Datenbankverbindungen geschlossen, und es wird kein Zugriff auf die Datenbank gewährt.
Für die Aktivierung von TDE in einer Microsoft SQL Server-Datenbank müssen nur einige T-SQL-Befehle ausgeführt werden. Dieser Vorgang umfasst die folgenden Schritte:
- Legen Sie einen Hauptschlüssel in der Masterdatenbank fest, indem Sie den Befehl
CREATE MASTER KEY ENCRYPTION
verwenden. - Erstellen Sie ein Zertifikat in der Masterdatenbank, das mithilfe des Befehls
CREATE CERTIFICATE
für die Verschlüsselung verwendet wird. - Erstellen Sie einen Datenbankverschlüsselungsschlüssel in der Datenbank, der es Ihnen ermöglicht, TDE mit dem Befehl
CREATE DATABASE ENCRYPTION KEY
zu aktivieren. - Sobald der Verschlüsselungsschlüssel erstellt ist, muss er mithilfe des Befehls
ALTER DATABASE
aktiviert werden.
Hier sehen Sie alle Befehle:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pa55.w.rd';
GO
CREATE CERTIFICATE MyServerCert
WITH SUBJECT = 'TDEDemo_Certificate';
GO
USE [TDE_Demo];
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO
Sobald TDE aktiviert ist, dauert es einige Zeit, die Datenbank zu verschlüsseln, da jede Datenbankseite gelesen, verschlüsselt und auf den Datenträger zurückgeschrieben werden muss. Je größer die Datenbank ist, desto länger dauert dieser Vorgang. Dieser Prozess wird im Hintergrund mit niedriger Priorität ausgeführt, um die E/A- oder CPU-Leistung des Systems nicht zu überlasten.
Sobald das von TDE verwendete Zertifikat erstellt wurde, muss es manuell gesichert und an einem sicheren Ort gespeichert werden. SQL Server ist mit Enterprise Key Managern (EKMs) integriert, um Verschlüsselungsschlüssel zu verwalten. Ein Beispiel für einen EKM ist Azure Key Vault.
Die Verwaltung des Zertifikats ist wichtig, denn wenn es verloren geht und die Datenbank aus einer Sicherung wiederhergestellt werden muss, tritt dabei ein Fehler auf, da die Datenbank nicht gelesen werden kann.
Hinweis
Wenn Sie TDE mit Datenbanken in einer Always On-Verfügbarkeitsgruppe verwenden möchten, muss das zur Verschlüsselung der Datenbank verwendete Zertifikat gesichert und auf den anderen Servern in der Verfügbarkeitsgruppe wiederhergestellt werden, die Kopien der Datenbank hosten.
Azure Disk Encryption
Zusätzlich zu diesen SQL Server-Sicherheitsfeatures bieten Azure-VMs mit Azure Disk Encryption eine zusätzliche Sicherheitsschicht. Dieses Feature kann eingesetzt werden, um Daten zu schützen und Organisations- und Complianceanforderungen einzuhalten. Wenn Sie TDE verwenden, werden Ihre Daten durch mehrere Ebenen der Verschlüsselung mit Azure Disk Encryption geschützt.