Konfigurieren von Georeplikation und Sicherung/Wiederherstellung für transparente Datenverschlüsselung mit kundenseitig verwalteten Schlüsseln auf Datenbankebene

Gilt für: Dedizierte SQL-Pools (früher SQL DW) in Azure Synapse Analytics

Tip

Microsoft Fabric Data Warehouse ist ein relationales Enterprise-Warehouse auf einem Data Lake-Fundament mit zukunftsfähiger Architektur, integrierter KI und neuen Features. Wenn Sie mit Data Warehouse noch nicht vertraut sind, beginnen Sie mit Fabric Data Warehouse. Vorhandene dedizierte SQL-Pool-Workloads können auf Fabric aktualisieren, um neue Funktionen in den Bereichen Data Science, Echtzeitanalyse und Berichterstellung zu nutzen.

Dieser Artikel erklärt, wie man einen Schlüssel aus Azure Key Vault für transparente Datenverschlüsselung (TDE) in Azure Synapse Analytics verwendet. Weitere Informationen zur Integration von TDE mit Azure Key Vault und BYOK-Unterstützung (Bring Your Own Key) finden Sie unter TDE mit vom Kunden verwalteten Schlüsseln in Azure Key Vault.

Note

Dieser Artikel behandelt eigenständige dedizierte SQL-Pools (früher SQL DW).

  • Für Azure Synapse Analytics dedizierte SQL-Pools (früher SQL DW) setzen Sie den TDE-Schutz auf Serverebene. Alle verschlüsselten Datenbanken, die diesem Server zugeordnet sind, übernehmen die TDE-Schutzvorrichtung.
  • Verschlüsseln Sie die Daten in dedizierten SQL-Pools und serverlosen SQL-Pools in einem Synapse-Arbeitsbereich, indem Sie den vom Kunden verwalteten Schlüssel verwenden, der auf Arbeitsbereichsebene konfiguriert ist. Weitere Informationen zur transparenten Datenverschlüsselung für dedizierte SQL-Pools in Synapse-Arbeitsbereichen finden Sie unter Azure Synapse Analytics-Verschlüsselung.

Voraussetzungen für PowerShell

  • Sie müssen über ein Azure-Abonnement verfügen und ein Administrator für dieses Abonnement sein.
  • [Empfohlen, aber optional] Sie sollten über ein Hardwaresicherheitsmodul (HSM) oder einen lokalen Schlüsselspeicher zum Erstellen einer lokalen Kopie des Schlüsselmaterials der TDE-Schutzvorrichtung verfügen.
  • Azure PowerShell muss installiert sein und ausgeführt werden.
  • Erstellen Sie eine Azure Key Vault-Instanz und einen Schlüssel zur Verwendung für TDE.
  • Der Schlüssel muss die folgenden Attribute aufweisen, um für TDE verwendet werden zu können:
    • Das Aktivierungsdatum (sofern festgelegt) muss ein Datum und eine Uhrzeit in der Vergangenheit sein.
    • Das Ablaufdatum (sofern festgelegt) muss ein Datum und eine Uhrzeit in der Zukunft sein.
    • Der Schlüssel muss sich im Zustand „Aktiviert“ befinden.
    • Fähigkeit zum Ausführen des get-, wrap key- und unwrap key-Vorgangs
  • Um einen Azure Key Vault verwalteten HSM-Schlüssel zu verwenden, folgen Sie den Anweisungen zum Erstellen und Aktivieren eines verwalteten HSM mithilfe von Azure CLI

Anweisungen zur Installation des Az PowerShell-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).

Einzelheiten zu Azure Key Vault finden Sie in den Anweisungen zur Verwendung von PowerShell mit Azure Key Vault und darin, wie Sie Azure Key Vault Soft-Delete mit PowerShell verwenden.

Zuweisen einer Microsoft Entra-Identität zu Ihrem Server

Wenn Sie einen bestehenden Server haben, verwenden Sie die folgenden Anweisungen, um eine Microsoft Entra-Identität zu Ihrem Server hinzuzufügen:

$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity

Wenn Sie einen Server erstellen, verwenden Sie das New-AzSqlServer-Cmdlet mit dem -Identity Tag, um während der Servererstellung eine Microsoft Entra-Identität hinzuzufügen:

$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
    -ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity

Erteilen von Azure Key Vault-Berechtigungen für Ihren Server

Verwenden Sie das Cmdlet Set-AzKeyVaultAccessPolicy, um Ihrem Server Zugriff auf den Schlüsseltresor zu gewähren, bevor Sie einen Schlüssel daraus für TDE verwenden.

Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
    -ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey

Um Ihrem Server auf einem verwalteten HSM Berechtigungen hinzuzufügen, fügen Sie dem Server die lokale RBAC-Rolle Managed HSM Crypto Service Encryption User hinzu. Diese Rolle ermöglicht es dem Server, wrap key, unwrap key und get Operationen auf den Schlüsseln im verwalteten HSM durchzuführen. Weitere Informationen finden Sie unter Verwaltete HSM-Rollenverwaltung.

Hinzufügen des Azure Key Vault-Schlüssels zum Server und Festlegen der TDE-Schutzkomponente

Note

Verwenden Sie für verwaltete HSM-Schlüssel Az.Sql 2.11.1-Version von PowerShell oder höher.

Note

Die kombinierte Länge für den Schlüssel-Vault-Namen und den Schlüsselnamen darf 94 Zeichen nicht überschreiten.

Tip

Verwendung von versionierten Azure Key Vault Schlüsseln für TDE

Beim Setzen des TDE-Schutzes verweisen Sie auf einen Azure Key Vault-Schlüssel, indem Sie eine bestimmte Schlüsselversion verwenden.

Example:

  • Schlüsselkennung, die eine bestimmte Version enthält

    https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>

# add the key from Azure 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>

# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>

Aktivieren von TDE

Aktivieren Sie TDE mit dem Cmdlet Set-AzSqlDatabaseTransparentDataEncryption.

Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
   -ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"

Die Datenbank oder das Data Warehouse hat nun TDE aktiviert und verwendet einen Verschlüsselungsschlüssel, der im Azure Key Vault gespeichert ist.

Überprüfen des Verschlüsselungsstatus und der Verschlüsselungsaktivität

Verwenden Sie Get-AzSqlDatabaseTransparentDataEncryption, um den Verschlüsselungsstatus für eine Datenbank oder ein Data Warehouse abzurufen.

# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
   -ServerName <LogicalServerName> -DatabaseName <DatabaseName> `

Nützliche PowerShell-Cmdlets

  • Aktivieren Sie TDE mit dem Cmdlet Set-AzSqlDatabaseTransparentDataEncryption.

    Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -DatabaseName <DatabaseName> -State "Disabled"
    
  • Verwenden Sie das Cmdlet Get-AzSqlServerKeyVaultKey , um die Liste der azure Key Vault-Schlüssel zurückzugeben, die dem Server hinzugefügt wurden.

    # KeyId is an optional parameter, to return a specific key version
    Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  • Verwenden Sie den Remove-AzSqlServerKeyVaultKey , um einen Azure Key Vault-Schlüssel vom Server zu entfernen.

    # the key set as the TDE Protector cannot be removed
    Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    

Problembehandlung

  • Wenn der Schlüsseltresor nicht gefunden werden kann, stelle sicher, dass du im richtigen Abonnement bist.

    Get-AzSubscription -SubscriptionId <SubscriptionId>
    

  • Wenn Sie den neuen Schlüssel nicht dem Server hinzufügen können oder den neuen Schlüssel nicht als TDE Protector festlegen können, überprüfen Sie die folgenden Bedingungen:

    • Der Schlüssel hat kein Verfallsdatum.
    • Für den Schlüssel müssen die get-, wrap key- und unwrap key-Vorgänge aktiviert sein.