Amazon S3Clientseitige -Verschlüsselung mit Clientschlüsseln - AWS SDK for Java 1.x

Version AWS SDK for Java 1.x wurde am 31. Juli 2024 in den Wartungsmodus versetzt und wird end-of-supportam 31. Dezember 2025 verfügbar sein. Wir empfehlen Ihnen, auf den zu migrieren AWS SDK for Java 2.x, um weiterhin neue Funktionen, Verfügbarkeitsverbesserungen und Sicherheitsupdates zu erhalten.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon S3Clientseitige -Verschlüsselung mit Clientschlüsseln

In den folgenden Beispielen wirdAmazons3EncryptionClientV2Builder-Klasse zum Erstellen einerAmazon S3Client mit aktivierter clientseitiger -Verschlüsselung. Nach der Aktivierung werden alle Objekte, die Sie über diesen Client in Amazon S3 hochladen, verschlüsselt. Alle Objekte, die Sie über diesen Client von Amazon S3 erhalten, werden automatisch entschlüsselt.

Anmerkung

Die folgenden Beispiele zeigen, wie die clientseitige Amazon S3-Verschlüsselung mit von Kunden verwalteten Client-Master-Schlüsseln verwendet wird. So lernen Sie, wie Sie Verschlüsselung verwendenAWSKMS verwaltete Schlüssel finden Sie unterAmazon S3clientseitige -Verschlüsselung mitAWSKMS verwaltete Schlüsselaus.

Bei der Aktivierung der clientseitigen Verschlüsselung stehen zwei Verschlüsselungsmodi zur AuswahlAmazon S3verschlüsselung: streng authentifiziert oder authentifiziert. In den folgenden Abschnitten sehen Sie, wie die unterschiedlichen Modi aktiviert werden. Informationen über die Algorithmen, die bei den verschiedenen Modi eingesetzt werden, finden Sie in der CryptoMode-Definition.

Erforderliche Importe

Importieren Sie für diese Beispiele die folgenden Klassen.

Importe

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;

Strikte authentifizierte Verschlüsselung

Strikte authentifizierte Verschlüsselung ist der Standardmodus, wenn neinCryptoModeist angegeben.

Um diesen Modus explizit zu aktivieren, geben Sie dieStrictAuthenticatedEncryption-Wert imwithCryptoConfiguration-Methode.

Anmerkung

Bei Verwendung der clientseitigen authentifizierten Verschlüsselung müssen Sie die neueste Bouncy Castle jar-Datei im Klassenpfad Ihrer Anwendung einschließen.

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");

Authentifizierte Verschlüsselungsmodus

Beim Modus AuthenticatedEncryption wird während der Verschlüsselung ein verbesserter Schlüsselverpackungsalgorithmus angewendet. Bei einer Entschlüsselung in diesem Modus verifiziert der Algorithmus die Integrität des entschlüsselten Objekts und löst eine Ausnahme aus, wenn das Objekt nicht verifiziert werden kann. Weitere Einzelheiten zur Funktionsweise der authentifizierten Verschlüsselung finden Sie unterAmazon S3Clientseitige authentifizierte VerschlüsselungBlogbeitrag.

Anmerkung

Bei Verwendung der clientseitigen authentifizierten Verschlüsselung müssen Sie die neueste Bouncy Castle jar-Datei im Klassenpfad Ihrer Anwendung einschließen.

Zur Aktivierung des Modus geben Sie den AuthenticatedEncryption-Wert in der withCryptoConfiguration-Methode an.

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");