Come proteggere gli oggetti S3 con la crittografia Amazon S3

Molte aziende archiviano i dati nel storage sul cloud. I servizi di storage sul cloud sono oggi molto diffusi grazie alla loro grande affidabilità e alta disponibilità, due fattori molto importanti per le aziende. Amazon è uno dei principali fornitori di servizi di cloud pubblico sul mercato. Questi servizi sono denominati Amazon Web Services (AWS). Amazon offre un elevato livello di sicurezza, compresa una connessione di rete crittografata utilizzata per accedere a file e servizi. La crittografia riduce il rischio di intercettazione dei dati sulla rete. I dati sono fondamentali per ogni azienda e ogni utente. Nessuno vuole che i propri dati vadano persi, vengano danneggiati o rubati.

Per questo motivo, Amazon offre opzioni di crittografia per l’archiviazione dei dati sui suoi diversi servizi di storage sul cloud. Queste opzioni di storage sul cloud includono i volumi EBS, uno storage ad alte prestazioni per VM (istanze), e Amazon S3, un servizio di storage sul cloud sviluppato per archiviare backup, archivi, file di applicazioni e altri dati. È possibile crittografare i bucket Amazon S3 e i file archiviati nei bucket utilizzando le opzioni di crittografia AWS. Questo post del blog tratta la crittografia Amazon S3, compresi i tipi di crittografia e la configurazione.

Direct Backup to AWS S3 | NAKIVO

Direct Backup to AWS S3 | NAKIVO

Avoid a single point of failure with simple Amazon S3 integration and anti-ransomware immutability options. Automated backup tiering and instant recovery features.

Informazioni sulla crittografia dei dati

La crittografia dei dati è un processo per proteggere i dati mediante la codifica delle informazioni. I dati vengono codificati utilizzando una password o una chiave di crittografia (cifra) e speciali algoritmi di crittografia. È quindi possibile accedere ai dati crittografati utilizzando la password corretta o la chiave di crittografia (decrittografia). La crittografia dei dati viene utilizzata per proteggere la riservatezza dei dati digitali anche se una persona non autorizzata ottiene l’accesso logico o fisico a tali dati. Se una persona non autorizzata ottiene l’accesso ai dati crittografati, questi ultimi risultano illeggibili senza la chiave o la password. I moderni algoritmi di crittografia rendono difficile e quasi impossibile decifrare una chiave di crittografia lunga o una password complessa. È possibile utilizzare diversi algoritmi di crittografia, ad esempio AES, 3DES, RSA, Blowfish e così via. I principali tipi di crittografia sono la crittografia a chiave simmetrica e la crittografia a chiave asimmetrica.

Amazon consiglia l’uso della crittografia S3 quando si archiviano dati nei bucket Amazon S3. Il primo motivo di questa raccomandazione è la sicurezza. La crittografia aumenta il livello di sicurezza e privacy. Tuttavia, c’è un altro motivo per cui i dati archiviati nel cloud dovrebbero essere crittografati. Amazon archivia i dati di utenti provenienti da diversi paesi. A volte un paese può richiedere la presentazione dei dati per un’indagine se un cliente o un’organizzazione è sospettato di violare la legge. Tuttavia, Amazon deve rispettare il contratto di licenza e le leggi di altri paesi (paesi i cui cittadini sono clienti Amazon) e può verificarsi un conflitto.

Se i dati di un utente sono crittografati e Amazon non dispone delle chiavi di crittografia, i dati dell’utente non possono essere forniti a organizzazioni o persone terze (anche se i dati crittografati vengono forniti, si tratta di un insieme di bit inutili e illeggibili). Immaginate una situazione in cui gli Stati Uniti richiedono i dati di un cliente Amazon europeo per un’indagine. Cosa fare in questo caso? Come forse già sapete, i dati personali dei cittadini europei sono protetti dal Regolamento generale sulla protezione dei dati (GDPR). Per saperne di più, consultate il White paper Regolamento generale sulla protezione dei dati dell’UE.

Tipi di crittografia Amazon S3

Come funziona la crittografia S3? Amazon offre diversi tipi di crittografia per i dati archiviati in Amazon S3. S3 è crittografato? Per impostazione predefinita, i dati archiviati in un bucket S3 non sono crittografati, ma è possibile configurare le impostazioni di crittografia AWS S3.

È necessario definire quale metodo di crittografia utilizzare dopo aver risposto alle seguenti domande:

  • Chi crittografa e decrittografa i dati?
  • Chi archivia la chiave segreta?
  • Chi gestisce la chiave segreta?

Diamo un’occhiata alle opzioni di crittografia AWS disponibili per gli oggetti S3 archiviati in un bucket.

Crittografia lato server

La crittografia lato server (SSE) è l’opzione di crittografia dei dati più semplice. Tutte le operazioni di crittografia pesanti vengono eseguite sul lato server nel cloud AWS. Si inviano dati grezzi (non crittografati) ad AWS e poi i dati vengono crittografati sul lato AWS quando vengono registrati nell’storage sul cloud. Quando è necessario recuperare i dati, Amazon legge i dati crittografati, effettua la decrittografia dei dati necessari sul lato server Amazon e quindi invia i dati non crittografati all’utente tramite la rete. Questo processo è trasparente per gli utenti finali.

SSE-S3 è il metodo più semplice: le chiavi vengono gestite e trattate da AWS per effettuare la crittografia dei dati selezionati. Non è possibile visualizzare direttamente la chiave né utilizzarla manualmente per effettuare la crittografia o la decrittografia dei dati. Come algoritmo di crittografia viene utilizzato AES-256. AES (Advanced Encryption Standard) è un algoritmo di cifratura a blocchi simmetrico, con una lunghezza della chiave crittografica di 256 bit. Se si ha piena fiducia in AWS, utilizzare questo metodo di crittografia S3.

SSE-KMS è un metodo leggermente diverso da SSE-S3. AWS Key Management Service (KMS) viene utilizzato per crittografare i dati S3 sul lato server Amazon. La chiave dei dati è gestita da AWS, ma un utente gestisce la chiave master del cliente (CMK) in AWS KMS. I vantaggi dell’utilizzo del tipo di crittografia SSE-KMS sono il controllo da parte dell’utente e la tracciabilità.

Con SSE-C, le chiavi sono fornite da un cliente e AWS non memorizza le chiavi di crittografia. La chiave fornita viene trasmessa ad AWS per gestire ogni richiesta relativa alla crittografia o alla decrittografia dei dati. L’utente deve garantire la sicurezza delle chiavi. La crittografia dei dati S3 viene eseguita sul lato server AWS. È possibile utilizzare solo una connessione HTTPS (non HTTP).

Crittografia lato client

Quando si utilizza la crittografia lato client S3, il client è responsabile di tutte le operazioni di crittografia. In questo caso, i dati non vengono crittografati da AWS, ma piuttosto dal lato utente. I dati crittografati nel data center dell’utente vengono caricati direttamente su AWS. Sono disponibili due opzioni per la crittografia lato client S3: una chiave master può essere memorizzata sul lato client o sul lato server. Se una chiave master è memorizzata sul lato client, il client si assume la piena responsabilità della crittografia. Il vantaggio di questo approccio è che Amazon non conosce mai le chiavi di crittografia dell’utente e i dati non vengono mai memorizzati sui server Amazon in uno stato non crittografato. Un utente effettua la crittografia dei dati prima di inviarli ad Amazon S3 e li effettua di nuovo dopo averli recuperati da Amazon S3.

Che cos’è il client di crittografia Amazon S3?

Il client di crittografia Amazon S3 viene utilizzato per crittografare i dati sul lato utente. Viene generata in modo casuale una chiave di crittografia monouso che viene utilizzata per la crittografia dei dati a livello di singolo oggetto, il che significa che nello stesso bucket Amazon S3 possono essere presenti oggetti crittografati e non crittografati. AmazonS3EncryptionClient è una classe pubblica per AWS SDK. È possibile utilizzare AWS SDK per Java, C++, Python, .NET e altri linguaggi di programmazione supportati per creare applicazioni personalizzate che funzionano con Amazon S3 e possono essere utilizzate per effettuare la crittografia dei dati inviati a S3 e la decrittografia dei dati ricevuti da S3 sul lato client.

Come configurare la crittografia AWS S3?

  1. Accedere all’interfaccia web di AWS. Il tuo account deve disporre di autorizzazioni sufficienti per modificare le impostazioni S3.
  2. Vai alla pagina Amazon S3 (il link può variare a seconda della tua regione e del tuo account):
    https://s3.console.aws.amazon.com/s3/homeOpening the S3 bucket to configure Amazon S3 encryption
  3. Seleziona il tuo bucket o creane uno nuovo per il quale desideri configurare le impostazioni di crittografia.
  4. Nella pagina con le impostazioni del bucket, fai clic sulla scheda Proprietà e quindi fai clic su Crittografia predefinita.Amazon S3 bucket encryption is disabled by default
  5. Le impostazioni di crittografia sono ora aperte. Per impostazione predefinita, l’opzione di crittografia del bucket S3 è disabilitata.
  6. Selezionare l’opzione necessaria, ad esempio AES-256. Si tratta di crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3). È possibile visualizzare il criterio del bucket. Fare clic su Salvare per salvare le impostazioni di crittografia per il bucket. Le impostazioni verranno utilizzate come impostazioni di crittografia S3 predefinite per gli oggetti aggiunti a questo bucket in futuro.Changing default S3 bucket encryption settings
  7. Fare clic su Salvare.
  8. Ora la crittografia predefinita è impostata. Tutti i nuovi oggetti archiviati nel bucket S3 saranno crittografati in base alle impostazioni impostate. Si consiglia di abilitare la crittografia durante la creazione di un bucket. È anche possibile abilitare la crittografia in un secondo momento a livello di bucket. Tuttavia, se si configurano le impostazioni di crittografia in un secondo momento, tali impostazioni non avranno effetto sui file non crittografati che sono già stati caricati nel bucket.
    S3 encryption at rest is configured
  9. Se si desidera selezionare la crittografia AWS-KMS, fare clic sull’opzione appropriata. In questo caso, seleziona una chiave dall’elenco a discesa.
    Using AWS-KMS for AWS encryption

Crittografia di oggetti personalizzati nel bucket

Vediamo come crittografare gli oggetti personalizzati che sono già stati caricati in un bucket e per i quali le impostazioni di crittografia sono impostate su Nessuno.

Apri il tuo bucket nell’interfaccia web di AWS. Puoi vedere i tuoi oggetti S3 nella scheda Panoramica . Fai clic sull’oggetto (un file o una directory) per visualizzare le impostazioni di crittografia attualmente applicate a tale oggetto. Le proprietà e le autorizzazioni dell’oggetto vengono visualizzate nella finestra pop-up. Come puoi vedere nella schermata qui sotto, il file caricato non è crittografato (Crittografia: Nessuno).

AWS encryption for the file stored in an S3 bucket is set to none

Seleziona uno o più oggetti, clicca su Azioni e poi clicca su Modifica crittografia per modificare le impostazioni di crittografia per gli oggetti personalizzati nel tuo bucket S3.

Changing AWS S3 encryption settings for custom files stored in an S3 bucket

Nella finestra che si apre, seleziona il tipo di crittografia necessario, ad esempio AES-256, e clicca su Salva.

Changing AWS S3 encryption settings for custom files stored in an S3 bucket

Nella finestra di conferma, controlla gli oggetti selezionati che saranno interessati dalle nuove impostazioni di crittografia e clicca su Modifica.

Confirmation that all affected S3 objects will change AWS encryption

Ora la crittografia è impostata per gli oggetti selezionati.

Si noti che dopo aver impostato le impostazioni di crittografia per l’intero bucket, i file che sono stati caricati nel bucket prima dell’abilitazione della crittografia rimangono non crittografati. Se nel bucket S3 è presente un numero elevato di oggetti, potrebbe essere difficile individuare e selezionare tutti gli oggetti non crittografati che devono essere crittografati. Per selezionare gli oggetti non crittografati in un bucket con crittografia abilitata, è possibile utilizzare Amazon S3 Inventory o AWS CLI.

È necessario identificare gli oggetti non crittografati, quindi ricaricarli per crittografarli con il livello di crittografia predefinito del bucket S3 impostato per l’intero bucket. Se non si desidera cercare oggetti S3 non crittografati nel proprio bucket (ad esempio bucket1), è possibile creare un nuovo bucket (bucket2), copiare tutti i file da bucket1 a bucket2 e quindi copiare nuovamente tutti i file da bucket2 a bucket1.

È possibile copiare oggetti non crittografati riscrivendoli con il comando AWS CLI copy definendo il metodo di crittografia, ad esempio –sse abilita la crittografia SSE-S3 a 128 bit senza creare un nuovo bucket:

aws s3 cp s3://mybucket/myfile.zip s3://mybucket/myfile.zip --sse

Dopo la riscrittura, il file viene crittografato. Si noti che gli attributi del file, come l’ora di creazione e modifica, vengono modificati dopo la riscrittura. Le applicazioni in grado di leggere questi attributi (data e ora di creazione/ultima modifica del file) e di utilizzarli per lavorare con i file archiviati nei bucket Amazon S3 potrebbero non funzionare come previsto dopo la riscrittura dei file.

Se le opzioni di gestione del ciclo di vita sono abilitate per il bucket AWS S3 per motivi di efficienza dei costi, potrebbero verificarsi alcuni problemi. Ad esempio, è possibile impostare la configurazione del ciclo di vita in modo da eliminare i file creati o modificati 6 mesi fa. I file vecchi vengono eliminati automaticamente, lo spazio di storage utilizzato nel cloud è minore e si paga meno per lo storage sul cloud. Quando il timestamp (data/ora dell’ultima modifica) LastModified viene riscritto per un vecchio file che sta per essere eliminato, la funzione di gestione del ciclo di vita rileva questo file come un file creato di recente che non deve essere eliminato per un lungo periodo (ad esempio, per 6 mesi, come menzionato sopra). Di conseguenza, nel bucket vengono archiviati più file, con un conseguente aumento dei costi.

Se il controllo delle versioni è abilitato, viene creata una nuova versione crittografata di un oggetto. Le versioni precedenti dell’oggetto rimangono non crittografate.

Caricamento di oggetti tramite AWS CLI

AWS CLI può essere utilizzato in altri casi d’uso in cui è necessario copiare file su Amazon S3 o da Amazon S3 con opzioni di crittografia. È inoltre possibile utilizzare questa interfaccia a riga di comando per copiare oggetti all’interno di un bucket S3 e da un bucket all’altro. È possibile impostare le opzioni di crittografia per i file che vengono caricati utilizzando la CLI sul bucket nei casi in cui le impostazioni di crittografia predefinite del bucket e le impostazioni di crittografia che devono essere utilizzate per i file caricati siano diverse. Vediamo alcuni esempi di utilizzo dei comandi AWS CLI in bash.

Copiare un file dal computer locale al bucket AWS S3 e impostare la crittografia lato server (crittografia SSE-S3):

aws s3 cp /directory/file-name s3://bucket-name/file-encrypted --sse AES256

Copiare e decrittografare un file da AWS S3 a un disco locale:

aws s3 cp s3://bucket-name/file-encrypted /directory/file-name

Caricare e crittografare il file da un disco locale a un bucket S3 utilizzando la crittografia SSE-KMS:

aws s3 cp /directory/file-name s3://bucket-name/file-encrypted --sse aws:kms

Scaricare e decrittografare un file da un bucket S3 su un disco locale:

aws s3 cp s3://bucket-name/file-encrypted /directory/file-name

Conclusione

La crittografia Amazon S3 consente di proteggere i dati archiviati nei bucket AWS S3 nel cloud, aspetto particolarmente importante per i dati sensibili. La crittografia AWS S3 può essere eseguita sul lato server di Amazon e sul lato client di un cliente. Le chiavi segrete possono essere archiviate sul lato server e sul lato client. Se stai pensando di utilizzare la crittografia Amazon S3 per gli oggetti che intendi archiviare nei bucket S3, abilita la crittografia durante la creazione di un bucket. Se stai già utilizzando un bucket e gli oggetti archiviati in esso non sono crittografati, puoi abilitare la crittografia per tali oggetti. Tuttavia, in tal caso, è necessario tenere presente alcuni problemi.

L’utilizzo della crittografia è una buona idea per aumentare il livello di sicurezza e proteggere i dati dall’accesso da parte di terzi. Oltre a utilizzare la crittografia AWS, prendete in considerazione l’esecuzione di backup AWS S3 e backup AWS EC2 per migliorare la sicurezza dei vostri dati.

Try NAKIVO Backup & Replication

Try NAKIVO Backup & Replication

Get a free trial to explore all the solution’s data protection capabilities. 15 days for free. Zero feature or capacity limitations. No credit card required.

Le persone leggono anche