Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
In diesem Artikel werden Aufgaben zum Rotieren von Always Encrypted-Spaltenhauptschlüsseln und -Spaltenverschlüsselungsschlüsseln mit SQL Server Management Studio (SSMS) beschrieben.
Einen Überblick über die Always Encrypted-Schlüsselverwaltung einschließlich bewährter Methoden und wichtiger Sicherheitsüberlegungen finden Sie unter Übersicht der Schlüsselverwaltung für Always Encrypted.
Hinweis
Sie benötigen SSMS 18.9 oder höher, um Spaltenhauptschlüssel zu verwenden, die in einem verwalteten HSM im Azure Key Vault gespeichert sind.
Rotieren von Spaltenhauptschlüsseln
Die Rotation eines Spaltenhauptschlüssels ist der Prozess des Ersetzens eines vorhandenen Spaltenhauptschlüssels durch einen neuen. Möglicherweise müssen Sie einen Schlüssel wechseln, wenn er kompromittiert wurde, oder um die Richtlinien oder Compliance-Bestimmungen Ihrer Organisation einzuhalten, die vorschreiben, dass kryptografische Schlüssel regelmäßig gewechselt werden müssen. Die Rotation eines Spaltenhauptschlüssels umfasst die Entschlüsselung von Spaltenverschlüsselungsschlüsseln, die mit dem aktuellen Spaltenhauptschlüssel geschützt werden, deren Neuverschlüsselung mithilfe des neuen Spaltenhauptschlüssels und das Aktualisieren der Schlüsselmetadaten.
Schritt 1: Bereitstellen eines neuen Spaltenhauptschlüssels
Führen Sie die Schritte unter Bereitstellen von Spaltenhauptschlüsseln mit dem Dialogfeld „Neuer Spaltenhauptschlüssel“ aus.
Hinweis
Wenn Sie Azure Key Vault als Schlüsselspeicher verwenden, wird die kundenseitig verwaltete Schlüsselrotation mit mehreren Mandanten nicht unterstützt. Stellen Sie sicher, dass sich der neue kundschaftsseitig verwaltete Schlüssel im selben Mandanten wie der vorhandene befindet.
Schritt 2: Verschlüsseln von Spaltenverschlüsselungsschlüsseln mit dem neuen Spaltenhauptschlüssel
Ein Spaltenhauptschlüssel schützt in der Regel mindestens einen Spaltenverschlüsselungsschlüssel. Jeder Spaltenverschlüsselungsschlüssel hat einen verschlüsselten Wert in der Datenbank gespeichert, der das Ergebnis der Verschlüsselung des Spaltenverschlüsselungsschlüssels mit dem Spaltenmasterschlüssel ist. In diesem Schritt müssen Sie jeden Spaltenverschlüsselungsschlüssel, der mit dem aktuellen (zu rotierenden) Spaltenhauptschlüssel geschützt ist, mit dem neuen Spaltenhauptschlüssel verschlüsseln, und den neuen verschlüsselten Wert in der Datenbank speichern. Daher verfügt jeder von der Rotation betroffene Spaltenverschlüsselungsschlüssel über zwei verschlüsselte Werte: ein Wert, der mit dem vorhandenen Spaltenhauptschlüssel verschlüsselt wurde, und ein neuer Wert, der mit dem neuen Spaltenhauptschlüssel verschlüsselt wurde.
- Navigieren Sie über den Objekt-Explorer zu dem Ordner Sicherheit>Always Encrypted-Schlüssel>Spaltenhauptschlüssel, und suchen Sie den Spaltenhauptschlüssel, den Sie rotieren möchten.
- Klicken Sie mit der rechten Maustaste auf den Spaltenhauptschlüssel, und wählen Sie Rotierenaus.
- Wählen Sie im Dialogfeld Column Master Key Rotation (Rotation der Spaltenhauptschlüssel) den Namen Ihres neuen Spaltenhauptschlüssels im Feld Ziel aus, den Sie in Schritt 1 erstellt haben.
- Überprüfen Sie die Liste der Spaltenverschlüsselungsschlüssel, die durch den vorhanden Spaltenhauptschlüssel geschützt sind. Die Rotation wirkt sich auf diese Schlüssel aus.
- Wählen Sie OK aus.
SQL Server Management Studio ruft die Metadaten der Spaltenverschlüsselungsschlüssel ab, die mit dem alten Spaltenmasterschlüssel geschützt sind, sowie die Metadaten der alten und der neuen Spaltenmasterschlüssel. SSMS verwendet die Metadaten des Spaltenhauptschlüssels anschließend, um auf den Schlüsselspeicher mit dem alten Spaltenhauptschlüssel zuzugreifen und den bzw. die Spaltenverschlüsselungsschlüssel zu entschlüsseln. Anschließend greift SSMS auf den Schlüsselspeicher zu, der den neuen Spaltenmasterschlüssel enthält, um einen neuen Satz verschlüsselter Werte der Spaltenverschlüsselungsschlüssel zu erzeugen, und anschließend werden die neuen Werte den Metadaten hinzugefügt (Generieren und Ausstellen von ALTER COLUMN ENCRYPTION KEY-Anweisungen ).
Hinweis
Stellen Sie sicher, dass jeder der Spaltenverschlüsselungsschlüssel, verschlüsselt mit dem alten Spaltenmasterschlüssel, nicht mit einem anderen Spaltenmasterschlüssel verschlüsselt ist. Mit anderen Worten, jeder Spaltenverschlüsselungsschlüssel, der von der Drehung betroffen ist, muss genau einen verschlüsselten Wert in der Datenbank aufweisen. Wenn ein betroffener Spaltenverschlüsselungsschlüssel über mehr als einen verschlüsselten Wert verfügt, müssen Sie den Wert entfernen, bevor Sie die Rotation fortsetzen können (Informationen zum Entfernen eines verschlüsselten Werts eines Spaltenverschlüsselungsschlüssels finden Sie in Schritt 4 ).
Schritt 3: Konfigurieren Ihrer Anwendungen mit dem neuen Spaltenhauptschlüssel
In diesem Schritt müssen Sie sicherstellen, dass alle Clientanwendungen, die Datenbankspalten abfragen, die mit dem Spaltenmasterschlüssel geschützt sind, den Sie rotieren, auf den neuen Spaltenmasterschlüssel zugreifen können (also auf die Datenbankspalten, die mit einem Spaltenverschlüsselungsschlüssel verschlüsselt sind, der mit dem zu rotierenden Spaltenmasterschlüssel verschlüsselt ist). Ihr Vorgehen in diesem Schritt hängt vom Typ des Zertifikatspeichers ab, in dem sich Ihr neuer Spaltenhauptschlüssel befindet. Zum Beispiel:
- Wenn der neue Spaltenhauptschlüssel ein im Windows-Zertifikatspeicher gespeichertes Zertifikat ist, müssen Sie das Zertifikat an dem Zertifikatspeicherort speichern (Aktueller Benutzer oder Lokaler Computer), der auch im Schlüsselpfad Ihres Spaltenhauptschlüssels in der Datenbank angegeben ist. Die Anwendung muss auf das Zertifikat zugreifen können:
- Wenn das Zertifikat am Zertifikatspeicherort Aktueller Benutzer gespeichert wird, muss das Zertifikat in den Speicherort „Aktueller Benutzer“ der Windows-Identität (Benutzer) der Anwendung importiert werden.
- Wenn das Zertifikat am Zertifikatspeicherort Lokaler Computer gespeichert wird, benötigt die Windows-Identität der Anwendung die Berechtigung zum Zugriff auf das Zertifikat.
- Wenn der neue Spaltenhauptschlüssel im Microsoft Azure Key Vault gespeichert wird, muss die Anwendung implementiert werden, damit sie für Azure authentifiziert werden kann und die Berechtigung zum Zugriff auf den Schlüssel erhält.
Ausführliche Informationen finden Sie unter Erstellen und Speichern von Spaltenhauptschlüsseln für Always Encrypted.
Hinweis
Zu diesem Zeitpunkt des Rotationsverfahrens sind sowohl der alte als auch der neue Spaltenhauptschlüssel gültig und können für den Datenzugriff verwendet werden.
Schritt 4: Bereinigen der Werte des Spaltenhauptschlüssels, die mit dem alten Spaltenhauptschlüssel verschlüsselt wurden
Wenn Sie alle Ihre Anwendungen für die Verwendung des neuen Spaltenhauptschlüssels konfiguriert haben, müssen Sie die Werte der Spaltenverschlüsselungsschlüssel aus der Datenbank entfernen, die mit dem alten Spaltenhauptschlüssel verschlüsselt wurden. Das Entfernen der alten Werte stellt sicher, dass Sie bereit für den nächsten Rotationsvorgang sind (denken Sie daran, dass jeder Spaltenverschlüsselungsschlüssel, der mit einem zu rotierenden Spaltenhauptschlüssel geschützt wird, über genau einen verschlüsselten Wert verfügen muss).
Ein weiterer Grund dafür, den alten Wert vor dem Archivieren oder Entfernen des alten Spaltenhauptschlüssels zu bereinigen, ist die Leistung: Beim Abfragen einer verschlüsselten Spalte muss ein für Always Encrypted aktivierter Clienttreiber möglicherweise versuchen, zwei Werte zu entschlüsseln – den alten und den neuen Wert. Dem Treiber ist nicht bekannt, welcher der beiden Spaltenhauptschlüssel in der Umgebung der Anwendung gültig ist, weswegen der Treiber beide verschlüsselten Werte vom Server abruft. Wenn bei der Entschlüsselung eines der Werte ein Fehler auftritt, da er mit dem nicht verfügbaren Spaltenhauptschlüssel geschützt ist (wenn es z. B. der alte Spaltenhauptschlüssel ist, der aus dem Speicher entfernt wurde), versucht der Treiber einen anderen Wert mithilfe des neuen Spaltenhauptschlüssels zu entschlüsseln.
Warnung
Wenn Sie den Wert eines Spaltenverschlüsselungsschlüssels entfernen, bevor der zugehörige Spaltenhauptschlüssel für eine Anwendung verfügbar gemacht wurde, kann die Anwendung die Datenbankspalte nicht mehr entschlüsseln.
- Navigieren Sie über den Objekt-Explorer zu dem Ordner Sicherheit>Always Encrypted-Schlüssel, und suchen Sie den vorhandenen Spaltenhauptschlüssel, den Sie ersetzen möchten.
- Klicken Sie mit der rechten Maustaste auf den vorhandenen Spaltenhauptschlüssel, und wählen Sie Cleanupaus.
- Überprüfen Sie die Liste der zu entfernenden Werte für den Spaltenhauptschlüssel.
- Wählen Sie OK aus.
SQL Server Management Studio stellt ALTER COLUMN ENCRYPTION KEY-Anweisungen aus, um verschlüsselte Werte von Spaltenverschlüsselungsschlüsseln abzulegen, die mit dem alten Spaltenmasterschlüssel verschlüsselt sind.
Schritt 5: Löschen von Metadaten Ihres alten Spaltenhauptschlüssels
Wenn Sie die Definition des alten Spaltenhauptschlüssels aus der Datenbank entfernen möchten, befolgen Sie diese Schritte.
- Navigieren Sie über den Objekt-Explorer zu dem Ordner Sicherheit>Always Encrypted-Schlüssel>Spaltenhauptschlüssel, und suchen Sie den alten Spaltenhauptschlüssel, der aus der Datenbank entfernt werden soll.
- Klicken Sie mit der rechten Maustaste auf den alten Spaltenhauptschlüssel, und wählen Sie Löschenaus. (Dadurch wird eine DROP COLUMN MASTER KEY-Anweisung generiert und ausgestellt, um die Metadaten des Spaltenmasterschlüssels zu entfernen.)
- Wählen Sie OK aus.
Hinweis
Es wird dringend empfohlen, die alte Spaltenmastertaste nach der Drehung nicht dauerhaft zu löschen. Stattdessen sollten Sie den alten Spaltenhauptschlüssel im aktuellen Schlüsselspeicher oder an einem anderen sicheren Ort archivieren. Wenn Sie Ihre Datenbank aus einer Sicherungsdatei zu einem Bestimmten Zeitpunkt wiederherstellen, bevor der neue Spaltenmasterschlüssel konfiguriert wurde, benötigen Sie den alten Schlüssel, um auf die Daten zuzugreifen.
Berechtigung für das Rotieren des Spaltenhauptschlüssels
Die Rotation eines Spaltenhauptschlüssels erfordert die folgenden Berechtigungen:
- ALTER ANY COLUMN MASTER KEY – Für die Erstellung von Metadaten für den neuen Spaltenhauptschlüssel und die Löschung der Metadaten des alten Spaltenhauptschlüssels erforderlich.
- ALTER ANY COLUMN ENCRYPTION KEY – Für die Änderung der Metadaten von Spaltenverschlüsselungsschlüsseln erforderlich (neue verschlüsselte Werte hinzufügen).
Sie benötigen zudem Schlüsselspeicherberechtigungen, damit Sie sowohl auf den alten als auch auf den neuen Spaltenhauptschlüssel in den jeweiligen Schlüsselspeichern zugreifen können. Ausführliche Informationen zu Schlüsselspeicherberechtigungen, die für Schlüsselverwaltungsvorgänge erforderlich sind, finden Sie unter Erstellen und Speichern von Spaltenhauptschlüsseln für Always Encrypted im für Ihren Schlüsselspeicher relevanten Abschnitt.
Spaltenverschlüsselungsschlüssel drehen
Die Rotation eines Spaltenverschlüsselungsschlüssels umfasst das Entschlüsseln der Daten in allen Spalten, die mit dem zu rotierenden Schlüssel verschlüsselt wurden, und die Neuverschlüsselung der Daten mithilfe des neuen Spaltenverschlüsselungsschlüssels.
Hinweis
Die Rotation eines Spaltenverschlüsselungsschlüssels kann sehr viel Zeit in Anspruch nehmen, wenn die Tabellen mit den Spalten, die mit dem zu rotierenden Schlüssel verschlüsselt wurden, groß ist. Während die Daten erneut verschlüsselt werden, können Ihre Anwendungen nicht in die betroffenen Tabellen schreiben. Daher muss Ihre Organisation eine Rotation der Spaltenverschlüsselungsschlüssel sehr sorgfältig planen. Verwenden Sie den Always Encrypted-Assistenten, um einen Spaltenverschlüsselungsschlüssel zu rotieren.
- Öffnen Sie den Assistenten für Ihre Datenbank: Klicken Sie mit der rechten Maustaste auf Ihre Datenbank, zeigen Sie auf "Aufgaben", und wählen Sie dann " Spalten verschlüsseln" aus.
- Überprüfen Sie die Seite "Einführung ", und wählen Sie dann "Weiter" aus.
- Erweitern Sie auf der Seite Spaltenauswahl die Tabellen, und suchen Sie alle Spalten, die Sie ersetzen möchten und die derzeit mit dem alten Spaltenverschlüsselungsschlüssel verschlüsselt sind.
- Legen Sie Verschlüsselungsschlüssel für jede mit dem alten Verschlüsselungsschlüssel verschlüsselte Spalte auf einen neuen, automatisch generierten Schlüssel fest. Hinweis: Alternativ können Sie einen neuen Spaltenverschlüsselungsschlüssel erstellen, bevor Sie den Assistenten ausführen. Informationen dazu finden Sie unter Bereitstellen von Spaltenverschlüsselungsschlüsseln mit dem Dialogfeld „Neuer Spaltenverschlüsselungsschlüssel“.
- Wählen Sie auf der Seite " Masterschlüsselkonfiguration " einen Speicherort aus, an dem der neue Schlüssel gespeichert werden soll, und wählen Sie eine Masterschlüsselquelle aus, und wählen Sie dann "Weiter" aus. Hinweis: Wenn Sie einen vorhandenen Spaltenverschlüsselungsschlüssel verwenden (keinen automatisch generierten), können Sie diesen Schritt überspringen.
- Wählen Sie auf der Seite "Überprüfung" aus, ob das Skript sofort ausgeführt oder ein PowerShell-Skript erstellt werden soll, und wählen Sie dann "Weiter" aus.
- Überprüfen Sie auf der Seite "Zusammenfassung " die ausgewählten Optionen, und wählen Sie dann "Fertig stellen" aus, und schließen Sie den Assistenten nach Abschluss.
- Navigieren Sie über den Objekt-Explorerzu dem Ordner Sicherheit > Always Encrypted-Schlüssel > Spaltenverschlüsselungsschlüssel , und suchen Sie Ihren alten Spaltenverschlüsselungsschlüssel, der aus der Datenbank entfernt werden soll. Klicken Sie mit der rechten Maustaste auf den Schlüssel, und wählen Sie anschließend Löschenaus.
Berechtigung zum Rotieren von Spaltenverschlüsselungsschlüsseln
Die Rotation eines Spaltenverschlüsselungsschlüssels erfordert die ALTER ANY COLUMN MASTER KEY -Berechtigungen – Für die Verwendung eines neuen, automatisch generierten Spaltenverschlüsselungsschlüssels erforderlich (ein neuer Spaltenhauptschlüssel und die neuen, dazugehörigen Metadaten werden ebenfalls generiert). ALTER ANY COLUMN ENCRYPTION KEY – Für das Hinzufügen von Metadaten für den neuen Spaltenverschlüsselungsschlüssel erforderlich.
Sie benötigen zudem Schlüsselspeicherberechtigungen, damit Sie sowohl für den alten als auch für den neuen Spaltenverschlüsselungsschlüssel auf den Spaltenhauptschlüssel zugreifen können. Ausführliche Informationen zu Schlüsselspeicherberechtigungen, die für Schlüsselverwaltungsvorgänge erforderlich sind, finden Sie unter Erstellen und Speichern von Spaltenhauptschlüsseln für Always Encrypted im für Ihren Schlüsselspeicher relevanten Abschnitt.
Verwandte Inhalte
- Immer verschlüsselt
- Übersicht über die Schlüsselverwaltung für Always Encrypted
- Konfigurieren von Always Encrypted mithilfe von SQL Server Management Studio
- Konfigurieren von Always Encrypted mithilfe von PowerShell
- SPALTENMASTERSCHLÜSSEL ERSTELLEN (Transact-SQL)
- DROP COLUMN MASTER KEY (Transact-SQL)
- CREATE COLUMN-ENCRYPTIONSSCHLÜSSEL (Transact-SQL)
- ALTER COLUMN ENCRYPTION KEY (Transact-SQL)
- DROP COLUMN ENCRYPTION KEY (Transact-SQL)
- sys.column_master_keys (Transact-SQL)
- sys.column_encryption_keys (Transact-SQL)
- Abfragen von Spalten mit Always Encrypted und SQL Server Management Studio
- Entwickeln von Anwendungen mit Always Encrypted