Entfernen einer Transparent Data Encryption (TDE)-Schutzvorrichtung mithilfe von PowerShell

Gilt für: Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics (nur dedizierte SQL-Pools)

In diesem Artikel wird beschrieben, wie Sie auf eine potenziell gefährdete TDE-Schutzvorrichtung für eine Azure SQL-Datenbank- oder Azure Synapse Analytics-Instanz reagieren können, die TDE mit vom Kunden verwalteten Schlüsseln in Azure Key Vault mit BYOK-Unterstützung (Bring Your Own Key) verwendet. Weitere Informationen zu BYOK-Unterstützung für TDE finden Sie auf der Übersichtsseite.

Achtung

Die in diesem Artikel beschriebenen Verfahren sollten nur in Ausnahmefällen oder in Testumgebungen ausgeführt werden. Lesen Sie die Schritte sorgfältig, da das Löschen von aktiv verwendeten TDE-Schutzvorrichtungen aus Azure Key Vault zur Nichtverfügbarkeit der Datenbank führen kann.

Wenn der Verdacht besteht, dass ein Schlüssel kompromittiert ist, d.h ein Dienst oder Benutzer unautorisierten Zugriff auf den Schlüssel hat, empfiehlt es sich, den Schlüssel zu löschen.

Beachten Sie: Sobald die TDE-Schutzvorrichtung in Key Vault gelöscht ist, beginnen alle verschlüsselten Datenbanken nach etwa 10 Minuten, mit einer entsprechenden Fehlermeldung alle Verbindungen zu verweigern und ihren Status in Kein Zugriff zu ändern.

In dieser Schrittanleitung wird der Ansatz zum Verhindern des Zugriffs auf Datenbanken nach der Reaktion auf einen Kompromittierungsvorfall beschrieben.

Hinweis

Dieser Artikel gilt für Azure SQL-Datenbank, Azure SQL Managed Instance und Azure Synapse Analytics (dedizierte SQL-Pools (vormals SQL DW)). Die Dokumentation zu Transparent Data Encryption für dedizierte SQL-Pools in Synapse-Arbeitsbereichen finden Sie unter Verschlüsselung für Azure Synapse Analytics-Arbeitsbereiche.

Voraussetzungen

  • Sie müssen über ein Azure-Abonnement verfügen und ein Administrator für dieses Abonnement sein.
  • Azure PowerShell muss installiert sein und ausgeführt werden.
  • In diesem Leitfaden wird davon ausgegangen, dass Sie bereits einen Schlüssel aus Azure Key Vault als TDE-Schutzvorrichtung für Azure SQL-Datenbank oder Azure Synapse verwenden. Weitere Informationen finden Sie unter Transparent Data Encryption mit BYOK-Unterstützung.

Anweisungen zur Installation des Az-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell). Spezifische Cmdlets finden Sie unter AzureRM.Sql. Nutzen Sie das neue Azure PowerShell Az-Modul.

Überprüfen der Fingerabdrücke der TDE-Schutzvorrichtung

In den folgenden Schritten wird beschrieben, wie Sie die Fingerabdrücke der TDE-Schutzvorrichtung überprüfen, die von den virtuellen Protokolldateien (Virtual Log Files, VLF) einer bestimmten Datenbank weiterhin verwendet werden. Der Fingerabdruck der aktuellen TDE-Schutzvorrichtung für die Datenbank und die Datenbank-ID können gefunden werden durch Ausführung von:

SELECT [database_id],
       [encryption_state],
       [encryptor_type], /*asymmetric key means AKV, certificate means service-managed keys*/
       [encryptor_thumbprint]
 FROM [sys].[dm_database_encryption_keys]

Die folgende Abfrage gibt die verwendeten VLFs und die entsprechenden Fingerabdrücke der TDE-Schutzvorrichtung zurück. Jeder andere Fingerabdruck bezieht sich auf einen anderen Schlüssel in Azure Key Vault (AKV):

SELECT * FROM sys.dm_db_log_info (database_id)

Alternativ können Sie PowerShell oder die Azure-Befehlszeilenschnittstelle verwenden:

Der PowerShell-Befehl Get-AzureRmSqlServerKeyVaultKey stellt den Fingerabdruck der in der Abfrage verwendeten TDE-Schutzvorrichtung bereit, damit Sie sehen können, welche Schlüssel in AKV beibehalten und welche gelöscht werden müssen. Nur die von der Datenbank nicht mehr verwendeten Schlüssel können aus Azure Key Vault sicher gelöscht werden.

Bewahren des Zugriffs auf verschlüsselte Ressourcen

  1. Erstellen Sie einen neuen Schlüssel in Key Vault. Stellen Sie sicher, dass der neue Schlüssel in einem anderen Schlüsseltresor als der möglicherweise kompromittierten TDE-Schutzvorrichtung erstellt wird, da die Zugriffskontrolle auf Tresorebene bereitgestellt wird.

  2. Fügen Sie den neuen Schlüssel mithilfe der Cmdlets Add-AzSqlServerKeyVaultKey und Set-AzSqlServerTransparentDataEncryptionProtector dem Server hinzu, und aktualisieren Sie ihn als neue TDE-Schutzvorrichtung des Servers.

    # add the key from Key Vault to the server  
    Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>
    
    # set the key as the TDE protector for all resources under the server
    Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -ServerName <LogicalServerName> -Type AzureKeyVault -KeyId <KeyVaultKeyId>
    
  3. Stellen Sie mithilfe des Cmdlets Get-AzSqlServerTransparentDataEncryptionProtector sicher, dass der Server und alle Replikate auf die neue TDE-Schutzvorrichtung aktualisiert wurden.

    Hinweis

    Es kann einige Minuten dauern, bis sich die neue TDE-Schutzvorrichtung auf alle Datenbanken und sekundären Datenbanken auf dem Server verteilt.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Führen Sie eine Sicherung des neuen Schlüssels in Key Vault durch.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Löschen Sie den kompromittierten Schlüssel mithilfe des Cmdlets Remove-AzKeyVaultKey aus Key Vault.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Zum künftigen Wiederherstellen eines Schlüssels in Key Vault verwenden Sie das Cmdlet Restore-AzKeyVaultKey.

    Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
    

Verhindern des Zugriffs auf verschlüsselte Ressourcen

  1. Löschen Sie die Datenbanken, die durch den möglicherweise kompromittierten Schlüssel verschlüsselt sind.

    Die Datenbank- und Protokolldateien werden automatisch gesichert, sodass eine Point-in-Time-Wiederherstellung der Datenbank jederzeit durchgeführt werden kann (solange Sie den Schlüssel bereitstellen). Die Datenbanken müssen gelöscht werden, bevor eine aktive TDE-Schutzvorrichtung gelöscht wird, um einen möglichen Datenverlust von bis zu zehn Minuten der letzten Transaktionen zu verhindern.

  2. Sichern Sie das Schlüsselmaterial der TDE-Schutzvorrichtung in Key Vault.

  3. Entfernen Sie den möglicherweise kompromittierten Schlüssel aus Key Vault.

Hinweis

Es kann etwa 10 Minuten dauern, bis alle Berechtigungsänderungen für den Schlüsseltresor wirksam werden. Dies umfasst das Aufheben der Zugriffsberechtigungen für die TDE-Schutzvorrichtung in AKV, und innerhalb dieses Zeitraums können Benutzer weiterhin über Zugriffsberechtigungen verfügen.