Usuń ochronę Transparent Data Encryption w Azure Synapse Analytics

Wskazówka

Microsoft Fabric Data Warehouse to magazyn relacyjny w skali przedsiębiorstwa na podstawie bazy danych data lake z architekturą gotową do użycia w przyszłości, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz korzystać z magazynowania danych, zacznij od Fabric Data Warehouse. Istniejące obciążenia dedykowanej puli SQL mogą zostać zaktualizowane do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analizy w czasie rzeczywistym i raportowania.

Dotyczy: Dedykowane pule SQL dla Azure Synapse Analytics (poprzednio SQL DW)

Stosuj tę procedurę, gdy protektor TDE zarządzany przez klienta może zostać naruszony. Przełącz na nowy protektor przed usunięciem lub wyłączeniem starego klucza, aby dedykowane pule SQL pozostały dostępne.

Caution

Usunięcie lub wyłączenie aktywnego ochraniacza TDE sprawia, że każda dedykowana pula SQL, która od niego zależy, staje się niedostępna. Przejrzyj plan reagowania na incydenty oraz wymagania dotyczące przechowywania kopii zapasowych przed usunięciem klucza.

Note

Ten artykuł dotyczy samodzielnych dedykowanych pul SQL (dawniej SQL DW). W przypadku dedykowanych pul SQL w obszarze roboczym Synapse zobacz Szyfrowanie obszarów roboczych usługi Azure Synapse Analytics.

Usunięcie klucza nie unieważnia kopii tego klucza, które wcześniej zostały utworzone w kopii zapasowej lub przywrócone do innego magazynu kluczy. Chroń i zinwentaryzuj każdą kopię w ramach reakcji na incydent.

Prerequisites

Sprawdź odciski palców protektora TDE

Poniższe kroki opisują, jak sprawdzić odciski palca protektora TDE, których nadal używają pliki Virtual Log Files (VLF) danej bazy danych.

Wykonaj następujące zapytanie, aby znaleźć odcisk palca bieżącego protektora TDE dla bazy danych oraz identyfikator bazy danych:

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]

Wykonaj następujące zapytanie, aby zwrócić VLF-y i używane odciski palca ochronnika TDE. Każdy inny odcisk palca odnosi się do innego klucza w Azure Key Vault:

SELECT * FROM sys.dm_db_log_info (database_id)

Alternatywnie możesz użyć programu PowerShell lub interfejsu wiersza polecenia platformy Azure:

  • Polecenie programu PowerShell Get-AzSqlServerKeyVaultKey podaje odcisk palca protektora TDE użytego w zapytaniu, dzięki czemu możesz zobaczyć, które klucze zachować, a które usunąć w Azure Key Vault. Tylko klucze, których baza już nie używa, można bezpiecznie usunąć z Azure Key Vault.

  • Polecenie Azure CLI az sql server key show dostarcza odcisk palca ochrony TDE używanej w zapytaniu, dzięki czemu możesz zobaczyć, które klucze zachować, a które usunąć w Azure Key Vault. Tylko klucze, których baza już nie używa, można bezpiecznie usunąć z Azure Key Vault.

Zachowaj dostęp do zaszyfrowanych zasobów

PowerShell

  1. Utwórz nowy klucz w usłudze Azure Key Vault. Upewnij się, że tworzysz ten nowy klucz w osobnym magazynie kluczy, innym niż ten zawierający potencjalnie naruszony moduł ochrony TDE, ponieważ kontrola dostępu jest ustanawiana na poziomie magazynu.

  2. Dodaj nowy klucz do serwera, używając poleceń cmdlet Add-AzSqlServerKeyVaultKey i Set-AzSqlServerTransparentDataEncryptionProtector, i ustaw go jako nowy protektor TDE serwera.

    # 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. Upewnij się, że serwer i wszelkie repliki zaktualizują się do nowej ochrony TDE, korzystając z polecenia cmdlet Get-AzSqlServerTransparentDataEncryptionProtector.

    Note

    Propagacja nowej funkcji ochrony TDE do wszystkich baz danych i pomocniczych baz danych na serwerze może potrwać kilka minut.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Utwórz kopię zapasową nowego klucza w usłudze Azure Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Usuń skompromitowany klucz z Azure Key Vault, używając polecenia cmdlet Remove-AzKeyVaultKey.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Aby przywrócić klucz do usługi Azure Key Vault w przyszłości, użyj polecenia cmdlet Restore-AzKeyVaultKey .

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

Azure CLI

Aby uzyskać informacje o poleceniach, zobacz Azure CLI keyvault.

  1. Utwórz nowy klucz w usłudze Azure Key Vault. Upewnij się, że tworzysz ten nowy klucz w innym skarbcu kluczy niż potencjalnie naruszone zabezpieczenie TDE, ponieważ kontrola dostępu jest konfigurowana na poziomie skarbca.

  2. Dodaj nowy klucz do serwera i zaktualizuj go jako nową funkcję ochrony TDE serwera.

    # 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. Upewnij się, że serwer i wszelkie repliki zostaną zaktualizowane do korzystania z nowego protektora TDE.

    Note

    Propagacja nowej funkcji ochrony TDE do wszystkich baz danych i pomocniczych baz danych na serwerze może potrwać kilka minut.

    az sql server tde-key show --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
  4. Utwórz kopię zapasową nowego klucza w usłudze 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. Usuń naruszony klucz z usługi Azure Key Vault.

    az keyvault key delete --name <KeyVaultKeyName> --vault-name <KeyVaultName>
    
  6. Przywróć klucz do Azure Key Vault, umożliwiające przyszłe przywrócenie.

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

Sprawianie, że zaszyfrowane zasoby są niedostępne

  1. Usuń bazy danych, które używają potencjalnie skompromitowanego klucza do szyfrowania.

    System automatycznie robi kopie zapasowe bazy danych i plików logów, dzięki czemu możesz w dowolnym momencie przeprowadzić przywracanie bazy danych do określonego punktu w czasie (pod warunkiem, że podasz klucz). Usuń bazy danych przed usunięciem aktywnego protektora TDE, aby uniknąć potencjalnej utraty danych obejmującej do 10 minut najnowszych transakcji.

  2. Kopia zapasowa materiału kryptograficznego TDE w usłudze Azure Key Vault.

  3. Usuń potencjalnie naruszony klucz z usługi Azure Key Vault.

Note

Może minąć około 10 minut, zanim jakiekolwiek zmiany uprawnień dla magazynu kluczy wejdą w życie. Ten okres obejmuje cofnięcie uprawnień dostępu do ochrony TDE w AKV, a użytkownicy mogą nadal mieć uprawnienia dostępu.