Implementieren von Transparent Data Encryption
Die transparente Datenverschlüsselung (Transparent Data Encryption, TDE) verschlüsselt ruhende Daten und trägt so zum Schutz von Azure SQL-Datenbank, verwalteten Azure SQL-Instanzen und Synapse SQL in Azure Synapse Analytics vor Bedrohungen durch schädliche Offlineaktivitäten bei. TDE ver- und entschlüsselt die Datenbank, die zugehörigen Sicherungen und die Transaktionsprotokolldateien im Ruhezustand in Echtzeit, ohne dass Änderungen an der Anwendung erforderlich sind. TDE ist standardmäßig für alle neu bereitgestellten Azure SQL-Datenbanken aktiviert und muss für ältere Datenbanken von Azure SQL-Datenbank, Azure SQL Managed Instance oder Azure Synapse manuell aktiviert werden.
Die TDE führt die E/A-Verschlüsselung und -Entschlüsselung der Daten und auf Seitenebene durch. Jede Seite wird entschlüsselt, wenn sie in den Speicher gelesen wird, und dann verschlüsselt, bevor sie auf den Datenträger geschrieben wird. TDE verschlüsselt den Speicher einer gesamten Datenbank mithilfe eines symmetrischen Schlüssels, der als Datenbank-Verschlüsselungsschlüssel (Database Encryption Key, DEK) bezeichnet wird. Beim Datenbankstart wird der verschlüsselte DEK entschlüsselt und dann für die Entschlüsselung und erneute Verschlüsselung der Datenbankdateien im SQL Server-Datenbank-Engine-Prozess verwendet. Der DEK ist durch die TDE-Schutzvorrichtung geschützt. Beim TDE-Schutzvorrichtung handelt es sich entweder um ein von einem Dienst verwaltetes Zertifikat (dienstseitig verwaltete transparente Datenverschlüsselung) oder um einen asymmetrischen Schlüssel, der in Azure Key Vault gespeichert ist (kundenseitig verwaltete transparente Datenverschlüsselung).
Bei Azure SQL-Datenbank und Azure Synapse ist die TDE-Schutzvorrichtung auf der logischen SQL Server-Ebene festgelegt und wird von allen Datenbanken geerbt, die diesem Server zugeordnet sind. Bei einer verwalteten Azure SQL-Instanz (BYOK-Feature in der Vorschau) ist die TDE-Schutzvorrichtung auf Instanzebene festgelegt und wird von allen verschlüsselten Datenbanken in dieser Instanz geerbt. In diesem Dokument bezieht sich der Begriff Server sowohl auf den Server als auch die Instanz (sofern nicht anders angegeben).
Alle neu erstellten SQL-Datenbanken werden standardmäßig mithilfe der von einem Dienst verwalteten transparenten Datenverschlüsselung verschlüsselt. Wenn die Datenbankquelle verschlüsselt ist, werden die Zieldatenbanken, die durch Wiederherstellen, Georeplikation und Datenbankkopie erstellt wurden, standardmäßig verschlüsselt. Wenn die Datenbankquelle jedoch nicht verschlüsselt ist, werden die Zieldatenbanken, die durch Wiederherstellen, Georeplikation und Datenbankkopie erstellt wurden, nicht standardmäßig verschlüsselt. Bestehende SQL-Datenbanken, die vor Mai 2017 erstellt wurden und bestehende SQL Managed Instance-Datenbanken, die vor Februar 2019 erstellt wurden, werden standardmäßig nicht verschlüsselt. Azure SQL Managed Instance-Datenbanken, die durch Wiederherstellen erstellt wurden, erben den Verschlüsselungsstatus von der Quelle. Wenn Sie eine vorhandene verschlüsselte Datenbank wiederherstellen möchten, müssen Sie zunächst das erforderliche TDE-Zertifikat in SQL Managed Instance importieren. Um den Verschlüsselungsstatus für eine Datenbank zu ermitteln, führen Sie eine SELECT-Abfrage aus der DMV „sys.dm_database_encryption_keys“ aus und überprüfen den Status der Spalte encryption_state_desc.
TDE kann nicht zum Verschlüsseln von Systemdatenbanken wie die master in SQL-Datenbank und SQL Managed Instance verwendet werden. Die Masterdatenbank enthält Objekte, die zum Ausführen der TDE-Vorgänge für Benutzerdatenbanken erforderlich sind. Es wird davon abgeraten, vertrauliche Daten in Systemdatenbanken zu speichern. Die Ausnahme ist tempdb, die immer mit TDE verschlüsselt wird, um die dort gespeicherten Daten zu schützen.
Von einem Dienst verwaltete transparente Datenverschlüsselung
In Azure ist die TDE standardmäßig so eingerichtet, dass der DEK durch ein integriertes Serverzertifikat geschützt ist. Das integrierte Serverzertifikat ist für jeden Server eindeutig, und der verwendete Verschlüsselungsalgorithmus ist AES 256. Wenn sich eine Datenbank in einer Georeplikationsbeziehung befindet, werden sowohl die primäre als auch die sekundäre Geodatenbank vom übergeordneten Serverschlüssel der primären Datenbank geschützt. Sind zwei Datenbanken mit dem gleichen Server verbunden, verwenden sie auch das gleiche integrierte Zertifikat. Microsoft rotiert diese Zertifikate gemäß der internen Sicherheitsrichtlinie automatisch, und der Stammschlüssel wird von einem Microsoft-internen Geheimnisspeicher geschützt. Kunden können die Compliance von SQL-Datenbank mit internen Sicherheitsrichtlinien in Überwachungsberichten unabhängiger Drittanbieter überprüfen, die in Microsoft Trust Center zur Verfügung stehen.
Microsoft verschiebt und verwaltet auch die Schlüssel nahtlos, die für die Georeplikation und Wiederherstellung benötigt werden.
Vom Kunden verwaltete Transparent Data Encryption – BYOK (Bring Your Own Key)
Die vom Kunden verwaltete transparente Datenverschlüsselung wird auch als BYOK-Unterstützung für TDE bezeichnet. In diesem Szenario ist die TDE-Schutzvorrichtung, die den DEK verschlüsselt, ein kundenseitig verwalteter asymmetrischer Schlüssel, der in einer kundeneigenen und kundenseitig verwalteten Azure Key Vault-Instanz – dem cloudbasierten externen Schlüsselverwaltungssystem von Azure – gespeichert ist und diesen Schlüsseltresor niemals verlässt. Die TDE-Schutzvorrichtung kann vom Schlüsseltresor generiert oder von einem lokalen HSM-Gerät (Hardwaresicherheitsmodul) in den Schlüsseltresor übertragen werden. SQL-Datenbank müssen die Berechtigungen für den Schlüsseltresor des Kunden gewährt werden, damit der DEK ver- und entschlüsselt werden kann. Wenn die Berechtigungen des logischen SQL-Servers für den Schlüsseltresor widerrufen werden, ist kein Zugriff mehr auf die Datenbank möglich, und alle Daten bleiben verschlüsselt.
Mit TDE und Azure Key Vault-Integration können Benutzer Aufgaben der Schlüsselverwaltung steuern, z.B. Schlüsselrotationen, Schlüsseltresorberechtigungen und Schlüsselsicherungen. Außerdem können sie die Überwachung und Berichterstellung für alle TDE-Schutzvorrichtungen aktivieren, die Azure Key Vault-Funktionalität nutzen. Key Vault bietet eine zentrale Schlüsselverwaltung, verwendet streng überwachte HSMs und ermöglicht die Aufgabentrennung zwischen dem Verwalten von Schlüsseln und Daten, um Sicherheitsrichtlinien einzuhalten.
Verschieben einer durch die transparente Datenverschlüsselung gesicherte Datenbank
Für Vorgänge in Azure müssen Datenbanken nicht entschlüsselt werden. Die TDE-Einstellungen für die Quelldatenbank oder die primäre Datenbank werden transparent an das Ziel vererbt. Dies gilt für folgende Vorgänge:
- Geowiederherstellung
- Self-Service-Point-in-Time-Wiederherstellung
- Wiederherstellung einer gelöschten Datenbank
- Aktive Georeplikation
- Erstellung einer Datenbankkopie
- Wiederherstellen einer Sicherungsdatei in der verwalteten Azure SQL-Instanz
Die manuelle COPY-ONLY-Sicherung einer Datenbank, die über einen vom Dienst verwalteten TDE-Vorgang verschlüsselt wurde, wird in Azure SQL Managed Instance nicht unterstützt, da nicht auf das für die Verschlüsselung genutzte Zertifikat zugegriffen werden kann. Verwenden Sie die Point-in-Time-Wiederherstellung, um diese Art von Datenbank auf eine andere SQL Managed Instance zu verschieben, oder wechseln Sie zu einem kundenseitig verwalteten Schlüssel.
Wenn Sie eine TDE-geschützte Datenbank exportieren, wird der exportierte Inhalt der Datenbank nicht verschlüsselt. Diese exportierten Inhalte werden in unverschlüsselten BACPAC-Dateien gespeichert. Achten Sie darauf, die BACPAC-Dateien in geeigneter Weise zu schützen und TDE zu aktivieren, sobald der Import der neuen Datenbank abgeschlossen ist.
Beispiel: Wenn die BACPAC-Datei von einer SQL Server-Instanz exportiert wird, wird der importierte Inhalt der neuen Datenbank nicht automatisch verschlüsselt. Wenn die BACPAC-Datei in eine SQL Server-Instanz exportiert wird, wird die neue Datenbank auch nicht automatisch verschlüsselt.
Eine Ausnahme besteht beim Exportieren einer Datenbank in und aus SQL-Datenbank. TDE ist für die neue Datenbank aktiviert, die BACPAC-Datei selbst ist allerdings noch nicht verschlüsselt.
Verwalten von Transparent Data Encryption
Verwalten Sie TDE im Azure-Portal.
Um TDE über das Azure-Portal zu konfigurieren, müssen Sie als Azure-Besitzer, Azure-Mitwirkender oder SQL-Sicherheitsmanager verbunden sein.
Aktivieren und Deaktivieren Sie TDE auf Datenbankebene. Verwenden Sie für Azure SQL Managed Instance Transact-SQL (T-SQL), um TDE für eine Datenbank zu aktivieren oder zu deaktivieren. Für Azure SQL-Datenbank und Azure Synapse können Sie TDE für die Datenbank im Azure-Portal verwalten, nachdem Sie sich mit einem Konto als Azure-Administrator oder Azure-Mitwirkender angemeldet haben. Suchen Sie die TDE-Einstellungen in Ihrer Benutzerdatenbank. Standardmäßig wird der Verschlüsselungsschlüssel auf Serverebene verwendet. Für den Server, der die Datenbank enthält, wird automatisch ein TDE-Zertifikat generiert.
Sie legen den TDE-Hauptschlüssel, der auch als TDE-Schutz bezeichnet wird, auf Server- oder Instanzebene fest. Öffnen Sie die TDE-Einstellungen unter Ihrem Server oder Ihrer verwalteten Instanz, um TDE mit BYOK-Unterstützung zu verwenden und Ihre Datenbanken mit einem Schlüssel aus Azure Key Vault zu schützen.
Sie können auch einen kundenseitig verwalteten Schlüssel für TDE auf Datenbankebene für Azure SQL-Datenbank verwenden.