Häufige Fehler bei Transparent Data Encryption (TDE) mit vom Kunden verwalteten Schlüsseln in Azure Key Vault
Gilt für: Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics
In diesem Artikel wird beschrieben, wie Sie Probleme mit dem Azure Key Vault-Schlüsselzugriff identifizieren und beheben, die dazu geführt haben, dass eine für die Verwendung von Transparent Data Encryption (TDE) mit kundenseitig verwalteten Schlüsseln in Azure Key Vault konfigurierte Datenbank nicht mehr zugänglich ist.
Hinweis
Microsoft Entra ID war bisher unter Azure Active Directory (Azure AD) bekannt.
Einführung
Wenn TDE zur Verwendung eines kundenseitig verwalteten Schlüssels in Azure Key Vault konfiguriert ist, muss fortlaufender Zugriff auf diesen TDE-Schutz gewährleistet sein, damit die Datenbank online bleibt. Wenn die logische SQL Server-Instanz oder verwaltete Instanz den Zugriff auf den kundenseitig verwalteten TDE-Schutz in Azure Key Vault verliert, beginnt eine Datenbank, alle Verbindungen mit der entsprechenden Fehlermeldung abzulehnen. Zudem wird im Azure-Portal der Status in Nicht zugänglich geändert.
Wenn das zugrunde liegende Problem mit dem Azure Key Vault-Schlüsselzugriff innerhalb der ersten 30 Minuten behoben wird, wird die Datenbank automatisch repariert und wieder online geschaltet. Dies bedeutet, dass bei zeitweiligen und vorübergehenden Netzwerkausfällen keine Benutzeraktion erforderlich ist und die Datenbank automatisch wieder online geschaltet wird. In den meisten Fällen ist jedoch ein Benutzereingriff erforderlich, um das zugrunde liegende Azure Key Vault-Schlüsselzugriffsproblem zu lösen.
Wenn eine unzugängliche Datenbank nicht länger benötigt wird, kann sie sofort gelöscht werden, um Kosten zu vermeiden. Alle weiteren Aktionen für die Datenbank sind erst dann erlaubt, wenn der Zugriff auf den Azure Key Vault-Schlüssel wiederhergestellt wurde und die Datenbank wieder online ist. Das Ändern der TDE-Option von kundenseitig verwalteten Schlüsseln zu dienstseitig verwalteten Schlüsseln ist ebenfalls nicht möglich, wenn eine mit kundenseitig verwalteten Schlüsseln verschlüsselte Datenbank nicht zugänglich ist. Dies ist erforderlich, um die Daten vor einem nicht autorisierten Zugriff zu schützen, wenn die Berechtigungen für den TDE-Schutz widerrufen wurden.
Wenn eine Datenbank länger als 30 Minuten nicht zugänglich ist, ist eine automatische Reparatur nicht mehr möglich. Wenn der erforderliche Azure Key Vault-Schlüsselzugriff erst danach wiederhergestellt wurde, müssen Sie den Zugriff auf den Schlüssel manuell erneut validieren, um die Datenbank wieder online zu schalten. Das Onlineschalten der Datenbank kann in diesem Fall je nach Größe der Datenbank sehr lange dauern. Sobald die Datenbank wieder online ist, gehen zuvor konfigurierte Einstellungen wie die Failovergruppe, der PITR-Verlauf und Tags verloren. Daher wird empfohlen, ein Benachrichtigungssystem mit Aktionsgruppen zu implementieren, mit dem zugrunde liegende Probleme mit dem Azure Key Vault-Schlüsselzugriff erkannt und gelöst werden können.
Häufige Fehler, die zu unzugänglichen Datenbanken führen
Die meisten Probleme, die auftreten, wenn Sie TDE mit Key Vault verwenden, werden durch einen der folgenden Konfigurationsfehler verursacht:
Der Schlüsseltresor ist nicht verfügbar oder nicht vorhanden.
- Der Schlüsseltresor wurde versehentlich gelöscht.
- Die Firewall wurde für Azure Key Vault konfiguriert, ohne den Zugriff auf Microsoft-Dienste zuzulassen.
- Ein zeitweiliger Netzwerkfehler führt dazu, dass der Schlüsseltresor nicht verfügbar ist.
Es liegen keine Berechtigungen für den Zugriff auf den Schlüsseltresor vor, oder der Schlüssel ist nicht vorhanden.
- Der Schlüssel wurde versehentlich gelöscht oder deaktiviert, oder der Schlüssel ist abgelaufen.
- Die verwaltete Identität des Servers (systemseitig oder benutzerseitig zugewiesen) wurde versehentlich gelöscht.
- Der Server wurde in ein anderes Abonnement verschoben. Eine neue verwaltete Identität (systemseitig oder benutzerseitig zugewiesen) muss dem Server zugewiesen werden, wenn er in ein anderes Abonnement verschoben wird.
- Die der verwalteten Identität des Servers erteilten Berechtigungen für die Schlüssel sind nicht ausreichend (sie beinhalten nicht Get, Wrap und Unwrap).
- Berechtigungen für die verwaltete Identität des Servers wurden für den Schlüsseltresor aufgehoben.
Identifizieren und Beheben von häufigen Fehlern
Im diesem Abschnitt werden die Schritte zur Problembehandlung für die häufigsten Fehler aufgelistet.
Serveridentität fehlt
Fehlermeldung
401 AzureKeyVaultNoServerIdentity: Die Serveridentität ist auf dem Server nicht korrekt konfiguriert. Wenden Sie sich an den Support.
Erkennung
Verwenden Sie das folgende Cmdlet oder den Befehl, um sicherzustellen, dass dem Server eine Identität zugewiesen wurde:
Azure PowerShell: Get-AzSqlServer
Azure CLI: az-sql-server-show
Minderung
Verwenden Sie das folgende Cmdlet oder den folgenden Befehl, um eine vom benutzerseitig zugewiesene oder systemseitig zugewiesene verwaltete Identität für den Server zu konfigurieren:
Azure PowerShell: Set-AzSqlServer mit der
-AssignIdentity
-Option.Azure CLI: az sql server update mit der Option
--assign_identity
.
Navigieren Sie im Azure-Portal zum Schlüsseltresor und anschließend zu Zugriffsrichtlinien. Führen Sie die folgenden Schritte aus:
- Verwenden Sie die Schaltfläche Neues Element hinzufügen, um die im vorherigen Schritt erstellte AppId für den Server hinzuzufügen.
- Weisen Sie die folgenden Schlüsselberechtigungen zu: Get, Wrap und Unwrap
Weitere Informationen finden Sie unter Zuweisen einer verwalteten Identität zu einem Server.
Wichtig
Wenn der logische Server für Azure SQL-Datenbank oder Azure SQL Managed Instance nach der ursprünglichen Konfiguration von TDE mit Key Vault in einen neuen Microsoft Entra-Mandanten verschoben wird, muss die Konfiguration dieser verwalteten Identität im neuen Mandanten erneut vorgenommen werden.
Schlüsseltresor fehlt
Fehlermeldung
503 AzureKeyVaultConnectionFailed: Der Vorgang konnte auf dem Server nicht ausgeführt werden, weil beim Versuch der Verbindungsherstellung mit Azure Key Vault Fehler aufgetreten sind.
Erkennung
So ermitteln Sie den Schlüssel-URI und den Schlüsseltresor:
Verwenden Sie das folgende Cmdlet oder den folgenden Befehl, um den Schlüssel-URI einer bestimmten Serverinstanz abzurufen:
Azure PowerShell: Get-AzSqlServerKeyVaultKey
Azure CLI: az-sql-server-tde-key-show
Verwenden Sie den Schlüssel-URI, um den Schlüsseltresor zu identifizieren.
Azure PowerShell: Sie können die Eigenschaften von $MyServerKeyVaultKey untersuchen, um die Details zum Schlüsseltresor abzurufen.
Azure CLI: Untersuchen Sie den zurückgegebenen Serververschlüsselungsschutz, um die Details zum Schlüsseltresor abzurufen.
Minderung
Vergewissern Sie sich, dass der Schlüsseltresor verfügbar ist.
- Stellen Sie sicher, dass der Schlüsseltresor verfügbar ist und der Server darauf zugreifen kann.
- Befindet sich der Schlüsseltresor hinter einer Firewall, stellen Sie sicher, dass das Kontrollkästchen aktiviert ist, mit dem Microsoft-Diensten der Zugriff auf den Schlüsseltresor erlaubt wird.
- Wurde der Schlüsseltresor versehentlich gelöscht, muss die vollständige Konfiguration erneut ausgeführt werden.
Schlüssel fehlt
Fehlermeldungen
404 ServerKeyNotFound: Der angeforderte Serverschlüssel wurde im aktuellen Abonnement nicht gefunden.
409 ServerKeyDoesNotExists: Der Serverschlüssel ist nicht vorhanden.
Erkennung
So ermitteln Sie den Schlüssel-URI und den Schlüsseltresor:
- Verwenden Sie das Cmdlet oder die Befehle unter Schlüsseltresor fehlt, um den Schlüssel-URI zu identifizieren, der der logischen SQL Server-Instanz hinzugefügt wird. Die Ausführung der Befehle gibt die Liste der Schlüssel zurück.
Minderung
Bestätigen Sie, dass der TDE-Schutz in Key Vault vorhanden ist:
- Identifizieren Sie den Schlüsseltresor, und navigieren Sie dann im Azure-Portal zum Schlüsseltresor.
- Stellen Sie sicher, dass der durch den Schlüssel-URI identifizierte Schlüssel vorhanden ist.
Abgelaufener Schlüssel
Fehlermeldungen
Der Server <server_name>
erfordert die Berechtigung „Key Vault Crypto Service Encryption-Benutzer“ für die RBAC-Richtlinie oder die folgenden Azure Key Vault-Berechtigungen: Get, WrapKey, UnwrapKey. Erteilen Sie dem Dienstprinzipal mit der ID <akv_key>
die fehlenden Berechtigungen. Stellen Sie sicher, dass der Schlüssel aktiv ist, nicht abgelaufen oder deaktiviert ist, das Aktivierungsdatum des Schlüssels nicht nach dem aktuellen Datum liegt und vertrauenswürdige Microsoft-Dienste die Firewall ggf. umgehen können.
Erkennung
So ermitteln Sie den abgelaufenen Schlüssel im Schlüsseltresor:
- Wechseln Sie über das Azure-Portal zum Schlüsseltresor-Dienstmenü >Objekte>Schlüssel, und überprüfen Sie den Ablauf des Schlüssels.
- Verwenden Sie den PowerShell-Befehl Get-AzKeyVaultKey.
- Nutzen Sie den Azure CLI-Befehl az keyvault show.
Minderung
- Überprüfen Sie das Ablaufdatum für den Schlüssel des Schlüsseltresors, um sich zu vergewissern, dass der Schlüssel abgelaufen ist.
- Erweitern sie das Ablaufdatum des Schlüssels.
- Schalten Sie die Datenbank wieder online, indem Sie die Option Neuvalidierung des Schlüssels mit einer der folgenden Optionen auswählen:
- Vorhandenen Schlüssel erneut versuchen.
- Backupschlüssel auswählen.
Weitere Informationen finden Sie unter Nicht zugängliche TDE-Schutzvorrichtungen.
Hinweis
Schlüssel sollten nach einer angegebenen Anzahl von Tagen vor ihrem Ablauf rotiert werden, damit genügend Zeit ist, um auf Fehler reagieren zu können. Weitere Informationen finden Sie unter Integrierte Azure Policy-Definitionen für Schlüsseltresor.
Fehlende Berechtigungen
Fehlermeldung
401 AzureKeyVaultMissingPermissions: Erforderliche Serverberechtigungen für Azure Key Vault fehlen.
Erkennung
So identifizieren Sie den Schlüssel-URI und den Schlüsseltresor:
- Verwenden Sie das Cmdlet oder die Befehle unter Schlüsseltresor fehlt, um den Schlüsseltresor zu identifizieren, den die logische SQL Server-Instanz verwendet.
Minderung
Vergewissern Sie sich, dass der Server über Berechtigungen für den Schlüsseltresor und über die korrekten Zugriffsberechtigungen für den Schlüssel verfügt:
- Navigieren Sie im Azure-Portal zum Schlüsseltresor >Zugriffsrichtlinien. Suchen Sie die verwaltete Identität des Servers (systemseitig oder benutzerseitig zugewiesen).
- Wenn die Serveridentität vorhanden ist, stellen Sie sicher, dass sie über die folgenden Schlüsselberechtigungen verfügt: Get, WrapKey und UnwrapKey.
- Fehlt die Serveridentität, fügen Sie sie über die Schaltfläche Neues Element hinzufügen hinzu.
Abrufen des TDE-Status aus dem Aktivitätsprotokoll
Um eine Überwachung des Datenbankstatus im Hinblick auf Azure Key Vault-Schlüsselzugriffsprobleme zu ermöglichen, werden im Aktivitätsprotokoll für die Ressourcen-ID basierend auf der Azure Resource Manager-URL die folgenden Ereignisse protokolliert.
Hinweis
Es kann ab dem Zeitpunkt, zu dem ein Problem mit dem Schlüsseltresorzugriff auftritt, mindestens 15 bis 30 Minuten dauern, bis Ereignisse im Aktivitätsprotokoll angezeigt werden.
Ereignis, wenn der Dienst den Zugriff auf den Azure Key Vault-Schlüssel verliert
Azure SQL-Datenbank
EventName: MakeDatabaseInaccessible
Status: Gestartet
Beschreibung: Datenbank {database_name} auf Server {server_name} hat den Zugriff auf den Azure Key Vault-Schlüssel verloren und wechselt jetzt in den Zustand „Kein Zugriff“.
Verwaltete Azure SQL-Datenbank-Instanz
EventName: MakeManagedDbInaccessible
Status: Gestartet
Beschreibung: Datenbank {database_name} auf verwaltetem Server {server_name} hat den Zugriff auf den Azure Key Vault-Schlüssel verloren und wechselt jetzt in den Zustand „Kein Zugriff“.
Ereignis, wenn das Problem nicht innerhalb von 30 Minuten behoben wurde und der Azure Key Vault-Schlüsselzugriff manuell validiert werden muss
Azure SQL-Datenbank
EventName: MakeDatabaseInaccessible
Status: Erfolgreich
Beschreibung: Die Datenbank ist nicht zugänglich, und der Benutzer muss den Azure Key Vault-Fehler beheben und den Zugriff auf Azure Key Vault durch eine Neuvalidierung des Schlüssels wiederherstellen.
Verwaltete Azure SQL-Datenbank-Instanz
EventName: MakeManagedDbInaccessible
Status: Erfolgreich
Beschreibung: Auf die Datenbank {database_name} auf dem verwalteten Server {server_name} kann nicht zugegriffen werden, und der Benutzer muss den Zugriff auf den Azure Key Vault-Schlüssel erneut einrichten.
Ereignis, wenn die erneute Validierung des Azure Key Vault-Schlüsselzugriffs erfolgreich war und die Datenbank wieder online geschaltet wird
Azure SQL-Datenbank
EventName: MakeDatabaseAccessible
Status: Gestartet
Beschreibung: Der Zugriff auf den Azure Key Vault-Schlüssel wurde wieder hergestellt, und der Vorgang, den Zugriff auf die Datenbank {database_name} auf dem Server {server_name} zu ermöglichen, hat begonnen.
Verwaltete Azure SQL-Datenbank-Instanz
EventName: MakeManagedDatabaseAccessible
Status: Gestartet
Beschreibung: Der Zugriff auf den Azure Key Vault-Schlüssel wurde wieder hergestellt, und der Vorgang, den Zugriff auf die Datenbank {database_name} auf dem verwalteten Server {server_name} zu ermöglichen, hat begonnen.
Ereignis, wenn die Datenbank erfolgreich wieder online geschaltet wurde
Azure SQL-Datenbank
EventName: MakeDatabaseAccessible
Status: Erfolgreich
Beschreibung: Der Zugriff auf den Azure Key Vault-Schlüssel wurde wieder hergestellt, und die Datenbank {database_name} auf dem Server {server_name} ist jetzt wieder online.
Verwaltete Azure SQL-Datenbank-Instanz
EventName: MakeManagedDatabaseAccessible
Status: Erfolgreich
Beschreibung: Der Zugriff auf den Azure Key Vault-Schlüssel wurde wieder hergestellt, und die Datenbank {database_name} auf dem verwalteten Server {server_name} ist jetzt wieder online.
Ereignis, wenn die erneute Validierung des Azure Key Vault-Schlüsselzugriffs nicht erfolgreich war
Azure SQL-Datenbank
EventName: MakeDatabaseAccessible
Status: Fehler
Beschreibung: Der Zugriff auf den Azure Key Vault-Schlüssel wurde wieder hergestellt, und der Vorgang, den Zugriff auf die Datenbank {database_name} auf dem Server {server_name} zu ermöglichen, hatte keinen Erfolg.
Verwaltete Azure SQL-Datenbank-Instanz
EventName: MakeManagedDatabaseAccessible
Status: Fehler
Beschreibung: Der Zugriff auf den Azure Key Vault-Schlüssel wurde wieder hergestellt, und der Vorgang, den Zugriff auf die Datenbank {database_name} auf dem verwalteten Server {server_name} zu ermöglichen, hatte keinen Erfolg.
Zugehöriger Inhalt
- Erfahren Sie mehr über Azure Resource Health.
- Richten Sie Aktionsgruppen ein, um Benachrichtigungen und Warnungen auf die von Ihnen bevorzugte Weise zu erhalten, z. B. per E-Mail/SMS/Push/Voice, Logik-App, Webhook, ITSM oder Automation Runbook.