Amazon S3Chiffrement côté client avec les clés principales du client - AWS SDK for Java 1. x

La AWS SDK for Java version 1.x est entrée en mode maintenance le 31 juillet 2024 et atteindra end-of-supportle 31 décembre 2025. Nous vous recommandons de migrer vers le pour continuer AWS SDK for Java 2.xà bénéficier des nouvelles fonctionnalités, des améliorations de disponibilité et des mises à jour de sécurité.

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.

Amazon S3Chiffrement côté client avec les clés principales du client

Les exemples suivants s'appuyant sur leCréateur de chiffrement Amazon S3 Client V2pour créer une classeAmazon S3client avec le chiffrement côté client activé. Une fois activés, les objets que vous chargez dans Amazon S3 à l'aide de ce client sont chiffrés. Les objets que vous obtenez d'Amazon S3 à l'aide de ce client sont automatiquement déchiffrés.

Note

Les exemples suivants illustrent l'utilisation du chiffrement côté client Amazon S3 avec des clés principales client gérées par les clients. Pour savoir comment utiliser le chiffrement avecAWSClés gérées KMS, voirAmazon S3Chiffrement côté client avecAWSClés gérées KMS.

Au moment d'activer côté client, vous avez le choix entre deux modes de chiffrementAmazon S3chiffrement : strictement authentifié ou authentifié. Les sections suivantes montrent comment activer chaque type. Pour savoir quels sont les algorithmes utilisés par chaque mode, consultez la définition CryptoMode.

Importations nécessaires

Pour ces exemples, vous devez importer les classes suivantes.

Importations

import com.amazonaws.ClientConfiguration; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3EncryptionClientV2Builder; import com.amazonaws.services.s3.AmazonS3EncryptionV2; import com.amazonaws.services.s3.model.CryptoConfigurationV2; import com.amazonaws.services.s3.model.CryptoMode; import com.amazonaws.services.s3.model.EncryptionMaterials; import com.amazonaws.services.s3.model.StaticEncryptionMaterialsProvider;

chiffrement authentifié strict

Le chiffrement authentifié strict est le mode par défaut si aucunCryptoModeest spécifié.

Pour activer explicitement ce mode, spécifiez leStrictAuthenticatedEncryptionvaleur dans lewithCryptoConfigurationméthode.

Note

Pour utiliser le chiffrement authentifié côté client, vous devez inclure le dernier fichier jar Bouncy Castle dans le chemin de classe de votre application.

Code

AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.StrictAuthenticatedEncryption))) .withEncryptionMaterialsProvider(new StaticEncryptionMaterialsProvider(new EncryptionMaterials(secretKey))) .build(); s3Encryption.putObject(bucket_name, ENCRYPTED_KEY2, "This is the 2nd content to encrypt");

Mode de chiffrement authentifi

Lorsque vous utilisez le mode AuthenticatedEncryption, un algorithme d'encapsulage de clé amélioré est appliqué pendant le chiffrement. Lorsque vous déchiffrez dans ce mode, l'algorithme peut vérifier l'intégrité de l'objet déchiffré et générer une exception si la vérification échoue. Pour de plus amples informations sur le fonctionnement du chiffrement authentifié, veuillez consulter leAmazon S3Chiffrement authentifié côté clientbillet de blog.

Note

Pour utiliser le chiffrement authentifié côté client, vous devez inclure le dernier fichier jar Bouncy Castle dans le chemin de classe de votre application.

Pour activer ce mode, spécifiez la valeur AuthenticatedEncryption dans la méthode withCryptoConfiguration.

Code

AmazonS3EncryptionV2 s3EncryptionClientV2 = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.DEFAULT_REGION) .withClientConfiguration(new ClientConfiguration()) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode(CryptoMode.AuthenticatedEncryption)) .withEncryptionMaterialsProvider(new StaticEncryptionMaterialsProvider(new EncryptionMaterials(secretKey))) .build(); s3EncryptionClientV2.putObject(bucket_name, ENCRYPTED_KEY1, "This is the 1st content to encrypt");