Ruotare la protezione Transparent Data Encryption (TDE)

Si applica a: database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics (solo pool SQL dedicati)

Questo articolo descrive la rotazione delle chiavi per un server usando una protezione TDE di Azure Key Vault. Ruotare una protezione TDE logica per un server significa passare a una nuova chiave asimmetrica che protegge i database nel server. La rotazione delle chiavi è un'operazione online e richiede solo pochi secondi, perché si limita a decrittografare e crittografare nuovamente la chiave di crittografia dei dati del database, ma non l'intero database.

Questo articolo illustra i metodi automatizzati e manuali per ruotare la protezione TDE nel server.

Considerazioni importanti quando si ruota la protezione TDE

  • Quando viene modificata/ruotata la protezione TDE per un database, inclusi i file di resoconto di cui è stato eseguito il backup, i backup precedenti del database non vengono aggiornati per l'uso della protezione TDE più recente. Per ripristinare un backup crittografato con la protezione TDE del Key Vault, assicurarsi che il materiale della chiave sia disponibile per il server di destinazione. Per questa ragione, è consigliabile conservare tutte le versioni precedenti della protezione TDE nell’Azure Key Vault (AKV) in modo che i backup dei database possano essere ripristinati.
  • Anche quando si passa dalla chiave gestita dal cliente (CMK) alla chiave gestita dal servizio, mantenere tutte le chiavi usate in precedenza in Azure Key Vault. Ciò garantisce che i backup del database, inclusi i file di resoconto di cui è stato effettuato il backup, possano essere ripristinati con le protezioni TDE memorizzate nell’Azure Key Vault.
  • Oltre ai backup precedenti, i file di registro delle transazioni potrebbero anche richiedere l'accesso alla protezione TDE precedente. Per determinare se sono presenti log rimanenti che richiedono ancora la chiave precedente, dopo l'esecuzione della rotazione delle chiavi, usare la DMV sys.dm_db_log_info. Questa DMV restituisce informazioni sul file di log virtuale (VLF) del log delle transazioni insieme all'identificazione personale della chiave di crittografia del file VLF.
  • Le chiavi meno recenti devono essere mantenute in Azure Key Vault e disponibili per il server in base al periodo di conservazione dei backup configurato come i criteri di conservazione dei back-of-backup nel database. Ciò consente di garantire che tutti i backup di conservazione a lungo termine (LTR) nel server possano comunque essere ripristinati usando le chiavi precedenti.

Nota

È necessario riprendere un pool SQL dedicato sospeso in Azure Synapse Analytics prima delle rotazioni delle chiavi.

Questo articolo si applica a Database SQL di Azure, Istanza gestita di SQL di Azure e pool SQL dedicati di Azure Synapse Analytics (in precedenza SQL DW). Per la documentazione su Transparent Data Encryption (TDE) per pool SQL dedicati all'interno delle aree di lavoro di Synapse, vedere Crittografia di Azure Synapse Analytics.

Importante

Non eliminare le versioni precedenti della chiave dopo il rollover. Quando viene eseguito il rollover delle chiavi, alcuni dati rimangono crittografati con le chiavi precedenti, ad esempio backup di database precedenti, file di log sottoposti a backup e file di log delle transazioni.

Prerequisiti

  • Questa guida pratica presuppone che una chiave di Azure Key Vault sia già in uso come protezione TDE per un database SQL di Azure o Azure Synapse Analytics. Vedere Transparent Data Encryption con supporto BYOK.
  • È necessario che sia installato e sia esecuzione Azure PowerShell.

Suggerimento

Consigliata ma facoltativa - Creare innanzitutto il materiale della chiave per la protezione TDE in un modulo di protezione hardware (HSM) o in un archivio chiavi locale e importare il materiale della chiave in Azure Key Vault. Seguire le Istruzioni per l'uso di un modulo di protezione hardware (HSM) e di Key Vault per altre informazioni.

Accedere al portale di Azure

Rotazione delle chiavi automatica

La rotazione automatica per la protezione TDE può essere abilitata quando si configura la protezione TDE per il server o il database, dal portale di Azure o usando i comandi di PowerShell o dell'interfaccia della riga di comando di Azure seguenti. Una volta abilitato, il server controlla continuamente l'insieme di credenziali delle chiavi per le nuove versioni della chiave usata come protezione TDE. Se viene rilevata una nuova versione della chiave, la protezione TDE nel server o nel database verrà ruotata automaticamente all’ultima versione entro 24 ore.

La rotazione automatica in un server, un database o un'istanza gestita può essere usata con la rotazione automatica delle chiavi in Azure Key Vault per abilitare la rotazione del tocco zero end-to-end per le chiavi TDE.

Nota

Se nel server o nell'istanza gestita è configurata la replica geografica, prima di abilitare la rotazione automatica, è necessario seguire altre linee guida come descritto qui.

Usare il portale di Azure:

  1. Passare alla sezione Transparent Data Encryption per un server o un'istanza gestita esistente.
  2. Selezionare l'opzione Chiave gestita dal cliente e selezionare l'insieme di credenziali delle chiavi e la chiave da usare come protezione TDE.
  3. Selezionare la casella di controllo Ruota automatica della chiave.
  4. Seleziona Salva.

Screenshot della configurazione della chiave di rotazione automatica per Transparent Data Encryption.

Rotazione automatica delle chiavi a livello di database

La rotazione automatica delle chiavi può essere abilitata anche a livello di database per database SQL di Azure. Ciò è utile quando si desidera abilitare la rotazione automatica delle chiavi per uno o un solo subset di database in un server. Per altre informazioni, vedere Gestione delle identità e delle chiavi per TDE con chiavi gestite dal cliente a livello di database.

Per portale di Azure informazioni sulla configurazione della rotazione automatica delle chiavi a livello di database, vedere Aggiornare un database SQL di Azure esistente con chiavi gestite dal cliente a livello di database.

Rotazione automatica delle chiavi per le configurazioni di replica geografica

In una configurazione di replica geografica database SQL di Azure in cui il server primario è impostato per l'uso di TDE con chiave gestita dal cliente, è necessario configurare anche il server secondario per abilitare TDE con la chiave gestita dal cliente con la stessa chiave usata nel database primario.

Usare il portale di Azure:

  1. Passare alla sezione Transparent Data Encryption per il server primario.

  2. Selezionare l'opzione Chiave gestita dal cliente e selezionare l'insieme di credenziali delle chiavi e la chiave da usare come protezione TDE.

  3. Selezionare la casella di controllo Ruota automatica della chiave.

  4. Seleziona Salva.

    Screenshot della configurazione della chiave di rotazione automatica per Transparent Data Encryption in uno scenario di replica geografica nel server primario.

  5. Passare alla sezione Transparent Data Encryption per il server secondario.

  6. Selezionare l'opzione Chiave gestita dal cliente e selezionare l'insieme di credenziali delle chiavi e la chiave da usare come protezione TDE. Usare la stessa chiave usata per il server primario.

  7. Deselezionare Rendi questa chiave la protezione TDE predefinita.

  8. Seleziona Salva.

    Screenshot della configurazione della chiave di rotazione automatica per Transparent Data Encryption in uno scenario di replica geografica nel server secondario.

Quando la chiave viene ruotata sul server primario, viene trasferita automaticamente al server secondario.

Usare chiavi diverse per ogni server

È possibile configurare i server primari e secondari con una chiave dell'insieme di credenziali delle chiavi diversa durante la configurazione di TDE con la chiave gestita dal cliente nel portale di Azure. Non è evidente nel portale di Azure che la chiave usata per proteggere il server primario è la stessa chiave usata per proteggere il database primario replicato nel server secondario. Tuttavia, è possibile usare PowerShell, l'interfaccia della riga di comando di Azure o le API REST per ottenere informazioni dettagliate sulle chiavi usate nel server. Ciò mostra che le chiavi ruotate automaticamente vengono trasferite dal server primario al server secondario.

Ecco un esempio di uso dei comandi di PowerShell per verificare la presenza di chiavi trasferite dal server primario al server secondario dopo la rotazione delle chiavi.

  1. Eseguire il comando seguente nel server primario per visualizzare i dettagli chiave di un server:

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  2. I risultati visualizzati saranno simili ai seguenti:

    ResourceGroupName : <SQLDatabaseResourceGroupName> 
    ServerName        : <logicalServerName> 
    ServerKeyName     : <keyVaultKeyName> 
    Type              : AzureKeyVault 
    Uri               : https://<keyvaultname>.vault.azure.net/keys/<keyName>/<GUID> 
    Thumbprint        : <thumbprint> 
    CreationDate      : 12/13/2022 8:56:32 PM
    
  3. Eseguire lo stesso comando Get-AzSqlServerKeyVaultKey nel server secondario:

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  4. Se il server secondario ha una protezione TDE predefinita con una chiave diversa rispetto al server primario, verranno visualizzate due o più chiavi. La prima chiave è la protezione TDE predefinita e la seconda è la chiave usata nel server primario usato per proteggere il database replicato.

  5. Quando la chiave viene ruotata sul server primario, viene trasferita automaticamente al server secondario. Se si dovesse eseguire di nuovo Get-AzSqlServerKeyVaultKey nel server primario, verranno visualizzate due chiavi. La prima chiave è la chiave originale e la seconda, ovvero la chiave corrente generata come parte della rotazione della chiave.

  6. L'esecuzione del comando Get-AzSqlServerKeyVaultKey nel server secondario deve mostrare anche le stesse chiavi presenti nel server primario. Ciò conferma che le chiavi ruotate nel server primario vengono trasferite automaticamente al server secondario e usate per proteggere la replica di database.

Rotazione manuale delle chiavi

La rotazione manuale delle chiavi usa i comandi seguenti per aggiungere una chiave nuova, che potrebbe avere un nome diverso oppure trovarsi sotto un altro insieme di credenziali delle chiavi. Questo approccio consente di aggiungere la stessa chiave a diversi insiemi di credenziali delle chiavi per supportare scenari di ripristino di emergenza geografico a disponibilità elevata. È anche possibile eseguire la rotazione manuale delle chiavi usando il portale di Azure.

Con la rotazione manuale delle chiavi, quando viene generata una nuova versione della chiave nell'insieme di credenziali delle chiavi (manualmente o tramite criteri di rotazione automatica delle chiavi nell'insieme di credenziali delle chiavi), lo stesso deve essere impostato manualmente come protezione TDE nel server.

Nota

La lunghezza combinata per il nome dell'insieme di credenziali delle chiavi non può superare 94 caratteri.

Usare il portale di Azure:

  1. Passare al menu Transparent Data Encryption per un server o un'istanza gestita esistente.
  2. Selezionare l'opzione Chiave gestita dal cliente e selezionare l'insieme di credenziali delle chiavi e la chiave da usare come nuova protezione TDE.
  3. Seleziona Salva.

Screenshot della configurazione della chiave ruota manualmente per Transparent Data Encryption.

Cambiare la modalità di protezione TDE

Usare il portale di Azure per cambiare la protezione TDE dalla gestione Microsoft alla modalità BYOK:

  1. Passare al menu Transparent Data Encryption per un server o un'istanza gestita esistente.
  2. Selezionare l'opzione Chiave gestita dal cliente.
  3. Selezionare l’insieme delle credenziali delle chiavi e la chiave da usare per la protezione TDE.
  4. Seleziona Salva.