Chargement de données chiffrées sur Amazon S3 - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Chargement de données chiffrées sur Amazon S3

Amazon S3 prend en charge le chiffrement côté serveur et le chiffrement côté client. Cette rubrique présente les différences entre le chiffrement côté serveur et le chiffrement côté client, et décrit les étapes pour utiliser le chiffrement côté client avec Amazon Redshift. Le chiffrement côté serveur est transparent à Amazon Redshift.

Chiffrement côté serveur

Le chiffrement côté serveur est le chiffrement des données au repos : autrement dit, Amazon S3 chiffre vos données au fur et à mesure qu’il les charge et les déchiffre automatiquement lorsque vous y accédez. Lorsque vous chargez des tables à l'aide d'une COPY commande, il n'y a aucune différence dans la façon dont vous chargez des objets chiffrés ou non chiffrés côté serveur sur Amazon S3. Pour plus d’informations sur le chiffrement côté serveur, consultez Using Server-Side Encryption dans le Guide de l’utilisateur Amazon Simple Storage Service.

Chiffrement côté client

Dans le chiffrement côté client, votre application cliente gère le chiffrement de vos données, les clés de chiffrement et les outils associés. Vous pouvez télécharger des données dans un compartiment Amazon S3 à l'aide du chiffrement côté client, puis charger les données à l'aide de la COPY commande avec l'ENCRYPTEDoption et une clé de chiffrement privée pour renforcer la sécurité.

Vous chiffrez vos données à l’aide du chiffrement d’enveloppe. Avec le chiffrement d’enveloppe, votre application gère tout le chiffrement exclusivement. Vos clés de chiffrement privées et vos données non chiffrées ne sont jamais envoyées à AWS. Il est donc très important que vous gériez vos clés de chiffrement en toute sécurité. Si vous perdez vos clés de chiffrement, vous ne pourrez pas déchiffrer vos données et vous ne pourrez pas récupérer vos clés de chiffrement. AWS Le chiffrement d’enveloppe combine les performances du chiffrement symétrique rapide tout en assurant la plus grande sécurité que la gestion des clés avec des clés asymétriques fournit. Une clé one-time-use symétrique (la clé symétrique d'enveloppe) est générée par votre client de chiffrement Amazon S3 pour chiffrer vos données, puis cette clé est chiffrée par votre clé racine et stockée avec vos données dans Amazon S3. Quand Amazon Redshift accède à vos données pendant un chargement, la clé symétrique chiffrée est récupérée et déchiffrée avec votre clé réelle, puis les données sont déchiffrées.

Pour utiliser les données chiffrées côté client Amazon S3 dans Amazon Redshift, suivez les étapes présentées dans la section Protection des données à l’aide du chiffrement côté client dans le Guide de l’utilisateur Amazon Simple Storage Service avec les conditions requises supplémentaires que vous utilisez :

  • Chiffrement symétrique — La AmazonS3EncryptionClient classe AWS SDK for Java utilise le chiffrement d'enveloppe, décrit ci-dessus, qui est basé sur le chiffrement par clé symétrique. Utilisez cette classe pour créer un client Amazon S3 et charger les données chiffrées côté client.

  • Une clé symétrique AES racine de 256 bits : une clé racine chiffre la clé d'enveloppe. Vous passez la clé racine à votre instance de la classe AmazonS3EncryptionClient. Enregistrez cette clé, car vous en aurez besoin pour copier les données dans Amazon Redshift.

  • Métadonnées objet pour stocker la clé d’enveloppe chiffrée : par défaut, Amazon S3 stocke la clé d’enveloppe comme métadonnées objet pour la classe AmazonS3EncryptionClient. La clé d’enveloppe chiffrée qui est stockée sous forme de métadonnées objet est utilisée pendant le processus de déchiffrement.

Note

Si vous recevez un message d'erreur de chiffrement lorsque vous utilisez le chiffrement API pour la première fois, votre version du JDK peut contenir un fichier de politique de juridiction Java Cryptography Extension (JCE) qui limite la longueur de clé maximale pour les transformations de chiffrement et de déchiffrement à 128 bits. Pour plus d'informations sur la résolution de ce problème, consultez la section Spécification du chiffrement côté client à l'aide de Java dans le AWS SDK guide de l'utilisateur d'Amazon Simple Storage Service.

Pour plus d'informations sur le chargement de fichiers chiffrés côté client dans vos tables Amazon Redshift à l'aide de COPY la commande, consultez. Chargement de fichiers de données chiffrés à partir d’Amazon S3

Exemple : Chargement des données chiffrées côté client

Pour un exemple d'utilisation de AWS SDK for Java pour télécharger des données chiffrées côté client, consultez la section Protection des données à l'aide du chiffrement côté client dans le guide de l'utilisateur d'Amazon Simple Storage Service.

La seconde option montre les choix que vous devez faire pendant le chiffrement côté client afin que les données puissent être chargées dans Amazon Redshift. Plus précisément, l'exemple montre l'utilisation de métadonnées d'objet pour stocker la clé d'enveloppe chiffrée et l'utilisation d'une clé symétrique AES racine de 256 bits.

Cet exemple fournit un exemple de code utilisant AWS SDK for Java pour créer une clé racine AES symétrique de 256 bits et l'enregistrer dans un fichier. L’exemple charge ensuite un objet sur Amazon S3 à l’aide du client de chiffrement S3 qui chiffre d’abord des exemples de données côté client. Cet exemple télécharge également l’objet et vérifie que les données sont identiques.