Condividi tramite


Crittografia dei dati nel database SQL in Microsoft Fabric

si applica a:database SQL in Microsoft Fabric

Importante

Questa funzionalità si trova in Anteprima.

Microsoft Fabric crittografa tutti i dati inattivi usando chiavi gestite da Microsoft. Tutti i dati del database SQL vengono archiviati in account di archiviazione di Azure remoti. Per rispettare i requisiti di crittografia dei dati inattivi tramite chiavi gestite da Microsoft, ogni account di archiviazione di Azure usato dal database SQL viene configurato con la crittografia lato servizio abilitata.

Con le chiavi gestite dal cliente per le aree di lavoro di Fabric, è possibile usare le chiavi di Azure Key Vault per aggiungere un altro livello di protezione ai dati nelle aree di lavoro di Microsoft Fabric, inclusi tutti i dati nel database SQL in Microsoft Fabric. Una chiave gestita dal cliente offre una maggiore flessibilità, consentendo di gestire la rotazione, controllare l'accesso e il controllo dell'utilizzo. Le chiavi gestite dal cliente aiutano anche le organizzazioni a soddisfare le esigenze di governance dei dati e a rispettare gli standard di protezione e crittografia dei dati.

  • Quando una chiave gestita dal cliente è configurata per un'area di lavoro in Microsoft Fabric, Transparent Data Encryption viene abilitata automaticamente per tutti i database SQL (e tempdb) all'interno di tale area di lavoro usando la chiave gestita dal cliente specificata. Questo processo è completamente facile e non richiede alcun intervento manuale.
    • Mentre il processo di crittografia inizia automaticamente per tutti i database SQL esistenti, non è istantaneo; la durata dipende dalle dimensioni di ogni database SQL, con database SQL di dimensioni maggiori che richiedono più tempo per completare la crittografia.
    • Dopo aver configurato la chiave gestita dal cliente, tutti i database SQL creati nell'area di lavoro verranno crittografati anche usando la chiave gestita dal cliente.
  • Se la chiave gestita dal cliente viene rimossa, il processo di decrittografia viene attivato per tutti i database SQL nell'area di lavoro. Analogamente alla crittografia, la decrittografia dipende anche dalle dimensioni del database SQL e può richiedere tempo per il completamento. Dopo la decrittografia, i database SQL tornano a usare chiavi gestite da Microsoft per la crittografia.

Funzionamento di Transparent Data Encryption nel database SQL in Microsoft Fabric

Transparent Data Encryption esegue la crittografia in tempo reale e la decrittografia del database, dei backup associati e dei file di log delle transazioni a riposo.

  • Questo processo si verifica a livello di pagina, ovvero ogni pagina viene decrittografata quando si legge in memoria e si ricrittografa prima di essere riscritto su disco.
  • Transparent Data Encryption protegge l'intero database usando una chiave simmetrica nota come chiave DEK (Database Encryption Key).
  • All'avvio del database, la chiave DEK crittografata viene decrittografata e usata dal motore di database di SQL Server per gestire le operazioni di crittografia e decrittografia.
  • La chiave DEK è protetta dalla protezione transparent data encryption, ovvero una chiave asimmetrica gestita dal cliente, in particolare la chiave gestita dal cliente configurata a livello di area di lavoro.

Diagramma della crittografia per il database SQL in Microsoft Fabric.

Backup e ripristino

Una volta crittografato un database SQL con una chiave gestita dal cliente, anche tutti i backup appena generati vengono crittografati con la stessa chiave.

Quando la chiave viene modificata, i backup precedenti del database SQL non vengono aggiornati per usare la chiave più recente. Per ripristinare un backup crittografato con una chiave gestita dal cliente, assicurarsi che il materiale della chiave sia disponibile in Azure Key Vault. È pertanto consigliabile che i clienti mantengano tutte le versioni precedenti delle chiavi gestite dal cliente in Azure Key Vault, in modo che sia possibile ripristinare i backup del database SQL.

Il processo di ripristino del database SQL rispetta sempre l'impostazione dell'area di lavoro chiave gestita dal cliente. La tabella seguente illustra vari scenari di ripristino in base alle impostazioni della chiave gestita dal cliente e al fatto che il backup sia crittografato.

Il backup è... Impostazione dell'area di lavoro chiave gestita dal cliente Stato della crittografia dopo il ripristino
Non crittografato Disabled Il database SQL non è crittografato
Non crittografato Enabled Il database SQL viene crittografato con la chiave gestita dal cliente
Crittografato con la chiave gestita dal cliente Disabled Il database SQL non è crittografato
Crittografato con la chiave gestita dal cliente Enabled Il database SQL viene crittografato con la chiave gestita dal cliente
Crittografato con la chiave gestita dal cliente Abilitata ma diversa chiave gestita dal cliente Il database SQL viene crittografato con la nuova chiave gestita dal cliente

Verificare la corretta chiave gestita dal cliente

Dopo aver abilitato la crittografia della chiave gestita dal cliente nell'area di lavoro, il database esistente verrà crittografato. Un nuovo database in un'area di lavoro verrà crittografato anche quando la chiave gestita dal cliente è abilitata. Per verificare se il database è crittografato correttamente, eseguire la query T-SQL seguente:

SELECT DB_NAME(database_id) as DatabaseName, * 
FROM sys.dm_database_encryption_keys 
WHERE database_id <> 2;
  • Un database viene crittografato se il encryption_state_desc campo viene visualizzato ENCRYPTED con ASYMMETRIC_KEY come encryptor_type.
  • Se lo stato è ENCRYPTION_IN_PROGRESS, la percent_complete colonna indicherà lo stato di avanzamento della modifica dello stato di crittografia. Questo sarà 0 se non è in corso alcuna modifica dello stato.
  • Se non è crittografato, un database non verrà visualizzato nei risultati della query di sys.dm_database_encryption_keys.

Risolvere i problemi relativi alla chiave gestita dal cliente inaccessibile

Quando una chiave gestita dal cliente è configurata per un'area di lavoro in Microsoft Fabric, è necessario l'accesso continuo alla chiave affinché il database SQL rimanga online. Se il database SQL perde l'accesso alla chiave in Azure Key Vault, fino a 10 minuti il database SQL inizia a negare tutte le connessioni e ne modifica lo stato in Inaccessibile. Gli utenti riceveranno un messaggio di errore corrispondente, ad esempio "Database <database ID>.database.fabric.microsoft.com non accessibile a causa di un errore critico di Azure Key Vault".

  • Se l'accesso alla chiave viene ripristinato entro 30 minuti, il database SQL verrà ripristinato automaticamente entro l'ora successiva.
  • Se l'accesso alla chiave viene ripristinato dopo più di 30 minuti, il ripristino automatico del database SQL non è possibile. Il ripristino del database SQL richiede passaggi aggiuntivi e può richiedere una quantità significativa di tempo a seconda delle dimensioni del database SQL.

Usare la procedura seguente per convalidare nuovamente la chiave gestita dal cliente:

  1. Nell'area di lavoro, fai clic con il pulsante destro del mouse sul database SQL o sul menu contestuale .... Seleziona Impostazioni.
  2. Selezionare Crittografia (anteprima).
  3. Per tentare di riconvalidare la chiave gestita dal cliente, selezionare il pulsante Revalidate customer-managed key (Riconvalida chiave gestita dal cliente ). Se la riconvalida ha esito positivo, il ripristino dell'accesso al database SQL può richiedere del tempo.

Annotazioni

Quando si riconvalida la chiave per un database SQL, la chiave viene riconvalidata automaticamente per tutti i database SQL all'interno dell'area di lavoro.

Limitazioni

Limitazioni correnti quando si usa la chiave gestita dal cliente per un database SQL in Microsoft Fabric:

  • Le chiavi a 4.096 bit non sono supportate per il database SQL in Microsoft Fabric. Le lunghezze di chiave supportate sono 2.048 bit e 3.072 bit.
  • La chiave gestita dal cliente deve essere una chiave RSA o RSA-HSM asimmetrica.
  • Attualmente, la crittografia della chiave gestita dal cliente è disponibile nelle aree seguenti:
    • Stati Uniti orientali 2, Stati Uniti centro-settentrionali, Stati Uniti centro-meridionali
    • Asia: Australia orientale, Asia sud-orientale, Emirati Arabi Uniti settentrionali
    • Europa: Europa settentrionale, Europa occidentale