Per memorizzare file di qualsiasi tipo, se facciamo uso della piattaforma cloud di Microsoft, facciamo sempre uso di Azure Storage, un servizio ampiamente usato orizzontalmente da macchine virtuali, web app e strumenti di analisi.
Sebbene di fronte ad esso poniamo sempre un layer applicativo che ne regoli l'accesso ai container e ai blob, se qualcuno dispone di una delle due chiavi di accesso allo storage può potenzialmente compromettere i file presenti. Per motivi legali, per necessità di aderire ad uno standard o per osservare dei regolamenti, è molto probabile che questo tipo di sicurezza non sia sufficiente. Piuttosto, è necessario un sistema che garantisca che i file non vengano manipolati o cancellati, neppure avendo un accesso amministrativo.
Per questo scopo, di recente è stato aggiunto il supporto ai blob immutabili, cioè alla possibilità di caricare file e di bloccarli in scrittura o nella cancellazione per un determinato tempo, deciso a priori. A livello di container, nella sezione policy, possiamo indicare una o entrambe le modalità che sono:
- Un blocco temporale su modifica e cancellazione che una volta scaduto permette la cancellazione del file, chiamato time based retention;
- Un blocco temporale che impedisce la modifica e la cancellazione associando un tag al file, chiamato legal hold. Rimosso il tag sarà consentito modificare o cancellare il file.
La prima tipologia di blocco è irreversibile e richiede un lock esplicito per avviare la policy. Per usufruire di questa funzionalità dobbiamo disporre di uno storage di tipo v2 e andare nella sezione policy del container.
In questo modo applichiamo un time based retention, calcolato dalla data di creazione dei blob già presenti o che verranno caricati. In alternativa o allo stesso tempo possiamo applicare il legal hold e indicare il tag che tutti i nuovi file adotteranno.
Fatto questo, se tentiamo di cancellare un blob da un container con le policy attive, otterremo il seguente errore.
Andando in modifica del legal hold, se rimuoviamo un tag, tutti i file ad esso associati potranno essere cancellati. Per concludere è da notare che i blob immutabili sono indipendenti dal tipo di tier adottato e non comportano alcun costo aggiuntivo.
Per maggiori informazioni: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-immutable-storage
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Migrate and Modernize your .NET Applications on Azure
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Routing statico e PreRendering in una Blazor Web App
Usare le variabili per personalizzare gli stili CSS
Creare gruppi di client per Event Grid MQTT
Eseguire attività basate su eventi con Azure Container Jobs
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Generare file per il download da Blazor WebAssembly
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati