Crittografia dei dati in Azure Data Lake StoreEncryption of data in Azure Data Lake Store

La crittografia in Azure Data Lake Store consente di proteggere i dati, implementare criteri di sicurezza aziendali e soddisfare i requisiti di conformità normativi.Encryption in Azure Data Lake Store helps you protect your data, implement enterprise security policies, and meet regulatory compliance requirements. Questo articolo offre una panoramica della progettazione e illustra alcuni aspetti tecnici dell'implementazione.This article provides an overview of the design, and discusses some of the technical aspects of implementation.

Data Lake Store supporta la crittografia dei dati sia inattivi che in transito.Data Lake Store supports encryption of data both at rest and in transit. Per i dati inattivi, Data Lake Store supporta la crittografia trasparente "attivata per impostazione predefinita".For data at rest, Data Lake Store supports "on by default," transparent encryption. Di seguito è riportata una spiegazione più dettagliata:Here is what these terms mean in a bit more detail:

  • Attivata per impostazione predefinita: quando si crea un nuovo account Data Lake Store, l'impostazione predefinita consente la crittografia.On by default: When you create a new Data Lake Store account, the default setting enables encryption. I dati archiviati in Data Lake Store quindi vengono sempre crittografati prima essere archiviati in supporti persistenti.Thereafter, data that is stored in Data Lake Store is always encrypted prior to storing on persistent media. Questo comportamento è valido per tutti i dati e non può essere modificato dopo che un account è stato creato.This is the behavior for all data, and it cannot be changed after an account is created.
  • Trasparente: Data Lake Store crittografa automaticamente i dati prima di renderli persistenti e li decrittografa prima di recuperarli.Transparent: Data Lake Store automatically encrypts data prior to persisting, and decrypts data prior to retrieval. La crittografia viene configurata e gestita a livello di Data Lake Store da un amministratore.The encryption is configured and managed at the Data Lake Store level by an administrator. Non vengono apportate modifiche alle API di accesso ai dati.No changes are made to the data access APIs. Non sono quindi necessarie modifiche nelle applicazioni e nei servizi che interagiscono con Data Lake Store a causa della crittografia.Thus, no changes are required in applications and services that interact with Data Lake Store because of encryption.

Anche i dati in transito (noti anche come dati in movimento) vengono sempre crittografati in Data Lake Store.Data in transit (also known as data in motion) is also always encrypted in Data Lake Store. I dati, oltre a essere crittografati prima dell'archiviazione in supporti persistenti, vengono sempre protetti anche mentre sono in transito usando HTTPS.In addition to encrypting data prior to storing to persistent media, the data is also always secured in transit by using HTTPS. HTTPS è l'unico protocollo supportato per le interfacce REST di Data Lake Store.HTTPS is the only protocol that is supported for the Data Lake Store REST interfaces. Il diagramma seguente illustra come vengono crittografati i dati in Data Lake Store:The following diagram shows how data becomes encrypted in Data Lake Store:

Diagramma della crittografia dei dati in Data Lake Store

Configurare la crittografia con Data Lake StoreSet up encryption with Data Lake Store

La crittografia per Data Lake Store viene configurata durante la creazione di un account ed è sempre abilitata per impostazione predefinita.Encryption for Data Lake Store is set up during account creation, and it is always enabled by default. È possibile gestire le chiavi manualmente o consentire a Data Lake Store di gestirle automaticamente (impostazione predefinita).You can either manage the keys yourself, or allow Data Lake Store to manage them for you (this is the default).

Per altre informazioni, vedere la Introduzione.For more information, see Getting started.

Come funziona la crittografia in Data Lake StoreHow encryption works in Data Lake Store

Le informazioni seguenti illustrano come gestire le chiavi di crittografia master e i tre diversi tipi di chiavi che è possibile usare nella chiave di crittografia dei dati per Data Lake Store.The following information covers how to manage master encryption keys, and it explains the three different types of keys you can use in data encryption for Data Lake Store.

Chiavi di crittografia masterMaster encryption keys

Data Lake Store offre due modalità per la gestione delle chiavi di crittografia master.Data Lake Store provides two modes for management of master encryption keys (MEKs). Per il momento si supponga che la chiave di crittografia sia la chiave principale.For now, assume that the master encryption key is the top-level key. L'accesso alla chiave di crittografia master è necessario per decrittografare i dati archiviati in Data Lake Store.Access to the master encryption key is required to decrypt any data stored in Data Lake Store.

Le due modalità per la gestione della chiavi di crittografia master sono le seguenti:The two modes for managing the master encryption key are as follows:

  • Chiavi gestite dal servizioService managed keys
  • Chiavi gestite dal clienteCustomer managed keys

In entrambe le modalità la chiave di crittografia master viene protetta archiviandola in Azure Key Vault.In both modes, the master encryption key is secured by storing it in Azure Key Vault. Key Vault è un servizio di Azure completamente gestito a sicurezza elevata che può essere usato per proteggere le chiavi crittografiche.Key Vault is a fully managed, highly secure service on Azure that can be used to safeguard cryptographic keys. Per altre informazioni, vedere Key Vault.For more information, see Key Vault.

Ecco un breve confronto delle funzionalità offerte dalle due modalità di gestione delle chiavi di crittografia master.Here is a brief comparison of capabilities provided by the two modes of managing the MEKs.

Chiavi gestite dal servizioService managed keys Chiavi gestite dal clienteCustomer managed keys
Come vengono archiviati i dati?How is data stored? Vengono sempre crittografati prima dell'archiviazione.Always encrypted prior to being stored. Vengono sempre crittografati prima dell'archiviazione.Always encrypted prior to being stored.
Dove viene archiviata la chiave di crittografia master?Where is the Master Encryption Key stored? Insieme di credenziali di chiaveKey Vault Insieme di credenziali di chiaveKey Vault
Vengono archiviate chiavi di crittografia in chiaro al di fuori di Key Vault?Are any encryption keys stored in the clear outside of Key Vault? NoNo NoNo
La chiave di crittografia master può essere recuperata da Key Vault?Can the MEK be retrieved by Key Vault? No.No. La chiave di crittografia master, dopo essere stata archiviata in Key Vault, può solo essere usata per la crittografia e la decrittografia.After the MEK is stored in Key Vault, it can only be used for encryption and decryption. No.No. La chiave di crittografia master, dopo essere stata archiviata in Key Vault, può solo essere usata per la crittografia e la decrittografia.After the MEK is stored in Key Vault, it can only be used for encryption and decryption.
Chi è il proprietario dell'istanza di Key Vault e della chiave di crittografia master?Who owns the Key Vault instance and the MEK? Il servizio Data Lake StoreThe Data Lake Store service L'utente è il proprietario dell'istanza di Key Vault, che appartiene alla sottoscrizione di Azure.You own the Key Vault instance, which belongs in your own Azure subscription. La chiave di crittografia master in Key Vault può essere gestita dal software o dall'hardware.The MEK in Key Vault can be managed by software or hardware.
È possibile revocare l'accesso alla chiave di crittografia master per il servizio Data Lake Store?Can you revoke access to the MEK for the Data Lake Store service? NoNo Sì.Yes. È possibile gestire gli elenchi di controllo di accesso in Key Vault e rimuovere le voci di controllo di accesso nell'identità del servizio per il servizio Data Lake Store.You can manage access control lists in Key Vault, and remove access control entries to the service identity for the Data Lake Store service.
È possibile eliminare definitivamente la chiave di crittografia master?Can you permanently delete the MEK? NoNo Sì.Yes. Se si elimina la chiave di crittografia master da Key Vault, i dati nell'account Data Lake Store non possono essere in alcun modo decrittografati, neppure dal servizio Data Lake Store.If you delete the MEK from Key Vault, the data in the Data Lake Store account cannot be decrypted by anyone, including the Data Lake Store service.

Se è stato eseguito un backup esplicito della chiave di crittografia master prima di eliminarla da Key Vault, la chiave può essere ripristinata e i dati recuperati.If you have explicitly backed up the MEK prior to deleting it from Key Vault, the MEK can be restored, and the data can then be recovered. Se tuttavia non è stato eseguito un backup della chiave di crittografia master prima di eliminarla da Key Vault, i dati nell'account Data Lake Store non potranno più essere decrittografati.However, if you have not backed up the MEK prior to deleting it from Key Vault, the data in the Data Lake Store account can never be decrypted thereafter.

Fatta eccezione per questa differenza, ovvero chi gestisce la chiave di crittografia master e l'istanza di Key Vault in cui si trova, la progettazione è la medesima per entrambe le modalità.Aside from this difference of who manages the MEK and the Key Vault instance in which it resides, the rest of the design is the same for both modes.

È importante tenere presente quanto segue quando si sceglie la modalità per le chiavi di crittografia master:It's important to remember the following when you choose the mode for the master encryption keys:

  • È possibile scegliere se usare chiavi gestite dal cliente o dal servizio quando si effettua il provisioning di un account Data Lake Store.You can choose whether to use customer managed keys or service managed keys when you provision a Data Lake Store account.
  • Dopo il provisioning di un account Data Lake Store, non è possibile modificare la modalità.After a Data Lake Store account is provisioned, the mode cannot be changed.

Crittografia e decrittografia dei datiEncryption and decryption of data

Nella progettazione della crittografia dei dati vengono usati tre tipi di chiavi.There are three types of keys that are used in the design of data encryption. La tabella seguente contiene un riepilogo:The following table provides a summary:

ChiaveKey AbbreviazioneAbbreviation Elemento associatoAssociated with Posizione di archiviazioneStorage location TipoType NoteNotes
Chiave di crittografia masterMaster Encryption Key MEKMEK Un account Data Lake StoreA Data Lake Store account Insieme di credenziali di chiaveKey Vault AsimmetricaAsymmetric Può essere gestita da Data Lake Store o dall'utente.It can be managed by Data Lake Store or you.
Chiave di crittografia dei datiData Encryption Key DEKDEK Un account Data Lake StoreA Data Lake Store account Risorsa di archiviazione persistente, gestita dal servizio Data Lake StorePersistent storage, managed by Data Lake Store service SimmetricaSymmetric La chiave di crittografia dei dati viene crittografata dalla chiave di crittografia master.The DEK is encrypted by the MEK. È la chiave di crittografia dei dati crittografata a essere archiviata nei supporti persistenti.The encrypted DEK is what is stored on persistent media.
Chiave di crittografia a blocchiBlock Encryption Key BEKBEK Un blocco di datiA block of data NessunoNone SimmetricaSymmetric La chiave di crittografia a blocchi deriva dalla chiave di crittografia dei dati e dal blocco di dati.The BEK is derived from the DEK and the data block.

Il diagramma seguente illustra questi concetti:The following diagram illustrates these concepts:

Chiavi nella crittografia dei dati

Pseudoalgoritmo quando un file deve essere decrittografato:Pseudo algorithm when a file is to be decrypted:

  1. Controllare se la chiave di crittografia dei dati per l'account Data Lake Store è memorizzata nella cache e può essere usata.Check if the DEK for the Data Lake Store account is cached and ready for use.
    • In caso contrario, leggere la chiave di crittografia dei dati crittografata dalla risorsa di archiviazione persistente e inviarla a Key Vault per la decrittografia.If not, then read the encrypted DEK from persistent storage, and send it to Key Vault to be decrypted. Memorizzare nella cache la chiave di crittografia dei dati decrittografata.Cache the decrypted DEK in memory. Ora è possibile usarla.It is now ready to use.
  2. Per ogni blocco di dati nel file:For every block of data in the file:
    • Leggere il blocco di dati crittografato da una risorsa di archiviazione persistente.Read the encrypted block of data from persistent storage.
    • Generare la chiave di crittografia a blocchi dalla chiave di crittografia dei dati e dal blocco di dati crittografato.Generate the BEK from the DEK and the encrypted block of data.
    • Usare la chiave di crittografia a blocchi per decrittografare i dati.Use the BEK to decrypt data.

Pseudoalgoritmo quando un file deve essere crittografato:Pseudo algorithm when a block of data is to be encrypted:

  1. Controllare se la chiave di crittografia dei dati per l'account Data Lake Store è memorizzata nella cache e può essere usata.Check if the DEK for the Data Lake Store account is cached and ready for use.
    • In caso contrario, leggere la chiave di crittografia dei dati crittografata dalla risorsa di archiviazione persistente e inviarla a Key Vault per la decrittografia.If not, then read the encrypted DEK from persistent storage, and send it to Key Vault to be decrypted. Memorizzare nella cache la chiave di crittografia dei dati decrittografata.Cache the decrypted DEK in memory. Ora è possibile usarla.It is now ready to use.
  2. Generare una chiave di crittografia a blocchi univoca per il blocco di dati dalla chiave di crittografia dei dati.Generate a unique BEK for the block of data from the DEK.
  3. Crittografare il blocco di dati con la chiave di crittografia a blocchi usando la crittografia AES-256.Encrypt the data block with the BEK, by using AES-256 encryption.
  4. Archiviare il blocco di dati crittografato in una risorsa di archiviazione persistente.Store the encrypted data block of data on persistent storage.

Nota

Per motivi di prestazioni, la chiave di crittografia dei dati in chiaro viene memorizzata nella cache per breve tempo e poi immediatamente cancellata.For performance reasons, the DEK in the clear is cached in memory for a short time, and is immediately erased afterward. Nei supporti persistenti viene sempre archiviata dopo essere stata crittografata dalla chiave di crittografia master.On persistent media, it is always stored encrypted by the MEK.

Rotazione delle chiaviKey rotation

Quando si usano le chiavi gestite dal cliente, è possibile ruotare la chiave di crittografia master.When you are using customer-managed keys, you can rotate the MEK. Per informazioni su come configurare un account Data Lake Store con chiavi gestite dal cliente, vedere Introduzione.To learn how to set up a Data Lake Store account with customer-managed keys, see Getting started.

PrerequisitiPrerequisites

Quando si è configurato l'account Data Lake Store, si è scelto di usare le proprie chiavi.When you set up the Data Lake Store account, you have chosen to use your own keys. Questa opzione non può essere modificata dopo la creazione dell'account.This option cannot be changed after the account has been created. I passaggi seguenti presuppongono che si usino chiavi gestite dal cliente, ovvero che si siano scelte le chiavi da Key Vault.The following steps assume that you are using customer-managed keys (that is, you have chosen your own keys from Key Vault).

Tenere presente che, se si usano le opzioni predefinite per la crittografia, i dati vengono sempre crittografati usando le chiavi gestite da Data Lake Store.Note that if you use the default options for encryption, your data is always encrypted by using keys managed by Data Lake Store. Con questa opzione l'utente non può ruotare le chiavi perché sono gestite da Data Lake Store.In this option, you don't have the ability to rotate keys, as they are managed by Data Lake Store.

Come ruotare la chiave di crittografia master in Data Lake StoreHow to rotate the MEK in Data Lake Store

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Passare all'istanza di Key Vault in cui sono archiviate le chiavi associate all'account Data Lake Store.Browse to the Key Vault instance that stores your keys associated with your Data Lake Store account. Selezionare Chiavi.Select Keys.

    Screenshot di Key Vault

  3. Selezionare la chiave associata all'account Data Lake Store e creare una nuova versione di questa chiave.Select the key associated with your Data Lake Store account, and create a new version of this key. Si noti che Data Lake Store attualmente supporta solo la rotazione a una nuova versione di una chiave.Note that Data Lake Store currently only supports key rotation to a new version of a key. Non supporta la rotazione a una chiave diversa.It doesn't support rotating to a different key.

    Screenshot della finestra Chiavi con Nuova versione in evidenza

  4. Passare all'account di archiviazione di Data Lake Store e selezionare Crittografia.Browse to the Data Lake Store storage account, and select Encryption.

    Screenshot della finestra dell'account di archiviazione di Data Lake Store con Crittografia in evidenza

  5. Un messaggio notifica che è disponibile una nuova versione della chiave.A message notifies you that a new key version of the key is available. Fare clic su Ruota chiave per aggiornare la chiave alla nuova versione.Click Rotate Key to update the key to the new version.

    Screenshot della finestra Data Lake Store con il messaggio e Ruota chiave in evidenza

Questa operazione richiederà meno di due minuti e non sono previsti tempi di inattività a causa della rotazione della chiave.This operation should take less than two minutes, and there is no expected downtime due to key rotation. Al termine dell'operazione, sarà in uso la nuova versione della chiave.After the operation is complete, the new version of the key is in use.