

Die Version AWS SDK für Java 1.x wurde end-of-support am 31. Dezember 2025 erreicht. Wir empfehlen Ihnen, auf den zu migrieren [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html), 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 S3 Clientseitige Verschlüsselung verwenden
<a name="examples-crypto"></a>

Das Verschlüsseln von Daten mit dem Amazon S3 Verschlüsselungsclient ist eine Möglichkeit, eine zusätzliche Schutzebene für vertrauliche Informationen bereitzustellen, in denen Sie gespeichert sind. Amazon S3 Die Beispiele in diesem Abschnitt zeigen, wie Sie den Amazon S3 Verschlüsselungsclient für Ihre Anwendung erstellen und konfigurieren.

Wenn Sie mit Kryptografie noch nicht vertraut sind, finden Sie in den [Grundlagen der Kryptografie](https://docs.aws.amazon.com/kms/latest/developerguide/crypto-intro.html) im AWS KMS-Entwicklerhandbuch einen grundlegenden Überblick über Begriffe und Algorithmen der Kryptografie. Informationen zur allgemeinen Kryptografieunterstützung finden Sie AWS SDKs unter [AWS SDK-Unterstützung für Amazon S3 clientseitige Verschlüsselung](https://docs.aws.amazon.com/general/latest/gr/aws_sdk_cryptography.html) in der Amazon Web Services Allgemeinen Referenz.

**Anmerkung**  
Bei diesen Codebeispielen wird vorausgesetzt, dass Sie die Informationen [unter Verwenden von](basics.md) verstehen AWS SDK für Java und AWS Standardanmeldedaten anhand der Informationen unter [AWS Anmeldeinformationen einrichten und Region](setup-credentials.md) für die Entwicklung konfiguriert haben.

Wenn Sie Version 1.11.836 oder eine frühere Version von verwenden AWS SDK für Java, finden Sie unter [Amazon S3 Encryption Client Migration Informationen zur Migration](s3-encryption-migration.md) Ihrer Anwendungen auf spätere Versionen. Wenn Sie nicht migrieren können, finden Sie [dieses](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/S3Encrypt.java) vollständige Beispiel unter. GitHub

Wenn Sie Version 1.11.837 oder höher von verwenden AWS SDK für Java, sollten Sie sich andernfalls die unten aufgeführten Beispielthemen zur Verwendung Amazon S3 der clientseitigen Verschlüsselung ansehen.

**Topics**
+ [

# Amazon S3 clientseitige Verschlüsselung mit Client-Hauptschlüsseln
](examples-crypto-masterkey.md)
+ [

# Amazon S3 clientseitige Verschlüsselung mit AWS KMS-verwalteten Schlüsseln
](examples-crypto-kms.md)

# Amazon S3 clientseitige Verschlüsselung mit Client-Hauptschlüsseln
<a name="examples-crypto-masterkey"></a>

In den folgenden Beispielen wird die [AmazonS3 EncryptionClient V2Builder-Klasse](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/AmazonS3EncryptionClientV2Builder.html) verwendet, um einen Amazon S3 Client mit aktivierter clientseitiger Verschlüsselung zu erstellen. Nach der Aktivierung werden alle Objekte, auf die Sie mit diesem Client hochladen, Amazon S3 verschlüsselt. Alle Objekte, die Sie Amazon S3 mit diesem Client erhalten, werden automatisch entschlüsselt.

**Anmerkung**  
Die folgenden Beispiele zeigen die Verwendung der Amazon S3 clientseitigen Verschlüsselung mit kundenverwalteten Client-Hauptschlüsseln. Informationen zur Verwendung der Verschlüsselung mit von AWS KMS verwalteten Schlüsseln finden Sie unter [Amazon S3 Clientseitige Verschlüsselung](examples-crypto-kms.md) mit von KMS verwalteten Schlüsseln. AWS 

Bei der Aktivierung der clientseitigen Verschlüsselung können Sie zwischen zwei Verschlüsselungsmodi wählen: strikt authentifiziert Amazon S3 oder authentifiziert. In den folgenden Abschnitten sehen Sie, wie die unterschiedlichen Modi aktiviert werden. Informationen zu den Algorithmen, die in den einzelnen Modi verwendet werden, finden Sie in der Definition. [CryptoMode](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/CryptoMode.html)

## Erforderliche Importe
<a name="required-imports"></a>

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
<a name="strict-authenticated-encryption"></a>

Strikte authentifizierte Verschlüsselung ist der Standardmodus, wenn kein Modus angegeben `CryptoMode` ist.

Um diesen Modus explizit zu aktivieren, geben Sie den `StrictAuthenticatedEncryption` Wert in der `withCryptoConfiguration` Methode an.

**Anmerkung**  
Bei Verwendung der clientseitigen authentifizierten Verschlüsselung müssen Sie die neueste [Bouncy Castle jar](https://www.bouncycastle.org/download/bouncy-castle-java/)-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");
```

## Authentifizierter Verschlüsselungsmodus
<a name="authenticated-encryption-mode"></a>

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 Informationen zur Funktionsweise der authentifizierten Verschlüsselung finden Sie im Blogbeitrag [Amazon S3 Client-Side Authenticated](https://aws.amazon.com/blogs/developer/amazon-s3-client-side-authenticated-encryption) Encryption.

**Anmerkung**  
Bei Verwendung der clientseitigen authentifizierten Verschlüsselung müssen Sie die neueste [Bouncy Castle jar](https://www.bouncycastle.org/download/bouncy-castle-java/)-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");
```

# Amazon S3 clientseitige Verschlüsselung mit AWS KMS-verwalteten Schlüsseln
<a name="examples-crypto-kms"></a>

In den folgenden Beispielen wird die [AmazonS3 EncryptionClient V2Builder-Klasse](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/AmazonS3EncryptionClientV2Builder.html) verwendet, um einen Amazon S3 Client mit aktivierter clientseitiger Verschlüsselung zu erstellen. Nach der Konfiguration werden alle Objekte, auf die Sie mit diesem Client hochladen, Amazon S3 verschlüsselt. Alle Objekte, die Sie Amazon S3 über diesen Client erhalten, werden automatisch entschlüsselt.

**Anmerkung**  
Die folgenden Beispiele zeigen, wie die Amazon S3 clientseitige Verschlüsselung mit verwalteten AWS KMS-Schlüsseln verwendet wird. Informationen zur Verwendung der Verschlüsselung mit Ihren eigenen Schlüsseln finden Sie unter [Amazon S3 Clientseitige Verschlüsselung mit Client-Hauptschlüsseln](examples-crypto-masterkey.md).

Bei der Aktivierung der clientseitigen Verschlüsselung können Sie zwischen zwei Verschlüsselungsmodi wählen: strikt authentifiziert Amazon S3 oder authentifiziert. In den folgenden Abschnitten sehen Sie, wie die unterschiedlichen Modi aktiviert werden. Informationen zu den Algorithmen, die in den einzelnen Modi verwendet werden, finden Sie in der Definition. [CryptoMode](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/CryptoMode.html)

## Erforderliche Importe
<a name="required-imports"></a>

Importieren Sie für diese Beispiele die folgenden Klassen.

 **Importe** 

```
import com.amazonaws.ClientConfiguration;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.kms.AWSKMS;
import com.amazonaws.services.kms.AWSKMSClientBuilder;
import com.amazonaws.services.kms.model.GenerateDataKeyRequest;
import com.amazonaws.services.kms.model.GenerateDataKeyResult;
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.KMSEncryptionMaterialsProvider;
```

## Strikte authentifizierte Verschlüsselung
<a name="strict-authenticated-encryption-kms"></a>

Strikte authentifizierte Verschlüsselung ist der Standardmodus, wenn kein Modus angegeben `CryptoMode` ist.

Um diesen Modus explizit zu aktivieren, geben Sie den `StrictAuthenticatedEncryption` Wert in der `withCryptoConfiguration` Methode an.

**Anmerkung**  
Bei Verwendung der clientseitigen authentifizierten Verschlüsselung müssen Sie die neueste [Bouncy Castle jar](https://www.bouncycastle.org/download/bouncy-castle-java/)-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 KMSEncryptionMaterialsProvider(keyId))
         .build();

s3Encryption.putObject(bucket_name, ENCRYPTED_KEY3, "This is the 3rd content to encrypt with a key created in the {console}");
System.out.println(s3Encryption.getObjectAsString(bucket_name, ENCRYPTED_KEY3));
```

Rufen Sie die `putObject` Methode auf dem Amazon S3 Verschlüsselungsclient auf, um Objekte hochzuladen.

 **Code** 

```
s3Encryption.putObject(bucket_name, ENCRYPTED_KEY3, "This is the 3rd content to encrypt with a key created in the {console}");
```

Sie können das Objekt mit demselben Client abrufen. Bei diesem Beispiel wird die `getObjectAsString`-Methode zum Abrufen der gespeicherten Zeichenfolge eingesetzt.

 **Code** 

```
System.out.println(s3Encryption.getObjectAsString(bucket_name, ENCRYPTED_KEY3));
```

## Authentifizierter Verschlüsselungsmodus
<a name="authenticated-encryption-kms"></a>

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 Informationen zur Funktionsweise der authentifizierten Verschlüsselung finden Sie im Blogbeitrag [Amazon S3 Client-Side Authenticated](https://aws.amazon.com/blogs/developer/amazon-s3-client-side-authenticated-encryption) Encryption.

**Anmerkung**  
Bei Verwendung der clientseitigen authentifizierten Verschlüsselung müssen Sie die neueste [Bouncy Castle jar](https://www.bouncycastle.org/download/bouncy-castle-java/)-Datei im Klassenpfad Ihrer Anwendung einschließen.

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

 **Code** 

```
AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard()
         .withRegion(Regions.US_WEST_2)
         .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.AuthenticatedEncryption)))
         .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId))
         .build();
```

## AWS KMS Den Client konfigurieren
<a name="configure-kms"></a>

Der Amazon S3 Verschlüsselungsclient erstellt standardmäßig einen AWS KMS Client, sofern nicht explizit einer angegeben ist.

Um die Region für diesen automatisch erstellten AWS KMS Client festzulegen, legen Sie den fest. `awsKmsRegion`

 **Code** 

```
Region kmsRegion = Region.getRegion(Regions.AP_NORTHEAST_1);

AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard()
        .withRegion(Regions.US_WEST_2)
        .withCryptoConfiguration(new CryptoConfigurationV2().withAwsKmsRegion(kmsRegion))
        .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId))
        .build();
```

Alternativ können Sie Ihren eigenen AWS KMS Client verwenden, um den Verschlüsselungsclient zu initialisieren.

 **Code** 

```
AWSKMS kmsClient = AWSKMSClientBuilder.standard()
        .withRegion(Regions.US_WEST_2);
        .build();

AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard()
        .withRegion(Regions.US_WEST_2)
        .withKmsClient(kmsClient)
        .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.AuthenticatedEncryption)))
        .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId))
        .build();
```