Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog
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 les tables à l’aide d’une commande COPY, il n’existe aucune différence dans la façon dont vous chargez à partir d’objets non chiffrés ou d’objets 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 charger les données sur un compartiment Amazon S3 à l’aide d’un chiffrement côté client, puis chargez les données à l’aide de la commande COPY avec l’option ENCRYPTED 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. Comme vos clés de chiffrement privées et vos données non chiffrées ne sont jamais envoyées à AWS, il est très important que vous puissiez gérer en toute sécurité vos clés de chiffrement. Si vous perdez vos clés de chiffrement, vous ne serez pas en mesure de déchiffrer vos données et vous ne pouvez pas récupérer vos clés de chiffrement depuis 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é symétrique à utilisation unique (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 en même temps que 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 : le kit SDK AWS pour la classe Java
AmazonS3EncryptionClientutilise le chiffrement d’enveloppe, décrit précédemment, qui repose sur le chiffrement à clé symétrique. Utilisez cette classe pour créer un client Amazon S3 et charger les données chiffrées côté client. -
Clé symétrique racine AES 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 l’API de chiffrement pour la première fois, il se peut que votre version JDK possède un fichier de politique de juridiction Java Cryptography Extension (JCE) qui limite la longueur maximale de la clé pour les transformations de chiffrement et de déchiffrement vers 128 bits. Pour plus d’informations sur la résolution de ce problème, consultez Spécification du chiffrement côté client à l’aide du kit SDK AWS pour Java dans le Guide de l’utilisateur 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 la commande COPY, consultez Chargement de fichiers de données chiffrés à partir d’Amazon S3.
Exemple : Chargement des données chiffrées côté client
Pour obtenir un exemple d’utilisation du kit SDK AWS pour Java et charger les données chiffrées côté client, consultez Protection des données via le chiffrement côté client dans le Guide de l’utilisateur 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 objet pour stocker la clé enveloppe chiffrée et l’utilisation d’une clé symétrique racine AES 256 bits.
Cette section fournit un code d’exemple d’utilisation du kit SDK AWS pour Java pour créer une clé racine symétrique AES 256 bits symétrique 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.