Rimuovere un protettore Transparent Data Encryption in Azure Synapse Analytics

Tip

Microsoft Fabric Data Warehouse è un data warehouse relazionale su scala aziendale su una base data lake, con un'architettura futura, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con il data warehousing, iniziare con Fabric Data Warehouse. I carichi di lavoro esistenti del pool SQL dedicated possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

Si applica a: pool SQL dedicati di Azure Synapse Analytics (in precedenza SQL Data Warehouse)

Utilizzare questa procedura quando un TDE protector gestito dal cliente potrebbe essere compromesso. Passa a un nuovo protettore prima di eliminare o disabilitare la chiave vecchia in modo che i pool SQL dedicati rimangano accessibili.

Caution

Eliminare o disabilitare un protettore TDE attivo rende inaccessibile ogni pool SQL dedicato che ne dipende da esso. Rivedere il piano di risposta all'incidente e i requisiti di mantenimento di backup prima di rimuovere una chiave.

Note

Questo articolo tratta i pool SQL dedicati standalone (precedentemente SQL DW). Per pool SQL dedicati in uno spazio di lavoro Synapse, vedi Crittografia per gli spazi di lavoro di Azure Synapse Analytics.

L'eliminazione di una chiave non invalida le copie di tale chiave di cui è stato precedentemente eseguito il backup o che sono state ripristinate in un altro insieme di credenziali. Proteggi e inventaria ogni copia come parte della risposta all'incidente.

Prerequisites

Controlla le impronte digitali del TDE protector

I passaggi seguenti spiegano come controllare le impronte digitali protettive TDE che i Virtual Log Files (VLF) di un dato database utilizzano ancora.

Esegui la seguente query per trovare il thumbprint del protettore TDE corrente per il database e l'ID del database:

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]

Esegui la seguente query per restituire i VLF e le impronte digitali del protettore TDE in uso. Ogni thumbprint diverso si riferisce a una chiave diversa in Azure Key Vault:

SELECT * FROM sys.dm_db_log_info (database_id)

In alternativa, è possibile usare PowerShell o l'interfaccia della riga di comando di Azure:

  • Il comando PowerShell Get-AzSqlServerKeyVaultKey fornisce l'impronta digitale del protettore TDE usato nella query, così puoi vedere quali chiavi tenere e quali eliminare in Azure Key Vault. Solo le chiavi che il database non utilizza più possono essere eliminate in sicurezza da Azure Key Vault.

  • Il comando az sql server key show interfaccia della riga di comando di Azure fornisce l'impronta digitale del protettore TDE usato nella query, così puoi vedere quali chiavi mantenere e quali eliminare in Azure Key Vault. Solo le chiavi che il database non utilizza più possono essere eliminate in sicurezza da Azure Key Vault.

Mantenere le risorse crittografate accessibili

PowerShell

  1. Creare una nuova chiave in Azure Key Vault. Assicurati di creare questa nuova chiave in un Key Vault separato dal potenziale elemento di protezione TDE compromesso, poiché il controllo degli accessi viene effettuato a livello di Key Vault.

  2. Aggiungi la nuova chiave al server usando i cmdlet Add-AzSqlServerKeyVaultKey e Set-AzSqlServerTransparentDataEncryptionProtector , e aggiornala come nuovo protettore TDE del server.

    # 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. Assicurati che il server e tutte le repliche aggiornino alla nuova utilità di protezione TDE utilizzando il cmdlet Get-AzSqlServerTransparentDataEncryptionProtector.

    Note

    La propagazione della nuova protezione TDE a tutti i database e ai database secondari nel server può richiedere alcuni minuti.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Effettuare un backup della nuova chiave in Azure Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Elimina la chiave compromessa da Azure Key Vault usando il cmdlet Remove-AzKeyVaultKey.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Per ripristinare una chiave in Azure Key Vault in futuro, usare il cmdlet Restore-AzKeyVaultKey .

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

interfaccia della riga di comando di Azure

Per consultare la documentazione relativa ai comandi, vedere interfaccia della riga di comando di Azure KeyVault.

  1. Creare una nuova chiave in Azure Key Vault. Assicurati di creare questa nuova chiave in un Key Vault separato rispetto al potenziale protettore TDE compromesso, poiché il controllo degli accessi è configurato a livello di Key Vault.

  2. Aggiungere la nuova chiave al server e aggiornarla come nuova protezione TDE del server.

    # 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. Assicurati che il server e tutte le repliche si aggiornino alla nuova protezione TDE.

    Note

    La propagazione della nuova protezione TDE a tutti i database e ai database secondari nel server può richiedere alcuni minuti.

    az sql server tde-key show --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
  4. Eseguire un backup della nuova chiave in 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. Eliminare la chiave compromessa da Azure Key Vault.

    az keyvault key delete --name <KeyVaultKeyName> --vault-name <KeyVaultName>
    
  6. Ripristina una chiave di Azure Key Vault in un secondo momento.

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

Rendere inaccessibili le risorse crittografate

  1. Elimina i database che utilizzano la chiave potenzialmente compromessa per la crittografia.

    Il sistema fa automaticamente il backup del database e dei file di log, così puoi effettuare un ripristino point-in-time del database in qualsiasi momento (purché tu fornisca la chiave). Rimuovi i database prima di eliminare un protettore TDE attivo per evitare una possibile perdita di dati relativa agli ultimi 10 minuti di transazioni.

  2. Eseguire il backup del materiale chiave del protettore TDE in Azure Key Vault.

  3. Rimuovere la chiave potenzialmente compromessa da Azure Key Vault.

Note

Potrebbero volerci circa 10 minuti perché eventuali modifiche ai permessi entrino in vigore per il Key Vault. Questo periodo include la revoca dei permessi di accesso al protettore TDE in AKV, e gli utenti potrebbero comunque avere i permessi di accesso.