Ta bort ett Transparent Data Encryption-skydd i Azure Synapse Analytics

Tip

Microsoft Fabric Data Warehouse är ett relationslager i företagsskala på en datasjögrund med en framtidsklar arkitektur, inbyggd AI och nya funktioner. Om du är nybörjare på datalager börjar du med Fabric Data Warehouse. Befintliga dedicerade SQL-poolarbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.

Gäller för: Dedikerade SQL-pooler i Azure Synapse Analytics (tidigare SQL DW)

Använd denna procedur när ett kundhanterat TDE-skydd kan vara komprometterat. Rotera till ett nytt skydd innan du tar bort eller inaktiverar den gamla nyckeln så att de dedikerade SQL-poolerna förblir tillgängliga.

Caution

Att ta bort eller inaktivera ett aktivt TDE-skydd gör att varje dedikerad SQL-pool som är beroende av det blir otillgänglig. Gå igenom incidenthanteringsplanen och kraven för lagring av säkerhetskopior innan du tar bort en nyckel.

Note

Den här artikeln handlar om fristående dedikerade SQL-pooler (tidigare SQL DW). För dedikerade SQL-pooler i en Synapse-arbetsyta, se Encryption for Azure Synapse Analytics workspaces.

Att radera en nyckel ogiltigförklarar inte kopior av den nyckeln som tidigare säkerhetskopierats eller återställts till ett annat nyckelvalv. Skydda och inventera varje kopia som en del av incidenthanteringen.

Prerequisites

Kontrollera TDE-skyddets fingeravtryck

Följande steg beskriver hur man kontrollerar TDE-skyddets tumavtryck som Virtual Log Files (VLF) i en given databas fortfarande använder.

Kör följande fråga för att hitta tumavtrycket för det aktuella TDE-skyddet för databasen och databas-ID:t:

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

Kör följande fråga för att returnera VLF:erna och TDE-skyddets tumavtryck som används. Varje olika tumavtryck syftar på en annan nyckel i Azure Key Vault:

SELECT * FROM sys.dm_db_log_info (database_id)

Du kan också använda PowerShell eller Azure CLI:

  • PowerShell-kommandot Get-AzSqlServerKeyVaultKey ger tumavtryck för TDE-skyddet som används i frågan, så du kan se vilka nycklar som ska behållas och vilka nycklar som ska tas bort i Azure Key Vault. Endast nycklar som databasen inte längre använder kan säkert raderas från Azure Key Vault.

  • Azure CLI-kommandot az sql server key show ger tumavtrycket för TDE-skyddet som används i förfrågan, så du kan se vilka nycklar som ska sparas och vilka nycklar som ska tas bort i Azure Key Vault. Endast nycklar som databasen inte längre använder kan säkert raderas från Azure Key Vault.

Håll krypterade resurser tillgängliga

PowerShell

  1. Skapa en ny nyckel i Azure Key Vault. Se till att du skapar denna nya nyckel i ett separat nyckelvalv från det potentiellt komprometterade TDE-skydd, eftersom åtkomstkontroll är tilldelad på valvnivå.

  2. Lägg till den nya nyckeln på servern genom att använda cmdletarna Add-AzSqlServerKeyVaultKey och Set-AzSqlServerTransparentDataEncryptionProtector, och uppdatera den som serverns nya TDE-skyddsobjekt.

    # 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>
    
  3. Se till att servern och eventuella repliker uppdateras till det nya TDE-skyddet genom att använda Get-AzSqlServerTransparentDataEncryptionProtector-cmdleten .

    Note

    Det kan ta några minuter innan det nya TDE-skyddet sprids till alla databaser och sekundära databaser under servern.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Gör en säkerhetskopia av den nya nyckeln i Azure Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Ta bort den komprometterade nyckeln från Azure Key Vault genom att använda cmdleten Remove-AzKeyVaultKey.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Om du vill återställa en nyckel till Azure Key Vault i framtiden använder du cmdleten Restore-AzKeyVaultKey .

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

Azure CLI

Kommandoreferens finns i Azure CLI keyvault.

  1. Skapa en ny nyckel i Azure Key Vault. Se till att du skapar denna nya nyckel i ett separat nyckelvalv från den potentiellt komprometterade TDE protector, eftersom åtkomstkontroll är tilldelad på valvnivå.

  2. Lägg till den nya nyckeln på servern och uppdatera den som serverns nya TDE-skydd.

    # add the key from Azure Key Vault to the server  
    az sql server key create --kid <KeyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
    # set the key as the TDE protector for all resources under the server
    az sql server tde-key set --server-key-type AzureKeyVault --kid <KeyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
  3. Se till att servern och eventuella repliker uppdateras till det nya TDE-skydd.

    Note

    Det kan ta några minuter innan det nya TDE-skyddet sprids till alla databaser och sekundära databaser under servern.

    az sql server tde-key show --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
  4. Gör en säkerhetskopia av den nya nyckeln i Azure Key Vault.

    # --file parameter is optional; if removed, a file name is automatically generated.
    az keyvault key backup --file <DesiredBackupFilePath> --name <KeyVaultKeyName> --vault-name <KeyVaultName>
    
  5. Ta bort den komprometterade nyckeln från Azure Key Vault.

    az keyvault key delete --name <KeyVaultKeyName> --vault-name <KeyVaultName>
    
  6. Återställ en nyckel till framtida Azure Key Vault.

    az keyvault key restore --file <BackupFilePath> --vault-name <KeyVaultName>
    

Gör krypterade resurser otillgängliga

  1. Ta bort databaserna som använder den potentiellt komprometterade nyckeln för kryptering.

    Systemet säkerhetskopierar automatiskt databasen och loggfilerna, så du kan utföra en tidpunktsåterställning av databasen när som helst (så länge du tillhandahåller nyckeln). Släpp databaserna innan du tar bort ett aktivt TDE-skydd för att undvika potentiell dataförlust av de senaste transaktionerna från upp till de senaste 10 minuterna.

  2. Säkerhetskopiera nyckelmaterialet för TDE-skyddet i Azure Key Vault.

  3. Ta bort den potentiellt komprometterade nyckeln från Azure Key Vault.

Note

Det kan ta ungefär 10 minuter innan eventuella behörighetsändringar träder i kraft för nyckelvalvet. Denna gång inkluderar återkallelse av åtkomstbehörigheter till TDE-skyddet i AKV, och användare kan fortfarande ha åtkomsträttigheter.