Azure Storage Encryption: Proteggere i dati con la propria chiave di crittografia
I dati in Microsoft Azure Storage sono cittografati e decrittografati in maniera trasparente utilizzando la cifratura AES a 265-bit, in una modalità molto simile alla crittografia Bitlocker utilizzata in Windows. Azure Storage Encryption è abilitata in maniera predefinita per tutti i nuovi storage account creati dopo il 20 ottobre 2017, indipendentemente dal fatto che siano standard oppure premium, e non può essere disabilitata. Se lo storage account è ridondato anche le copie sono crittografate.
Tutte le risorse contenute nello storage account (blobs, disks, files, queues e tables) sono crittografate, inclusi i metadata. Il vantaggio offerto da Azure Storage Encryption è che le performance non vengono assolutamente inficiate e non ci sono costi aggiuntivi.
In questa guida voglio mostrarvi come proteggere gli storage account con Azure Storage Encryption e con Azure Key Vault utilizzando una chiave personalizzata.
Come si può vedere dalla figura sotto, lo storage account è crittografato di default utilizzando una chiave gestita da Microsoft. Se volete utilizzare una vostra chiave è sufficiente cliccare su Use your own key. Questa chiave verrà utilizzata per proteggere e controllare l’accesso alla root encryption key per lo storage account, utilizzata per crittografare e decrittografare il contenuto dello storage.
Figura 1: Abilitazione della propria chiave per la crittografia dello storage account
È obbligatorio utilizzare Azure Key Vault per il salvataggio della account encryption key. L’Azure Key Vault da utilizzare deve essere configurato con le proprietà Soft Delete e Do Not Purge. Se non avete un Azure Key Vault è possibile crearne uno, come mostrato nella figura sotto:
Figura 2: Creazione di un nuovo Azure Key Vault
Dopo la scelta oppure la creazione dell’Azure Key Vault è necessario specificare quale chiave utilizzare per la cifratura. Anche in questo caso potete utilizzare una chiave esistente oppure potete crearne una nuova, come mostrato in figura:
Figura 3: Creazione di una nuova Encryption Key
È importante ricordare che attualmente solo le chiavi RSA a 2048 bit sono supportate da Azure Storage Encryption.
Figura 4: Definizione della nuova encryption key
A questo punto sarà sufficiente cliccare su Save per completare la procedura. Come evidenziato nella figura sotto, verrà concesso all’applicazione con il nome dello storage account di poter accedere all’Azure Key Vault. Per le operazioni di cifratura e di decifratura Azure Storage utilizzerà infatti una managed identity. È importante ricordare che il Key Vault deve trovarsi nella stessa sottoscrizione dell’Azure Storage account, poiché le managed identities non sono supportate in scenari cross-directory.
Figura 5: Salvataggio delle impostazioni di crittografia dello storage account
Nell’Azure Key Vault che ho creato è possibile verificare che la proprietà di soft-delete è stata abilitata e che è stata creata una access policy per permettere ad una managed identity di poter accedere alla chiave contenuta nell’Azure Key Vault.
Figura 6: Azure Key Vault creato per gestire la storage encryption key
Figura 7: Chiave di cifratura utilizzata per lo Storage Account
Figura 8: Access Policy utilizzata per permettere ad Azure Storage di accedere al Key Vault
Tramite PowerShell è anche possibile recuperare informazioni relative all’Azure Key Vault, utilizzando il comando
1 |
Get-AzKeyVault -VaultName 'NomeDelVault' |
Figura 9: Informazioni relative all’Azure Key Vault
Differenze tra Azure Storage Encryption e Azure Disk Encryption
Ho già avuto modo di parlare di come proteggere i dischi delle macchina virtuali create in Azure utilizzando la Azure Disk Encryption nell’articolo https://www.ictpower.it/guide/azure-disk-encryption-protezione-dei-dischi-delle-vm.htm
Azure Storage Encryption crittografa tutti i page blob associati ai dischi delle Azure VM. In più, tutti i dischi delle macchine virtuali, inclusi i dischi temporanei, possono essere facoltativamente crittografati utilizzando Azure Disk Encryption, che usa lo standard Bitlocker per la macchine Windows e dm-crypt per le macchine Linux.
Conclusioni
Gli Azure Storage Account vengono sempre crittofrafati con chiavi gestite da Microsoft. Non è possibile abilitare chiavi di crittografia create da noi al momento della creazione dell’account. Dopo la creazione dello storage account è possibile utilizzare le proprie chiavi per crittografare l’account. Le chiavi gestite da noi vengono archiviate in Azure Key Vault ed è possibile definire criteri di accesso che concedono autorizzazioni alla managed identity associata all’account di archiviazione.