Caricamento di dati crittografati su Amazon S3 - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Caricamento di dati crittografati su Amazon S3

Amazon S3 supporta sia la crittografia lato server sia la crittografia lato client. In questo argomento vengono discusse le differenze tra la crittografia lato server e quella lato client e vengono descritte le fasi per utilizzare la crittografia lato client con Amazon Redshift. La crittografia lato server è trasparente per Amazon Redshift.

Crittografia lato server

La crittografia lato server è una crittografia dei dati a riposo, vale a dire che Amazon S3 consente di crittografare i dati durante il caricamento e ne esegue la decrittografia quando avviene l'accesso. Quando si esegue il caricamento delle tabelle utilizzando un comando COPY, non esiste differenza nel modo in cui si esegue il caricamento da oggetti non crittografati o crittografati lato server in Amazon S3. Per ulteriori informazioni sulla crittografia lato server, consultare Utilizzo della crittografia lato server nella Guida per l'utente di Amazon Simple Storage Service.

Crittografia lato client

Nella crittografia lato client, l'applicazione client gestisce la crittografia dei dati, le chiavi di crittografia e gli strumenti correlati. È possibile caricare i dati in un bucket Amazon S3 utilizzando la crittografia lato client, quindi caricare i dati utilizzando il comando COPY con l'opzione ENCRYPTED e una chiave di crittografia privata per fornire maggiore sicurezza.

Crittografi i dati utilizzando la crittografia envelope. Con la crittografia envelope, l'applicazione gestisce tutta la crittografia in modo esclusivo. Le tue chiavi di crittografia private e i tuoi dati non crittografati non vengono mai inviati a AWS, quindi è molto importante gestire in modo sicuro le chiavi di crittografia. Se perdi le chiavi di crittografia, non sarai in grado di decrittografare i dati e non potrai recuperarle da. AWS La crittografia envelope combina le prestazioni della crittografia simmetrica rapida, mantenendo al contempo la maggiore sicurezza fornita dalla gestione delle chiavi con chiavi asimmetriche. Una chiave one-time-use simmetrica (la chiave simmetrica dell'involucro) viene generata dal client di crittografia Amazon S3 per crittografare i dati, quindi tale chiave viene crittografata dalla chiave principale e archiviata insieme ai dati in Amazon S3. Quando Amazon Redshift accede ai dati durante un caricamento, la chiave simmetrica crittografata viene recuperata e decrittografata con la chiave reale, quindi i dati vengono decrittografati.

Per lavorare con i dati crittografati lato client di Amazon S3 in Amazon Redshift, seguire la procedura descritta in Protezione dei dati con la crittografia lato client nella Guida per l'utente di Amazon Simple Storage Service, con i requisiti aggiuntivi utilizzati:

  • Crittografia simmetrica: la classe di AWS SDK per Java AmazonS3EncryptionClient utilizza la crittografia envelope, descritta in precedenza, che si basa sulla crittografia della chiave simmetrica. Utilizzare questa classe per creare un client Amazon S3 per caricare dati crittografati lato client.

  • Una chiave simmetrica root AES a 256 bit: una chiave root crittografa la chiave envelope. Trasferisci la chiave root all'istanza della chiave AmazonS3EncryptionClient. Salvare questa chiave, perché sarà necessaria per copiare i dati in Amazon Redshift.

  • Metadati oggetto per archiviare la chiave envelope crittografata: per impostazione predefinita, Amazon S3 archivia la chiave envelope come metadati degli oggetti per la classe AmazonS3EncryptionClient. La chiave envelope crittografata che viene archiviata come metadati degli oggetti viene utilizzata durante il processo di decrittografia.

Nota

Se si ottiene un messaggio indicante un errore di crittografia quando si usa l'API di crittografia per la prima volta, la propria versione del JDK potrebbe avere un file di policy per l'ambito di Java Cryptography Extension (JCE) che limita la lunghezza massima della chiave per le trasformazioni di crittografia e decrittografia a 128 bit. Per informazioni su come risolvere questo problema, consulta Specificare la crittografia lato client utilizzando l'SDK for AWS Java nella Guida per l'utente di Amazon Simple Storage Service.

Per informazioni sul caricamento di file crittografati lato client nelle tabelle Amazon Redshift con il comando COPY, consultare Caricamento di file di dati crittografati da Amazon S3.

Esempio: caricamento di dati crittografati lato client

Per un esempio di come utilizzare l' AWS SDK for Java per caricare dati crittografati lato client, consulta Protezione dei dati utilizzando la crittografia lato client nella Guida per l'utente di Amazon Simple Storage Service.

La seconda opzione illustra le scelte da effettuare durante la crittografia lato client in modo che i dati possano essere caricati in Amazon Redshift. Nello specifico, l'esempio illustra l'uso dei metadati degli oggetti per archiviare la chiave envelope crittografata e l'uso di una chiave simmetrica root AES a 256 bit.

Questo esempio fornisce un codice di esempio che utilizza l' AWS SDK for Java per creare una chiave radice simmetrica AES a 256 bit e salvarla in un file. Successivamente, nell'esempio viene caricato un oggetto in Amazon S3 utilizzando un client di crittografia S3 che prima crittografa i dati di esempio sul lato client. Nell'esempio si scarica anche l'oggetto e si verifica che i dati corrispondano.