Amazon Redshift non supporterà più l'uso delle UDF Python dopo il 30 giugno 2026. Inizieremo ad applicarlo per fasi. Per ulteriori informazioni sulla fine del ciclo di vita e sulle opzioni di migrazione di Python, consulta il post del
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. Questo argomento illustra le differenze tra la crittografia lato server e lato client e descrive i passaggi per utilizzare la crittografia lato client con Amazon Redshift. Server-sidela crittografia è trasparente per Amazon Redshift.
Server-side crittografia
Server-side la crittografia è la crittografia dei dati inattivi, ovvero Amazon S3 crittografa i tuoi dati mentre li carica e li decrittografa per te quando accedi ad essi. 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, consulta Using Encryption nella Amazon Simple Storage Service User Server-Side Guide.
Client-side crittografia
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 che tu gestisca in sicurezza le tue chiavi di crittografia. Se perdi le chiavi di crittografia, non sarai in grado di decrittografare i dati e non potrai recuperarle. 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 simmetrica utilizzabile una volta sola (la chiave simmetrica envelope) viene generata dal client di crittografia Amazon S3 per crittografare i dati, quindi tale chiave viene crittografata dalla chiave root 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, segui i passaggi descritti in Protecting Data Using Client-Side Encryption nella Amazon Simple Storage Service User Guide, con i requisiti aggiuntivi che utilizzi:
-
Crittografia simmetrica: la classe di AWS SDK per Java
AmazonS3EncryptionClientutilizza 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 la sezione Specification Client-Side Encryption Using the AWS SDK for Java nella Amazon Simple Storage Service User Guide.
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 sul lato client, consulta Protecting data using client-side encryption nella Amazon Simple Storage Service User Guide.
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 per 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.