Transparent Data Encryption per database SQL, Istanza gestita di SQL e Azure Synapse Analytics

Si applica a:Database SQL di AzureIstanza gestita di SQL di Azure Synapse Analytics

Transparent Data Encryption (TDE) aiuta a proteggere il database SQL di Azure, Istanza gestita di SQL di Azure e Azure Synapse Analytics dalle minacce di attività offline dannose crittografando i dati inattivi. Esegue in tempo reale la crittografia e la decrittografia del database, dei backup associati e dei file di log delle transazioni inattivi, senza richiedere modifiche dell'applicazione. Per impostazione predefinita, Transparent Data Encryption è abilitato per tutti i database SQL appena distribuiti ed è necessario abilitarlo manualmente per i database SQL di Azure meno recenti. Per Istanza gestita di SQL di Azure, TDE è abilitato a livello di istanza e di database appena creati. TDE deve essere abilitato manualmente per Azure Synapse Analytics.

Nota

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

Alcuni elementi considerati contenuto dei clienti, ad esempio nomi di tabella, nomi di oggetti e nomi di indice, possono essere trasmessi nei file di resoconto per il supporto e la risoluzione dei problemi da parte di Microsoft.

TDE esegue in tempo reale la crittografia e decrittografia dell'I/O dei dati a livello di pagina. Ogni pagina viene decrittografata quando letta in memoria e quindi crittografata prima di essere scritta su disco. TDE crittografa i dati di archiviazione di un intero database usando una chiave simmetrica denominata chiave di crittografia del database (DEK, Database Encryption Key). All'avvio del database, la chiave DEK viene decrittografata e quindi usata per decrittografare e ri-crittografare i file di database nel processo di motore di database di SQL Server. La chiave DEK è protetta dalla protezione TDE. La protezione TDE è un certificato gestito dal servizio (transparent data encryption gestita dal servizio) o una chiave asimmetrica archiviata in Azure Key Vault (transparent data encryption gestita dal cliente).

Per il database SQL di Azure e Azure Synapse, la protezione TDE è impostata a livello di server e viene ereditata da tutti i database associati a tale server. Per l'Istanza gestita di SQL di Azure, la protezione TDE è impostata a livello di istanza e viene ereditata da tutti i database crittografati nell'istanza. Salvo diversa indicazione, in questo documento il termine server fa riferimento sia al server che all'istanza.

Importante

Tutti i nuovi database SQL vengono crittografati per impostazione predefinita tramite TDE gestita del servizio. Quando l'origine del database è crittografata, i database di destinazione creati tramite il ripristino, la replica geografica e la copia del database vengono crittografati per impostazione predefinita. Tuttavia, quando l'origine del database non è crittografata, i database di destinazione creati tramite ilripristino, la replica geografica e la copia del database non vengono crittografati per impostazione predefinita. I database SQL esistenti creati prima di maggio 2017 e i database esistenti Istanza gestita di SQL creati prima di febbraio 2019 non vengono crittografati per impostazione predefinita. I database di Istanza gestita di SQL creati tramite il ripristino ereditano lo stato di crittografia dal database di origine. Per ripristinare un database crittografato TDE esistente, il certificato TDE necessario deve prima essere importato in Istanza gestita di SQL. Per individuare lo stato di crittografia per un database, eseguire una query di selezione dalla DMV sys.dm_database_encryption_keys e controllare lo stato della colonna encryption_state_desc.

Nota

TDE non è utilizzabile per crittografare database di sistema, ad esempio il master database master, il database SQL di Azure e l’Istanza gestita di SQL. Il database master contiene gli oggetti necessari a eseguire le operazioni di Transparent Data Encryption nei database utente. È consigliabile non archiviare dati sensibili nei database di sistema. L'eccezione è tempdb, che viene sempre crittografata con TDE per proteggere i dati archiviati in questa posizione.

Transparent Data Encryption gestita dal servizio

In Azure l'impostazione predefinita di TDE prevede che la chiave di crittografia del database sia protetta da un certificato predefinito del server. Il certificato server predefinito è univoco per ogni server e l'algoritmo di crittografia usato è AES 256. Se un database è in una relazione di replica geografica, il database primario e la replica geografica secondaria sono protetti dalla chiave primaria del server padre del database. Se due database sono connessi allo stesso server, condividono anche lo stesso certificato predefinito. Microsoft ruota automaticamente questi certificati in conformità con i criteri di sicurezza interni e la chiave radice è protetta da un archivio segreti interno di Microsoft. I clienti possono verificare la conformità del database SQL e l’Istanza gestita di SQL con i criteri di sicurezza interni nei report di controllo di terze parti indipendenti disponibili nel Centro protezione di Microsoft.

Microsoft inoltre sposta e gestisce le chiavi senza problemi in base alle esigenze per la replica geografica e ne esegue il ripristino.

Transparent Data Encryption gestita dal cliente: Bring Your Own Key

Il TDE gestito dal cliente viene anche definito supporto BYOK (Bring Your Own Key) per TDE. In questo scenario, la protezione TDE che crittografa la chiave DEK è una chiave asimmetrica gestita dal cliente, che viene archiviata in un'istanza di Azure Key Vault (il sistema di gestione delle chiavi esterno basato sul cloud di Azure) di proprietà e gestita dal cliente e non lascia mai l'insieme di credenziali delle chiavi. La protezione TDE può essere generata dall'insieme di credenziali delle chiavi o trasferita all'insieme di credenziali delle chiavi da un dispositivo modulo di protezione hardware (Hardware Security Module) locale. Per decrittografare e crittografare la chiave DEK, il database SQL, l’Istanza gestita di SQL e Azure Synapse devono possedere le autorizzazioni di accesso all'insieme di credenziali delle chiavi del cliente. Se le autorizzazioni del server SQL per l'insieme di credenziali delle chiavi vengono revocate, non sarà possibile accedere a un database e tutti i dati rimangono crittografati.

Grazie all'integrazione di TDE con Azure Key Vault, gli utenti possono controllare le attività di gestione delle chiavi, tra cui le rotazioni, i backup e le autorizzazioni dell'insieme di credenziali, nonché abilitare il controllo o il reporting per tutte le protezioni TDE usando Azure Key Vault. Key Vault fornisce la gestione centralizzata delle chiavi, sfrutta i moduli di protezione hardware accuratamente monitorati e consente la separazione dei compiti tra la gestione delle chiavi e dei dati per soddisfare la conformità alle politiche di sicurezza. Per altre informazioni su BYOK per database SQL di Azure e Azure Synapse, vedere Transparent Data Encryption con l'integrazione di Azure Key Vault.

Per iniziare a usare la crittografia TDE con integrazione di Azure Key Vault, vedere la procedura dettagliata Abilitare Transparent Data Encryption usando la propria chiave di Key Vault.

Spostare un database protetto con TDE

Non è necessario decrittografare i database per le operazioni all'interno di Azure. Le impostazioni di Transparent Data Encryption nel database di origine o nel database primario vengono ereditate in modo trasparente nel database di destinazione. Le operazioni incluse fanno riferimento a:

  • Ripristino geografico
  • Ripristino temporizzato self-service
  • Ripristino di un database eliminato
  • Replica geografica attiva
  • Creazione di una copia del database
  • Ripristino di un file di backup per Istanza gestita di database SQL di Azure

Importante

L'esecuzione di un backup manuale di sola copia di un database crittografato con tecnologia TDE gestita dal servizio non è consentita nell’Istanza gestita di SQL di Azure perché il certificato usato per la crittografia non è accessibile. Usare la funzionalità di ripristino temporizzato per spostare questo tipo di database in un'altra istanza di Istanza gestita di SQL o passare alla chiave gestita dal cliente.

Quando si esporta un database protetto da TDE, il contenuto esportato del database non è crittografato. Questo contenuto esportato viene archiviato in file BACPAC non crittografati. Assicurarsi di proteggere i file BACPAC nel modo appropriato e abilitare TDE al termine dell'importazione del nuovo database.

Ad esempio, se il file BACPAC viene esportato da un'istanza di SQL Server, non viene crittografato automaticamente il contenuto importato del nuovo database. Allo stesso modo, se il file BACPAC viene importato da un'istanza di SQL Server, non viene crittografato automaticamente neppure il nuovo database.

L'unica eccezione riguarda l'esportazione di un database da e verso un database SQL. TDE è abilitato nel nuovo database, ma il file BACPAC non è comunque crittografato.

Gestire Transparent Data Encryption

Gestire TDE nel portale di Azure.

Per configurare TDE tramite il portale di Azure è necessario essere connessi come proprietario, collaboratore o Gestore Sicurezza SQL di Azure.

Abilitare e disabilitare TDE a livello di database. Per Istanza gestita di SQL di Azure, usare Transact-SQL (T-SQL) per attivare e disattivare TDE in un database. Per Azure Synapse Analytics è possibile gestire Transparent Data Encryption per il database nel portale di Azure dopo aver eseguito l'accesso con l'account di amministratore o collaboratore di Azure. Le impostazioni di TDE si trovano nel database utente. Per impostazione predefinita, viene usata la chiave di crittografia a livello di server. Un certificato TDE viene generato automaticamente per il server che contiene il database.

Service-managed transparent data encryption

Impostare la chiave master TDE, nota come protezione TDE, a livello di server o istanza. Per usare TDE con il supporto BYOK e proteggere i database con una chiave di Azure Key Vault, passare alle impostazioni di TDE nel server o dell’istanza gestita.

Transparent data encryption with Bring Your Own Key support

È anche possibile usare una chiave gestita dal cliente per TDE a livello di database per database SQL di Azure. Per altre informazioni, vedere Transparent Data Encryption (TDE) con chiavi gestite dal cliente a livello di database.

Passaggi successivi

Altre informazioni sui concetti correlati sono disponibili negli articoli seguenti: