

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.

# Schützen von Daten mit serverseitiger Verschlüsselung
<a name="serv-side-encryption"></a>

**Wichtig**  
Wie [am 19. November 2025 angekündigt, stellt](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service eine neue Standardsicherheitseinstellung für Buckets bereit, die automatisch die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) für alle neuen Allzweck-Buckets deaktiviert. Für bestehende Buckets AWS-Konten ohne SSE-C-verschlüsselte Objekte deaktiviert Amazon S3 auch SSE-C für alle neuen Schreibanforderungen. AWS-Konten Bei Verwendung von SSE-C ändert Amazon S3 die Bucket-Verschlüsselungskonfiguration für keinen der vorhandenen Buckets in diesen Konten. Diese Bereitstellung begann am 6. April 2026 und wird in den nächsten Wochen in 37 AWS Regionen, einschließlich der Regionen AWS China und AWS GovCloud (USA), abgeschlossen sein.  
Aufgrund dieser Änderungen müssen Anwendungen, die SSE-C-Verschlüsselung benötigen, SSE-C bewusst aktivieren, indem sie den [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API-Vorgang verwenden, nachdem ein neuer Bucket erstellt wurde. Weitere Informationen zu dieser Änderung finden Sie unter. [Häufig gestellte Fragen zur SSE-C-Standardeinstellung für neue Buckets](default-s3-c-encryption-setting-faq.md)

**Wichtig**  
Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für das Hochladen neuer Objekte ist in den CloudTrail Protokollen, im S3-Inventar, in der S3-Speicherlinse, in der Amazon S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader im AWS CLI und AWS SDKs verfügbar. Weitere Informationen finden Sie unter [Häufig gestellte Fragen zur Standardverschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Serverseitige Verschlüsselung ist die Verschlüsselung von Daten am Zielort durch die Anwendung oder den Service, der sie erhält. Amazon S3 verschlüsselt Ihre Daten auf Objektebene, wenn es sie auf Festplatten in AWS Rechenzentren schreibt, und entschlüsselt sie für Sie, wenn Sie darauf zugreifen. Wenn Sie Ihre Anforderung authentifizieren und Zugriffsberechtigungen besitzen, gibt es in Bezug auf die Art und Weise, wie Sie auf verschlüsselte oder nicht verschlüsselte Objekte zugreifen, keinen Unterschied. Wenn Sie beispielsweise Ihre Objekte unter Verwendung einer vorsignierten URL teilen, verhält sich die URL für verschlüsselte und unverschlüsselte Objekte gleich. Wenn Sie die Objekte in Ihrem Bucket auflisten, gibt die Listen-API-Operation außerdem eine Liste aller Objekte zurück, unabhängig davon, ob sie verschlüsselt sind.

Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert und alle neuen Objekte, die in einen S3-Bucket hochgeladen werden, werden im Ruhezustand automatisch verschlüsselt. Die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) ist die Standardverschlüsselungskonfiguration für jeden Bucket in Amazon S3. Um einen anderen Verschlüsselungstyp zu verwenden, können Sie entweder die Art der serverseitigen Verschlüsselung angeben, die in Ihren S3-`PUT`-Anfragen verwendet werden soll, oder Sie können die Standardverschlüsselungskonfiguration im Ziel-Bucket festlegen. 

Wenn Sie in Ihren `PUT` Anfragen einen anderen Verschlüsselungstyp angeben möchten, können Sie serverseitige Verschlüsselung mit () -Schlüsseln AWS Key Management Service (SSE-KMS AWS KMS), zweischichtige serverseitige Verschlüsselung mit Schlüsseln (DSSE-KMS) oder serverseitige Verschlüsselung mit vom Kunden bereitgestellten AWS KMS Schlüsseln (SSE-C) verwenden. Wenn Sie im Ziel-Bucket eine andere Standardverschlüsselungskonfiguration festlegen möchten, können Sie SSE-KMS oder DSSE-KMS verwenden.

Weitere Informationen zum Ändern der Standardverschlüsselungskonfiguration für Allzweck-Buckets finden Sie unter[Konfigurieren der Standardverschlüsselung](default-bucket-encryption.md). 

Wenn Sie die Standardverschlüsselungskonfiguration Ihres Buckets auf SSE-KMS ändern, wird der Verschlüsselungstyp der vorhandenen Amazon S3-Objekte im Bucket nicht geändert. Um den Verschlüsselungstyp Ihrer bereits vorhandenen Objekte zu ändern, nachdem Sie die Standardverschlüsselungskonfiguration auf SSE-KMS aktualisiert haben, können Sie Amazon S3 Batch Operations verwenden. Sie stellen S3-Batchvorgänge eine Liste von Objekten bereit, für die Vorgänge ausgeführt werden sollen, und Batch-Vorgänge ruft die jeweilige API auf, um die angegebene Operation auszuführen. Sie können die [Kopieren von Objekten](batch-ops-copy-object.md) Aktion verwenden, um vorhandene Objekte zu kopieren, wodurch sie in denselben Bucket zurückgeschrieben werden, wie SSE-KMS-verschlüsselte Objekte. Ein einzelner Batch-Operations-Auftrag kann die angegebene Operation für Milliarden von Objekten ausführen. Weitere Informationen finden Sie unter [Ausführen von Objektoperationen in großem Umfang mit Batch Operations](batch-ops.md) und im *AWS Speicher-Blogbeitrag* [So verschlüsseln Sie bestehende Objekte in Amazon S3 rückwirkend mithilfe von S3 Inventory, Amazon Athena und S3 Batch](https://aws.amazon.com/blogs/security/how-to-retroactively-encrypt-existing-objects-in-amazon-s3-using-s3-inventory-amazon-athena-and-s3-batch-operations/) Operations. 

**Anmerkung**  
Sie können nicht gleichzeitig unterschiedliche Arten serverseitiger Verschlüsselung auf dasselbe Objekt anwenden.

Wenn Sie Ihre vorhandenen Objekte verschlüsseln müssen, verwenden Sie S3 Batch Operations und S3 Inventory. Weitere Informationen finden Sie unter [Verschlüsseln von Objekten mit Amazon S3 Batch Operations)](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/) und [Ausführen von Objektoperationen in großem Umfang mit Batch Operations](batch-ops.md).

Beim Speichern von Daten in Amazon S3 stehen Ihnen vier sich gegenseitig ausschließende Optionen für die serverseitige Verschlüsselung zur Verfügung, je nachdem, wie Sie die Verschlüsselungsschlüssel verwalten und wie viele Verschlüsselungsebenen Sie anwenden möchten.

**Serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)**  
Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert. Die Standardoption für die serverseitige Verschlüsselung besteht in von Amazon S3 verwalteten Schlüsseln (SSE-S3). Jedes Objekt wird mit einem eindeutigen Schlüssel verschlüsselt. Als zusätzliche Sicherheit verschlüsselt SSE-S3 den Schlüssel selbst mit einem Root-Schlüssel, der regelmäßig rotiert. SSE-S3 verwendet für die Verschlüsselung Ihrer Daten eine der stärksten verfügbaren Blockverschlüsselungen: 256-bit Advanced Encryption Standard (AES-256). Weitere Informationen finden Sie unter [Verwenden serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)](UsingServerSideEncryption.md).

**Serverseitige Verschlüsselung mit () Schlüsseln (SSE-KMS) AWS Key Management Service AWS KMS**  
Die serverseitige Verschlüsselung mit AWS KMS keys (SSE-KMS) wird durch eine Integration des AWS KMS Dienstes mit Amazon S3 bereitgestellt. Damit AWS KMS haben Sie mehr Kontrolle über Ihre Schlüssel. Sie können beispielsweise separate Schlüssel anzeigen, Kontrollrichtlinien bearbeiten und den Schlüsseln in AWS CloudTrail folgen. Darüber hinaus können Sie vom Kunden verwaltete Schlüssel erstellen und verwalten oder von Von AWS verwaltete Schlüssel verwaltete Schlüssel verwenden, die für Sie, Ihren Service und Ihre Region einzigartig sind. Weitere Informationen finden Sie unter [Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS)](UsingKMSEncryption.md).

**Zweischichtige serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) Schlüsseln (DSSE-KMS)**  
Die zweischichtige serverseitige Verschlüsselung mit AWS KMS keys (DSSE-KMS) ähnelt SSE-KMS, aber DSSE-KMS verwendet zwei unabhängige AES-256-Verschlüsselungsebenen anstelle einer Ebene: zuerst wird ein AWS KMS Datenverschlüsselungsschlüssel verwendet, dann wird ein separater, von Amazon S3 verwalteter Verschlüsselungsschlüssel verwendet. Da beide Verschlüsselungsebenen serverseitig auf ein Objekt angewendet werden, können Sie eine Vielzahl von Tools verwenden, um Daten in S3 zu analysieren AWS-Services und gleichzeitig eine Verschlüsselungsmethode zu verwenden, die die Compliance-Anforderungen für die mehrschichtige Verschlüsselung erfüllt. Weitere Informationen finden Sie unter [Verwendung der zweischichtigen serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (DSSE-KMS)](UsingDSSEncryption.md).

**Serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)**  
Bei serverseitiger Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) verwalten Sie die Verschlüsselungsschlüssel und Amazon S3 verwaltet die Verschlüsselung, wenn es auf Festplatten schreibt, und die Entschlüsselung, wenn Sie auf Ihre Objekte zugreifen. Weitere Informationen finden Sie unter [Verwenden von serverseitiger Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)](ServerSideEncryptionCustomerKeys.md).

**Anmerkung**  
Wenn Sie Access Points für FSx Amazon-Dateisysteme mit S3-Zugriffspunkten verwenden, haben Sie eine Option für die serverseitige Verschlüsselung.  
Für alle FSx Amazon-Dateisysteme ist die Verschlüsselung standardmäßig konfiguriert und sie werden im Ruhezustand mit Schlüsseln verschlüsselt, die mithilfe verwaltet werden AWS Key Management Service. Die Daten werden automatisch im Dateisystem ver- und entschlüsselt, wenn Daten in das Dateisystem geschrieben oder aus dem Dateisystem gelesen werden. Diese Prozesse werden von Amazon FSx transparent abgewickelt.

# Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets
<a name="bucket-encryption"></a>

**Wichtig**  
Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für das Hochladen neuer Objekte ist in den CloudTrail Protokollen, im S3-Inventar, in der S3-Speicherlinse, in der Amazon S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader im AWS CLI und AWS SDKs verfügbar. Weitere Informationen finden Sie unter [Häufig gestellte Fragen zur Standardverschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert und Objekte werden automatisch unter Verwendung der serverseitigen Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt. Diese Verschlüsselungseinstellung gilt für alle Objekte in Ihren Amazon-S3-Buckets.

Wenn Sie mehr Kontrolle über Ihre Schlüssel benötigen, z. B. bei der Verwaltung der Schlüsselrotation und der Gewährung von Zugriffsrichtlinien, können Sie zwischen serverseitiger Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) oder zweischichtiger serverseitiger Verschlüsselung mit AWS KMS Schlüsseln (DSSE-KMS) wählen. Weitere Informationen zum Bearbeiten von KMS-Schlüsseln finden Sie unter [Bearbeiten von Schlüsseln](https://docs.aws.amazon.com/kms/latest/developerguide/editing-keys.html) im *Entwicklerhandbuch zu AWS Key Management Service *. 

**Anmerkung**  
Wir haben die Buckets geändert, sodass neue Objekt-Uploads automatisch verschlüsselt werden. Wenn Sie zuvor einen Bucket ohne Standardverschlüsselung erstellt haben, aktiviert Amazon S3 die Verschlüsselung für den Bucket standardmäßig mithilfe von SSE-S3. Die Standardverschlüsselungskonfiguration für einen vorhandenen Bucket, für den bereits SSE-S3 oder SSE-KMS konfiguriert ist, wird nicht geändert. Wenn Sie Ihre Objekte mit SSE-KMS verschlüsseln möchten, müssen Sie den Verschlüsselungstyp in Ihren Bucket-Einstellungen ändern. Weitere Informationen finden Sie unter [Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS)](UsingKMSEncryption.md). 

Wenn Sie Ihren Bucket so konfigurieren, dass er die Standardverschlüsselung mit SSE-KMS verwendet, können Sie auch S3 Bucket Keys aktivieren, um den Anforderungsverkehr von Amazon S3 zu reduzieren AWS KMS und die Kosten für die Verschlüsselung zu senken. Weitere Informationen finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md).

Um Buckets zu identifizieren, für die SSE-KMS für die Standardverschlüsselung aktiviert ist, können Sie Metriken von Amazon S3 Storage Lens verwenden. S3 Storage Lens ist eine Cloud-Speicheranalysefunktion, mit der Sie unternehmensweite Einblicke in die Nutzung und Aktivität von Objektspeichern erhalten können. Weitere Informationen finden Sie unter [Verwenden von S3 Storage Lens zum Schutz Ihrer Daten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-data-protection.html?icmpid=docs_s3_user_guide_bucket-encryption.html).

Wenn Sie die serverseitige Verschlüsselung verwenden, verschlüsselt Amazon S3 ein Objekt vor dem Speichern auf der Festplatte und entschlüsselt es beim Herunterladen des Objekts. Weitere Informationen zum Schutz von Daten mithilfe der serverseitigen Verschlüsselung und der Verwaltung der Verschlüsselungsschlüssel finden Sie unter [Schützen von Daten mit serverseitiger Verschlüsselung](serv-side-encryption.md).

Weitere Informationen zu den Berechtigungen, die für die Standardverschlüsselung erforderlich sind, finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) in der *API-Referenz zu Amazon Simple Storage Service*.

Sie können das standardmäßige Verschlüsselungsverhalten von Amazon S3 für einen S3-Bucket mithilfe der Amazon S3 S3-Konsole AWS SDKs, der Amazon S3 S3-REST-API und der AWS Befehlszeilenschnittstelle (AWS CLI) konfigurieren.

**Verschlüsseln vorhandener Objekte**  
Zum Verschlüsseln Ihrer vorhandenen nicht verschlüsselten Amazon-S3-Objekte können Sie Amazon S3 Batch Operations verwenden. Sie stellen S3-Batch-Vorgänge eine Liste von Objekten bereit, für die Vorgänge ausgeführt werden sollen, und Batch-Vorgänge ruft die jeweilige API auf, um die angegebene Operation auszuführen. Mit der Operation [Batch Operations Copy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html) können Sie vorhandenen nicht verschlüsselte Objekte kopieren und die neuen verschlüsselten Objekte in denselben Bucket schreiben. Ein einzelner Batch-Operations-Auftrag kann die angegebene Operation für Milliarden von Objekten ausführen. Weitere Informationen finden Sie unter [Ausführen von Objektoperationen in großem Umfang mit Batch Operations](batch-ops.md) und im Beitrag des *AWS Storage Blog* [Encrypting objects with Amazon S3 Batch Operations](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/).

Sie können auch vorhandene Objekte verschlüsseln, indem Sie die `CopyObject` API-Operation oder den `copy-object` AWS CLI Befehl verwenden. Weitere Informationen finden Sie unter AWS CLI und im Beitrag des *AWS Storage Blog* [Encrypting existing objects with Amazon S3 Batch Operations](https://aws.amazon.com/blogs/storage/encrypting-existing-amazon-s3-objects-with-the-aws-cli/).

**Anmerkung**  
Amazon-S3-Buckets mit Standard-Bucket-Verschlüsselung, die auf SSE-KMS festgelegt ist, können nicht als Ziel-Buckets für [Protokollieren von Anfragen mit Server-Zugriffsprotokollierung](ServerLogs.md) verwendet werden. Für Zielbuckets des Server-Zugriffsprotokolls wird nur die Standard-Verschlüsselung SSE-S3 unterstützt.

## Verwenden der SSE-KMS-Verschlüsselung für kontoübergreifende Vorgänge
<a name="bucket-encryption-update-bucket-policy"></a>

Beachten Sie Folgendes, wenn Sie kontoübergreifende Operationen verschlüsseln:
+ Wenn bei der Anfrage oder über die Standardverschlüsselungskonfiguration des Buckets kein AWS KMS key Amazon-Ressourcenname (ARN) oder Alias bereitgestellt wird, wird Von AWS verwalteter Schlüssel (`aws/s3`) verwendet.
+ Wenn Sie S3-Objekte hochladen oder auf sie zugreifen, indem Sie AWS Identity and Access Management (IAM) -Prinzipale verwenden, die mit Ihrem KMS-Schlüssel AWS-Konto identisch sind, können Sie () verwenden. Von AWS verwalteter Schlüssel `aws/s3` 
+ Verwenden Sie einen vom Kunden verwalteten Schlüssel, wenn Sie kontoübergreifenden Zugriff auf Ihre S3-Objekte gewähren möchten. Sie können die Richtlinie eines vom Kunden verwalteten Schlüssel so konfigurieren, dass der Zugriff von einem anderen Konto aus möglich ist.
+ Wenn Sie einen vom Kunden verwalteten KMS-Schlüssel angeben, empfehlen wir die Verwendung eines vollständig qualifizierten KMS-Schlüssel-ARN. Wenn Sie stattdessen einen KMS-Schlüsselalias verwenden, AWS KMS wird der Schlüssel im Konto des Anforderers aufgelöst. Dieses Verhalten kann dazu führen, dass Daten mit einem KMS-Schlüssel verschlüsselt werden, der dem Anforderer und nicht dem Bucket-Eigentümer gehört.
+ Sie müssen einen Schlüssel angeben, für den Ihnen (dem Anforderer) die Berechtigung `Encrypt` erteilt wurde. Weitere Informationen finden Sie unter [Schlüssel-Benutzern die Verwendung eines KMS-Schlüssels für kryptografische Operationen gestatten](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto) im *Entwicklerhandbuch zu AWS Key Management Service *.

Weitere Informationen darüber, wann vom Kunden verwaltete Schlüssel und AWS verwaltete KMS-Schlüssel verwendet werden [sollten, finden Sie unter Sollte ich einen Von AWS verwalteter Schlüssel oder einen vom Kunden verwalteten Schlüssel verwenden, um meine Objekte in Amazon S3 zu verschlüsseln?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-encryption-keys/)

## Verwenden der Standard-Verschlüsselung mit der Replikation
<a name="bucket-encryption-replication"></a>

Wenn Sie die Standard-Verschlüsselung für einen Replikations-Ziel-Bucket aktivieren, gilt das folgende Verschlüsselungsverhalten:
+ Wenn Objekte im Quell-Bucket nicht verschlüsselt sind, werden die Replikatobjekte im Ziel-Bucket mithilfe der Einstellungen der Standard-Verschlüsselung des Ziel-Buckets verschlüsselt. Infolgedessen unterscheiden sich die Entitäts-Tags (ETags) der Quellobjekte von denen ETags der Replikatobjekte. Wenn Sie Anwendungen haben, die dies verwenden ETags, müssen Sie diese Anwendungen aktualisieren, um diesen Unterschied zu berücksichtigen.
+ Wenn Objekte im Quell-Bucket mit serverseitiger Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3), serverseitiger Verschlüsselung mit () -Schlüsseln AWS Key Management Service (SSE-KMS AWS KMS) oder zweischichtiger serverseitiger Verschlüsselung mit AWS KMS Schlüsseln (DSSE-KMS) verschlüsselt werden, verwenden die Replikatobjekte im Ziel-Bucket denselben Verschlüsselungstyp wie die Quellobjekte. Die Einstellungen der Standard-Verschlüsselung des Ziel-Buckets werden nicht verwendet.

Weitere Informationen über die Verwendung der Standard-Verschlüsselung mit SSE-KMS finden Sie unter [Replizieren verschlüsselter Objekte](replication-config-for-kms-objects.md).

## Verwenden von Amazon S3-Bucket-Schlüsseln mit Standard-Verschlüsselung
<a name="bucket-key-default-encryption"></a>

Wenn Sie Ihren Bucket so konfigurieren, dass SSE-KMS als Standardverschlüsselungsverhalten für neue Objekte verwendet wird, können Sie auch S3-Bucket-Schlüssel konfigurieren. S3-Bucket-Keys reduzieren die Anzahl der Transaktionen von Amazon S3, AWS KMS um die Kosten von SSE-KMS zu senken. 

Wenn Sie Ihren Bucket so konfigurieren, dass er S3 Bucket Keys für SSE-KMS für neue Objekte verwendet, AWS KMS generiert es einen Schlüssel auf Bucket-Ebene, der verwendet wird, um einen eindeutigen [Datenschlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) für Objekte im Bucket zu erstellen. Dieser S3-Bucket-Key wird für einen begrenzten Zeitraum innerhalb von Amazon S3 verwendet, sodass Amazon S3 weniger Anfragen AWS KMS zum Abschluss von Verschlüsselungsvorgängen stellen muss. 

Weitere Informationen zur Verwendung von S3-Bucket-Schlüsseln finden Sie unter [Verwenden von Amazon-S3-Bucket-Schlüssel](bucket-key.md).

# Konfigurieren der Standardverschlüsselung
<a name="default-bucket-encryption"></a>

**Wichtig**  
Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für das Hochladen neuer Objekte ist in den CloudTrail Protokollen, im S3-Inventar, in der S3-Speicherlinse, in der Amazon S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader im AWS CLI und AWS SDKs verfügbar. Weitere Informationen finden Sie unter [Häufig gestellte Fragen zur Standardverschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Für Amazon-S3-Buckets ist die Bucket-Verschlüsselung standardmäßig aktiviert und neue Objekte werden automatisch unter Verwendung der serverseitigen Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt. Diese Verschlüsselung gilt für alle neuen Objekte in Ihren Amazon-S3-Buckets und es fallen keine Kosten für Sie an.

Wenn Sie mehr Kontrolle über Ihre Verschlüsselungsschlüssel benötigen, z. B. die Verwaltung der Schlüsselrotation und der Zuweisung von Zugriffsrichtlinien, können Sie sich für die serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) oder die zweischichtige serverseitige Verschlüsselung mit AWS KMS Schlüsseln (DSSE-KMS) entscheiden. Weitere Informationen zu SSE-KMS finden Sie unter [Angabe der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS)](specifying-kms-encryption.md). Weitere Informationen zu DSSE-KMS finden Sie unter [Verwendung der zweischichtigen serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (DSSE-KMS)](UsingDSSEncryption.md). 

Wenn Sie einen KMS-Schlüssel verwenden möchten, der sich im Besitz eines anderen Kontos befindet, müssen Sie über die Berechtigung zum Verwenden des Schlüssels verfügen. Weitere Informationen zu kontoübergreifenden Berechtigungen für KMS-Schlüssel finden Sie unter [Erstellen von KMS-Schlüsseln, die von anderen Konten verwendet werden können](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console) im *Entwicklerhandbuch zu AWS Key Management Service *. 

Wenn Sie die Standard-Bucket-Verschlüsselung auf SSE-KMS festlegen, können Sie auch einen S3-Bucket-Key konfigurieren, um Ihre Anforderungskosten zu senken. AWS KMS Weitere Informationen finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md).

**Anmerkung**  
Wenn Sie Ihre Standard-Bucket-Verschlüsselung [PutBucketEncryption](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketEncryption.html)auf SSE-KMS setzen, sollten Sie überprüfen, ob Ihre KMS-Schlüssel-ID korrekt ist. Amazon S3 validiert die in PutBucketEncryption Anfragen angegebene KMS-Schlüssel-ID nicht.

Es gibt keine zusätzlichen Gebühren für die Nutzung von Standard-Verschlüsselung für S3-Buckets. Für Anforderungen zum Konfigurieren des Standardverschlüsselungsverhaltens werden Standardgebühren für Amazon-S3-Anforderungen berechnet. Informationen zu Preisen finden Sie unter [Amazon S3 – Preise](https://aws.amazon.com/s3/pricing/). [Für SSE-KMS und DSSE-KMS AWS KMS fallen Gebühren an, die in den Preisen aufgeführt sind.AWS KMS](https://aws.amazon.com/kms/pricing/) 

Die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) wird für die Standardverschlüsselung nicht unterstützt.

Sie können die Amazon S3 S3-Standardverschlüsselung für einen S3-Bucket mithilfe der Amazon S3 S3-Konsole, der AWS SDKs, der Amazon S3 S3-REST-API und der AWS Command Line Interface (AWS CLI) konfigurieren.

**Änderungen, die Sie vor dem Aktivieren der Standardverschlüsselung beachten sollten**  
Nachdem Sie die Standard-Verschlüsselung für einen Bucket aktiviert haben, gilt das folgende Verschlüsselungsverhalten:
+ Es gibt keine Änderung der Verschlüsselung der Objekte, die vor der Aktivierung der Standard-Verschlüsselung im Bucket vorhanden waren. 
+ Wenn Sie Objekte nach der Aktivierung der Standard-Verschlüsselung hochladen:
  + Wenn Ihre `PUT`-Abfrage-Header keine Verschlüsselungsinformationen mit einschließen, verwendet Amazon S3 die Standardverschlüsselungseinstellungen des Buckets, um die Objekte zu verschlüsseln. 
  + Wenn Ihre `PUT`-Anfrage-Header Verschlüsselungsinformationen mit einschließen, verwendet Amazon S3 die Verschlüsselungsinformationen der `PUT`-Anfrage, um Objekte zu verschlüsseln, bevor sie in Amazon S3 gespeichert werden.
+ Wenn Sie die Option SSE-KMS oder DSSE-KMS für die Standardverschlüsselungskonfiguration verwenden, unterliegen Sie den Kontingenten der Anforderungen pro Sekunde (RPS) von AWS KMS. Weitere Informationen zu AWS KMS -Kontingenten und zum Anfordern einer Kontingenterhöhung finden Sie unter [Kontingente](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) im *Entwicklerhandbuch zu AWS Key Management Service *. 

**Anmerkung**  
Objekte, die hochgeladen wurden, bevor die Standardverschlüsselung aktiviert wurde, werden nicht verschlüsselt. Weitere Informationen zum Verschlüsseln vorhandener Objekte finden Sie unter [Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets](bucket-encryption.md).

## Verwenden der S3-Konsole
<a name="bucket-encryption-how-to-set-up-console"></a>

**Konfigurieren der Standardverschlüsselung für einen Amazon-S3-Bucket**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

1. Wählen Sie in der Liste **Buckets** den Namen des von Ihnen erstellten Buckets aus. 

1. Wählen Sie die Registerkarte **Eigenschaften** aus.

1. Wählen Sie unter **Default encryption (Standard-Verschlüsselung)** **Edit (Bearbeiten)** aus.

1. Wählen Sie eine der folgenden Optionen unter **Verschlüsselungstyp** aus, um die Verschlüsselung zu konfigurieren: 
   + **Serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)**
   + **Serverseitige Verschlüsselung mit AWS Key Management Service Schlüsseln (SSE-KMS)**
   + **Zweischichtige serverseitige Verschlüsselung mit Schlüsseln (DSSE-KMS) AWS Key Management Service **
**Wichtig**  
Wenn Sie die Optionen SSE-KMS oder DSSE-KMS für die Standardverschlüsselungskonfiguration verwenden, unterliegen Sie den Kontingenten der Anforderungen pro Sekunde (RPS) von AWS KMS. *Weitere Informationen zu AWS KMS Kontingenten und zur Beantragung einer Kontingenterhöhung finden Sie unter [Kontingente](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) im Entwicklerhandbuch.AWS Key Management Service * 

   Buckets und neue Objekte werden standardmäßig mit SSE-S3 verschlüsselt, sofern Sie keine andere Art der Standardverschlüsselung für Ihre Buckets angeben. Weitere Informationen zur Standardverschlüsselung finden Sie unter [Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets](bucket-encryption.md).

   Weitere Informationen zur Datenverschlüsselung mit der serverseitigen Amazon-S3-Verschlüsselung finden Sie unter [Verwenden serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)](UsingServerSideEncryption.md).

1. Wenn Sie sich für **serverseitige Verschlüsselung mit AWS Key Management Service Schlüsseln (SSE-KMS)** oder **Serverseitige Dual-Layer-Verschlüsselung mit AWS Key Management Service Schlüsseln (DSSE-KMS**) entschieden haben, gehen Sie wie folgt vor: 

   1. Geben Sie unter **AWS KMS -Schlüssel** Ihren KMS-Schlüssel auf eine der folgenden Arten an:
      + Um aus einer Liste verfügbarer KMS-Schlüssel auszuwählen, wählen Sie Wählen Sie aus Ihrem und **wählen Sie Ihren AWS KMS keys KMS-Schlüssel aus** **der Liste der verfügbaren Schlüssel** aus.

        Sowohl der Von AWS verwalteter Schlüssel (`aws/s3`) als auch Ihr vom Kunden verwalteter Schlüssel werden in dieser Liste angezeigt. Weitere Informationen zu vom Kunden verwalteten Schlüsseln finden Sie unter [Kundenschlüssel und AWS Schlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) im *AWS Key Management Service Entwicklerhandbuch*.
      + Wählen Sie zum Eingeben des KMS-Schlüssel-ARN ** AWS KMS key -ARN eingeben** aus und geben Sie Ihren KMS-Schlüssel-ARN in das angezeigte Feld ein. 
      + Um einen neuen vom Kunden verwalteten Schlüssel in der AWS KMS Konsole zu **erstellen, wählen Sie Create a KMS Key** aus.

        Weitere Informationen zum Erstellen eines finden Sie AWS KMS key unter [Creating Keys](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) im *AWS Key Management Service Developer Guide*.
**Wichtig**  
Sie können nur KMS-Schlüssel verwenden, die im selben AWS-Region Bucket aktiviert sind. Wenn Sie **Choose from your KMS master keys (Auswahl aus Ihren KMS-Schlüsseln)** auswählen, listet die S3-Konsole nur 100 KMS-Schlüssel pro Region auf. Wenn Sie über mehr als 100 KMS-Schlüssel in derselben Region verfügen, können Sie nur die ersten 100 KMS-Schlüssel in der S3-Konsole sehen. Um einen nicht in der Konsole aufgeführten KMS-Schlüssel zu verwenden, wählen Sie ** AWS KMS key -ARN eingeben** aus und geben Sie den KMS-Schlüssel-ARN ein.  
Wenn Sie einen AWS KMS key für die serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen KMS-Schlüssel für die symmetrische Verschlüsselung wählen. Amazon S3 unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Weitere Informationen zu diesen Schlüsseln finden Sie unter [Symmetrische KMS-Verschlüsselungsschlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) im *Entwicklerhandbuch für AWS Key Management Service *.

      Weitere Informationen zur Verwendung von SSE-KMS mit Amazon S3 finden Sie unter [Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS)](UsingKMSEncryption.md). Weitere Informationen zur Verwendung von DSSE-KMS finden Sie unter [Verwendung der zweischichtigen serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (DSSE-KMS)](UsingDSSEncryption.md).

   1. Wenn Sie Ihren Bucket für die Verwendung der Standardverschlüsselung mit SSE-KMS konfigurieren, können Sie auch einen S3-Bucket-Schlüssel aktivieren. S3-Bucket-Keys senken die Kosten für die Verschlüsselung, indem sie den Anforderungsverkehr von Amazon S3 zu verringern AWS KMS. Weitere Informationen finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md).

      Um S3-Bucket-Schlüssel zu verwenden, wählen Sie unter **Bucket Key (Bucket-Schlüssel)** die Option **Enable (Aktivieren)**.
**Anmerkung**  
S3-Bucket-Schlüssel werden für DSSE-KMS nicht unterstützt.

1. Wählen Sie **Änderungen speichern ** aus.

## Mit dem AWS CLI
<a name="default-bucket-encryption-cli"></a>

Diese Beispiele zeigen Ihnen, wie Sie die Standardverschlüsselung mit SSE-S3 oder SSE-KMS mit einem S3-Bucket-Schlüssel konfigurieren.

Weitere Informationen zur Standardverschlüsselung finden Sie unter [Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets](bucket-encryption.md). Weitere Hinweise AWS CLI zur Konfiguration der Standardverschlüsselung finden Sie unter [put-bucket-encryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-encryption.html).

**Example – Standard-Verschlüsselung mit SSE-S3**  
In diesem Beispiel wird die Standardverschlüsselung von Buckets mit von Amazon S3 verwalteten Schlüsseln konfiguriert.  

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
    "Rules": [
        {
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            }
        }
    ]
}'
```

**Example – Standard-Verschlüsselung mit SSE-KMS mit einem S3-Bucket-Schlüssel**  
In diesem Beispiel wird die Standard-Bucket-Verschlüsselung mit SSE-KMS unter Verwendung eines S3-Bucket-Schlüssels konfiguriert.   

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
    "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "aws:kms",
                    "KMSMasterKeyID": "KMS-Key-ARN"
                },
                "BucketKeyEnabled": true
            }
        ]
    }'
```

## Verwenden der REST-API
<a name="bucket-encryption-how-to-set-up-api"></a>

Verwenden Sie die REST-API-Operation `PutBucketEncryption`, um die Standardverschlüsselung zu aktivieren und den Typ der serverseitigen Verschlüsselung festzulegen, der verwendet werden soll – SSE-S3, SSE-KMS oder DSSE-KMS. 

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) in der *API-Referenz zu Amazon Simple Storage Service*.

# Überwachung der Standardverschlüsselung mit AWS CloudTrail und Amazon EventBridge
<a name="bucket-encryption-tracking"></a>

**Wichtig**  
Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für das Hochladen neuer Objekte ist in den CloudTrail Protokollen, im S3-Inventar, in der S3-Speicherlinse, in der Amazon S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader im AWS CLI und AWS SDKs verfügbar. Weitere Informationen finden Sie unter [Häufig gestellte Fragen zur Standardverschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Sie können Konfigurationsanforderungen zur Standardverschlüsselung für Amazon-S3-Buckets mithilfe von AWS CloudTrail -Ereignissen verfolgen. Die folgenden API-Ereignisnamen werden in CloudTrail Protokollen verwendet:
+ `PutBucketEncryption`
+ `GetBucketEncryption`
+ `DeleteBucketEncryption`

Sie können auch EventBridge Regeln erstellen, die den CloudTrail Ereignissen für diese API-Aufrufe entsprechen. Weitere Informationen zu CloudTrail Ereignissen finden Sie unter[Aktivieren der Protokollierung für Objekte in einem Bucket mit der Konsole](enable-cloudtrail-logging-for-s3.md#enable-cloudtrail-events). Weitere Informationen zu EventBridge Ereignissen finden Sie unter [Ereignisse von AWS-Services](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html).

Sie können CloudTrail Protokolle für Amazon S3-Aktionen auf Objektebene verwenden, um `POST` Anfragen an Amazon S3 nachzuverfolgen`PUT`. Sie können diese Aktionen verwenden, um zu überprüfen, ob die Standardverschlüsselung zum Verschlüsseln von Objekten verwendet wird, wenn eingehende Anfragen `PUT` keine Verschlüsselungs-Header haben.

Wenn Amazon S3 ein Objekt mit den Einstellungen der Standardverschlüsselung verschlüsselt, enthält das Protokoll eins der folgenden Felder als Name-Wert-Paar: `"SSEApplied":"Default_SSE_S3"`, `"SSEApplied":"Default_SSE_KMS"` oder `"SSEApplied":"Default_DSSE_KMS"`.

Wenn Amazon S3 ein Objekt mit den `PUT`-Verschlüsselungs-Headern verschlüsselt, enthält das Protokoll eins der folgenden Felder als Name-Wert-Paar: `"SSEApplied":"SSE_S3"`, `"SSEApplied":"SSE_KMS"`, `"SSEApplied":"DSSE_KMS"` oder `"SSEApplied":"SSE_C"`. 

Diese Informationen sind für mehrteilige Uploads in den Anforderungen der API-Operation `InitiateMultipartUpload` enthalten. Weitere Informationen zur Verwendung von CloudTrail und finden Sie CloudWatch unter. [Protokollierung und Überwachung in Amazon S3](monitoring-overview.md)

# Häufig gestellte Fragen zur Standardverschlüsselung
<a name="default-encryption-faq"></a>

Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. SSE-S3, das den 256-Bit Advanced Encryption Standard (AES-256) verwendet, wird automatisch auf alle neuen Buckets und auf alle vorhandenen S3-Buckets angewendet, für die noch keine Standardverschlüsselung konfiguriert ist. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für das Hochladen neuer Objekte ist in den AWS CloudTrail Protokollen, im S3-Inventar, in der S3-Speicherlinse, in der Amazon S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader in den AWS Command Line Interface (AWS CLI) und im verfügbar. AWS SDKs

In den folgenden Abschnitten werden Fragen zu diesem Update beantwortet. 

**Ändert Amazon S3 die Standardverschlüsselungseinstellungen für meine vorhandenen Buckets, für die bereits die Standardverschlüsselung konfiguriert ist?**  
Nein. Es gibt keine Änderungen an der Standardverschlüsselungskonfiguration für einen vorhandenen Bucket, für den bereits SSE-S3 oder serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) konfiguriert ist. Weitere Informationen zum Festlegen des Standardverschlüsselungsverhalten für Buckets finden Sie unter [Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets](bucket-encryption.md). Weitere Informationen zu den Verschlüsselungseinstellungen von SSE-S3 und SSE-KMS finden Sie unter [Schützen von Daten mit serverseitiger Verschlüsselung](serv-side-encryption.md).

**Wird die Standardverschlüsselung für meine vorhandenen Buckets aktiviert, für die keine Standardverschlüsselung konfiguriert ist?**  
Ja. Amazon S3 konfiguriert jetzt die Standardverschlüsselung für alle vorhandenen unverschlüsselten Buckets für die serverseitige Verschlüsselung mit S3-verwalteten Schlüsseln (SSE-S3) als Basisverschlüsselungsstufe für neue Objekte, die in diese Buckets hochgeladen werden. Objekte, die sich bereits in einem vorhandenen nicht verschlüsselten Bucket befinden, werden nicht automatisch verschlüsselt.

**Wie kann ich den Standardverschlüsselungsstatus neuer Objekt-Uploads einsehen?**  
Derzeit können Sie den Standardverschlüsselungsstatus neuer Objekt-Uploads in den AWS CloudTrail Protokollen, S3 Inventory und S3 Storage Lens, der Amazon S3 S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader in den AWS Command Line Interface (AWS CLI) und im anzeigen. AWS SDKs
+ Informationen zum [Anzeigen Ihrer CloudTrail Ereignisse finden Sie im *AWS CloudTrail Benutzerhandbuch* unter CloudTrail Ereignisse in der CloudTrail Konsole](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html) anzeigen. CloudTrail Protokolle ermöglichen API-Tracking für `PUT` und `POST` Anfragen an Amazon S3. Wenn die Standardverschlüsselung zur Verschlüsselung von Objekten in Ihren Buckets verwendet wird, enthalten die CloudTrail Protokolle für `PUT` und `POST` API-Anfragen das folgende Feld als Name-Wert-Paar:. `"SSEApplied":"Default_SSE_S3"` 
+ Um den automatischen Verschlüsselungsstatus neuer Objektuploads in S3 Inventar anzuzeigen, konfigurieren Sie einen S3-Inventarbericht, der das Feld **Verschlüsselungsmetadaten** enthält, und sehen Sie sich dann den Verschlüsselungsstatus jedes neuen Objekts im Bericht an. Weitere Informationen finden Sie unter [Einrichtung von Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configure-inventory.html#storage-inventory-setting-up).
+ Um den automatischen Verschlüsselungsstatus für neue Objektuploads in S3 Storage Lens anzuzeigen, konfigurieren Sie ein S3-Storage-Lens-Dashboard und sehen Sie sich die Metriken Verschlüsselte **Bytes** und **Anzahl verschlüsselter Objekte** in der Kategorie **Datenschutz** des Dashboards an. Weitere Informationen erhalten Sie unter [Verwenden der S3-Konsole](storage_lens_creating_dashboard.md#storage_lens_console_creating) und [Anzeigen von S3-Storage-Lens-Metriken in den Dashboards](storage_lens_view_metrics_dashboard.md).
+ Wenn Sie den Status der automatischen Verschlüsselung auf Bucket-Ebene in der Amazon-S3-Konsole anzeigen möchten, überprüfen Sie die **Standardverschlüsselung** Ihrer Amazon-S3-Buckets in der Amazon-S3-Konsole. Weitere Informationen finden Sie unter [Konfigurieren der Standardverschlüsselung](default-bucket-encryption.md).
+ Um den Status der automatischen Verschlüsselung als zusätzlichen Amazon S3 S3-API-Antwortheader in den AWS Command Line Interface (AWS CLI) und dem anzuzeigen AWS SDKs, überprüfen Sie den Antwort-Header, `x-amz-server-side-encryption` wenn Sie Objektaktionen verwenden APIs, z. B. [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)und [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html). 

**Was muss ich tun, um von dieser Änderung zu profitieren?**  
Sie müssen keine Änderungen an Ihren bestehenden Anwendungen vornehmen. Da die Standardverschlüsselung für alle Ihre Buckets aktiviert ist, werden alle neuen Objekte, die auf Amazon S3 hochgeladen werden, automatisch verschlüsselt.

**Kann ich die Verschlüsselung für die neuen Objekte deaktivieren, die in meinen Bucket geschrieben werden?**  
Nein. SSE-S3 ist die neue Basisverschlüsselungsstufe, die auf alle neuen Objekte angewendet wird, die in Ihren Bucket hochgeladen werden. Sie können die Verschlüsselung für das Hochladen neuer Objekte nicht mehr deaktivieren.

**Werden sich meine Gebühren ändern?**  
Nein. Die Standardverschlüsselung mit SSE-S3 ist ohne zusätzliche Kosten verfügbar. Speicherplatz, Anfragen und andere S3-Funktionen werden Ihnen wie gewohnt in Rechnung gestellt. Preisinformationen finden Sie unter [Amazon S3 – Preise](https://aws.amazon.com/s3/pricing/).

**Verschlüsselt Amazon S3 meine vorhandenen unverschlüsselten Objekte?**  
Nein. Ab dem 5. Januar 2023 verschlüsselt Amazon S3 nur neue Objekt-Uploads automatisch. Zum Verschlüsseln bestehender Objekte können Sie S3-Batch-Operationen verwenden, um verschlüsselte Kopien Ihrer Objekte zu erstellen. Diese verschlüsselten Kopien behalten die vorhandenen Objektdaten und den Namen bei und werden mit den von Ihnen angegebenen Verschlüsselungsschlüsseln verschlüsselt. Weitere Informationen finden Sie unter [Encrypting objects with Amazon S3 Batch Operations](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/) im *AWS Storage Blog*.

**Ich habe vor dieser Version die Verschlüsselung für meine Buckets nicht aktiviert. Muss ich die Art und Weise, wie ich auf Objekte zugreife, ändern?**  
Nein. Die Standardverschlüsselung mit SSE-S3 verschlüsselt Ihre Daten automatisch, während sie in Amazon S3 geschrieben werden, und entschlüsselt sie für Sie, wenn Sie darauf zugreifen. Die Art und Weise, wie Sie auf automatisch verschlüsselte Objekte zugreifen, ändert sich nicht.

**Muss ich die Art und Weise, wie ich auf meine clientseitig verschlüsselten Objekte zugreife, ändern?**  
Nein. Alle clientseitig verschlüsselten Objekte, die vor dem Hochladen in Amazon S3 verschlüsselt werden, kommen als verschlüsselte Geheimtextobjekte in Amazon S3 an. Diese Objekte verfügen jetzt über eine zusätzliche SSE-S3-Verschlüsselungsebene. Ihre Workloads, die clientseitig verschlüsselte Objekte verwenden, erfordern keine Änderungen an Ihren Client-Services oder Autorisierungseinstellungen.

**Anmerkung**  
HashiCorp Terraform-Benutzer, die keine aktualisierte Version des AWS Anbieters verwenden, stellen möglicherweise eine unerwartete Abweichung fest, nachdem sie neue S3-Buckets ohne kundenspezifische Verschlüsselungskonfiguration erstellt haben. Um diese Abweichung zu vermeiden, aktualisieren Sie Ihre Terraform AWS Provider-Version auf eine der folgenden Versionen: eine beliebige 4.x Version,, oder. 3.76.1 2.70.4

# Aktualisierung der serverseitigen Verschlüsselung für vorhandene Daten
<a name="update-sse-encryption"></a>

Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert und Objekte werden automatisch unter Verwendung der serverseitigen Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt. Diese Standardverschlüsselungseinstellung gilt für alle neuen Objekte in Ihren Amazon S3 S3-Buckets.

Mithilfe der `UpdateObjectEncryption` API-Operation können Sie den serverseitigen Verschlüsselungstyp eines vorhandenen verschlüsselten Objekts in einem Allzweck-Bucket atomar von serverseitiger Verschlüsselung mit Amazon S3 S3-verwalteter Verschlüsselung (SSE-S3) auf serverseitige Verschlüsselung mit () Verschlüsselungsschlüsseln AWS Key Management Service (SSE-KMS AWS KMS) aktualisieren. Der `UpdateObjectEncryption` API-Vorgang verwendet die [Envelope-Verschlüsselung](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#enveloping), um den Datenschlüssel, der zum Ver- und Entschlüsseln Ihres Objekts verwendet wurde, mit Ihrem neu angegebenen serverseitigen Verschlüsselungstyp erneut zu verschlüsseln. 

Amazon S3 führt dieses Verschlüsselungstyp-Update ohne Datenbewegung durch. Mit anderen Worten, wenn Sie den `UpdateObjectEncryption` Vorgang verwenden, werden Ihre Daten nicht kopiert, archivierte Objekte im S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive werden nicht wiederhergestellt und Objekte in der Speicherklasse S3 Intelligent-Tiering werden nicht zwischen den Stufen verschoben. Darüber hinaus behält der `UpdateObjectEncryption` Vorgang alle Eigenschaften der Objektmetadaten bei, einschließlich der Speicherklasse, des Erstellungsdatums, des Datums der letzten Änderung und der Prüfsummeneigenschaften. ETag

Der `UpdateObjectEncryption` Vorgang wird für alle S3-Speicherklassen unterstützt, die von Allzweck-Buckets unterstützt werden. Sie können den `UpdateObjectEncryption` Vorgang verwenden, um Folgendes zu tun: 
+ Ändern Sie verschlüsselte Objekte von serverseitiger Verschlüsselung mit verwalteter Amazon S3 S3-Verschlüsselung (SSE-S3) auf serverseitige Verschlüsselung mit AWS Key Management Service () Verschlüsselungsschlüsseln (SSE-KMS AWS KMS).
+ Aktualisieren Sie mit SSE-KMS verschlüsselte Objekte auf Objektebene so, dass sie S3-Bucket Keys verwenden, wodurch der AWS KMS Anforderungsverkehr von Amazon S3 zu verringert wird. AWS KMS Weitere Informationen finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md).
+ Ändern Sie den vom Kunden verwalteten KMS-Schlüssel, der zur Verschlüsselung Ihrer Daten verwendet wird, sodass Sie die benutzerdefinierten Schlüsselrotationsstandards einhalten können.

**Anmerkung**  
Quellobjekte, die unverschlüsselt oder entweder mit einer dualen serverseitigen Verschlüsselung mit AWS KMS keys (DSSE-KMS) oder mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt sind, werden von diesem Vorgang nicht unterstützt.

Der `UpdateObjectEncryption` Vorgang wird normalerweise in Millisekunden abgeschlossen, unabhängig von der Größe des Objekts oder der Speicherklasse, einschließlich S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive. Dieser Vorgang zählt nicht als Zugriff für S3 Intelligent-Tiering, sodass Objekte in der Stufe „Infrequent Access“ oder „Archive Instant Access“ nicht automatisch auf die Stufe „Häufiger Zugriff“ zurückfallen, wenn Sie den serverseitigen Verschlüsselungstyp Ihres Objekts ändern. 

`UpdateObjectEncryption`ist ein API-Vorgang auf Objektebene (Datenebene), der in Amazon S3 S3-Serverzugriffsprotokollen und AWS CloudTrail Datenereignissen protokolliert wird. Weitere Informationen finden Sie unter [Protokollierungsoptionen für Amazon S3](logging-with-S3.md). 

 Der `UpdateObjectEncryption` Vorgang hat den gleichen Preis wie`PUT`, `COPY``POST`, und `LIST` Anfragen (pro 1.000 Anfragen) und wird unabhängig von der Speicherklasse des zugrunde liegenden Objekts immer als Anforderung der Speicherklasse S3 Standard berechnet. Weitere Informationen finden Sie unter [Amazon S3 – Preise](https://aws.amazon.com/s3/pricing/).

## Einschränkungen und Überlegungen
<a name="update-sse-encryption-restrictions"></a>

Bei der Verwendung des `UpdateObjectEncryption` Vorgangs gelten die folgenden Einschränkungen und Überlegungen:
+ Der `UpdateObjectEncryption` Vorgang unterstützt keine unverschlüsselten Objekte oder Objekte, die entweder mit serverseitiger Dual-Layer-Verschlüsselung AWS KMS keys (DSSE-KMS) oder mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt wurden. Darüber hinaus können Sie SSE-S3 nicht als angeforderte neue Verschlüsselungstypanforderung angeben. `UpdateObjectEncryption`
+ Sie können den `UpdateObjectEncryption` Vorgang verwenden, um Objekte in Buckets zu aktualisieren, für die S3-Versionierung aktiviert ist. Um den Verschlüsselungstyp einer bestimmten Version zu aktualisieren, müssen Sie in Ihrer `UpdateObjectEncryption` Anfrage eine Versions-ID angeben. Wenn Sie keine Versions-ID angeben, bezieht sich die `UpdateObjectEncryption` Anfrage auf die aktuelle Version des Objekts. Weitere Informationen über das S3-Versioning finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md).
+ Der `UpdateObjectEncryption` Vorgang schlägt bei jedem Objekt fehl, auf das der Aufbewahrungsmodus S3 Object Lock oder Legal Hold angewendet wurde. Wenn für ein Objekt eine Aufbewahrungsfrist im Governance-Modus oder eine gesetzliche Aufbewahrungsfrist gilt, müssen Sie zuerst den Object Lock-Status für das Objekt entfernen, bevor Sie Ihre `UpdateObjectEncryption` Anfrage stellen. Sie können den `UpdateObjectEncryption` Vorgang nicht für Objekte verwenden, auf die eine Aufbewahrungsfrist für den Object Lock-Konformitätsmodus angewendet wurde. Weitere Informationen zur S3-Objektsperre finden Sie unter [Sperren von Objekten mit Object Lock](object-lock.md).
+ `UpdateObjectEncryption`Anfragen für Quell-Buckets mit aktivierter Live-Replikation lösen keine Replikatereignisse im Ziel-Bucket aus. Wenn Sie den Verschlüsselungstyp von Objekten sowohl in Ihren Quell- als auch in Ihren Ziel-Buckets ändern möchten, müssen Sie separate `UpdateObjectEncryption` Anfragen für die Objekte in den Quell- und Ziel-Buckets initiieren.
+ Standardmäßig sind alle `UpdateObjectEncryption` Anfragen, die einen vom Kunden verwalteten KMS-Schlüssel angeben, auf KMS-Schlüssel beschränkt, die dem Bucket-Besitzer gehören. AWS-Konto Wenn Sie die Nutzung verwenden AWS Organizations, können Sie die Möglichkeit zur Nutzung AWS KMS keys von Benutzerkonten anderer Mitglieder innerhalb Ihrer Organisation beantragen, indem Sie sich an uns wenden AWS Support.
+ Wenn Sie S3 Batch Replication verwenden, um Datensätze regionsübergreifend zu replizieren und der serverseitige Verschlüsselungstyp Ihrer Objekte zuvor von SSE-S3 auf SSE-KMS aktualisiert wurde, benötigen Sie möglicherweise zusätzliche Berechtigungen. Für den Bucket der Quellregion benötigen Sie Berechtigungen. `kms:decrypt` Anschließend benötigen Sie die `kms:encrypt` Berechtigungen `kms:decrypt` und für den Bucket in der Zielregion. 
+ Sie müssen in Ihrer `UpdateObjectEncryption` Anfrage einen vollständigen KMS-Schlüssel-ARN angeben. Sie können keinen Aliasnamen oder Alias-ARN verwenden. Sie können den vollständigen KMS-Schlüssel-ARN in der AWS-KMS-Konsole oder mithilfe der AWS KMS `DescribeKey` KMS-API ermitteln.

## Erforderliche Berechtigungen
<a name="update-sse-encryption-permissions"></a>

Um den `UpdateObjectEncryption` Vorgang ausführen zu können, benötigen Sie die folgenden Berechtigungen: 
+ `s3:PutObject`
+ `s3:UpdateObjectEncryption`
+ `kms:Encrypt`
+ `kms:Decrypt`
+ `kms:GenerateDataKey`
+ `kms:ReEncrypt*`

Wenn Sie diesen Vorgang mit vom Kunden verwalteten KMS-Schlüsseln aus anderen Teilen Ihrer AWS-Konten Organisation verwenden möchten, benötigen Sie die `organizations:DescribeAccount` entsprechende Genehmigung. AWS Organizations Sie müssen auch die Möglichkeit zur Nutzung AWS KMS keys von Benutzerkonten anderer Mitglieder innerhalb Ihrer Organisation beantragen, indem Sie sich an uns wenden AWS Support.

Um den `UpdateObjectEncryption` Vorgang durchzuführen, fügen Sie Ihrer IAM-Rolle die folgende AWS Identity and Access Management (IAM-) Richtlinie hinzu. Um diese Richtlinie zu verwenden, `amzn-s3-demo-bucket` ersetzen Sie sie durch den Namen Ihres Allzweck-Buckets und ersetzen Sie den anderen `user input placeholders` durch Ihre eigenen Informationen.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "AllowUpdateObjectEncryption",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:UpdateObjectEncryption",
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:ReEncrypt*",
                "organizations:DescribeAccount"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
            ]
        }
    ]
}
```

## Verschlüsselung wird in großen Mengen aktualisiert
<a name="update-sse-encryption-bulk"></a>

Um den serverseitigen Verschlüsselungstyp von mehr als einem Amazon S3 S3-Objekt mit einer einzigen Anfrage zu aktualisieren, können Sie S3 Batch Operations verwenden. Sie können S3 Batch Operations eine Liste von Objekten zur Verfügung stellen, mit denen gearbeitet werden soll, oder Sie können Batch Operations anweisen, auf Objektlisten basierende Objektmetadaten zu generieren, einschließlich Präfix, Speicherklasse, Erstellungsdatum, Verschlüsselungstyp, KMS-Schlüssel-ARN oder S3-Bucket-Key-Status. S3-Batchoperationen rufen die entsprechende API-Operation auf, um die angegebene Operation auszuführen. Ein einziger Batch Operations-Job kann den angegebenen Vorgang für Milliarden von Objekten in einem Bucket ausführen, der Petabyte an Daten enthält. Weitere Informationen über Batchoperationen finden Sie unter [Ausführen von Objektoperationen in großem Umfang mit Batch Operations](batch-ops.md). 

Die Funktion „S3-Batchoperationen“ verfolgt den Fortschritt, versendet Benachrichtigungen und speichert einen detaillierten Abschlussbericht zu allen Aktionen. Sie profitieren von einer vollständig verwalteten, prüfbaren und serverlosen Umgebung. Sie können S3 Batch Operations über die Amazon S3 S3-Konsole AWS Command Line Interface (AWS CLI) AWS SDKs oder die Amazon S3 S3-REST-API verwenden. Weitere Informationen finden Sie unter [Aktualisieren Sie die Objektverschlüsselung](batch-ops-update-encryption.md).

## Die Verschlüsselung für Objekte wird aktualisiert
<a name="update-sse-encryption-single-object"></a>

Sie können den serverseitigen Verschlüsselungstyp für ein Objekt über die AWS Command Line Interface (AWS CLI) AWS SDKs oder die Amazon S3 S3-REST-API aktualisieren. 

### Aktualisieren Sie die Verschlüsselung für ein Objekt
<a name="update-sse-encryption-single-object-procedure"></a>

#### Mit dem AWS CLI
<a name="update-sse-encryption-single-object-cli"></a>

Um die folgenden Befehle ausführen zu können, müssen Sie den AWS CLI installiert und konfiguriert haben. Falls Sie das nicht AWS CLI installiert haben, finden [Sie weitere Informationen unter Installieren oder Aktualisieren auf die neueste Version von AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html) im *AWS Command Line Interface Benutzerhandbuch*.

Alternativ können Sie AWS CLI Befehle von der Konsole aus ausführen, indem Sie AWS CloudShell AWS CloudShell ist eine browserbasierte, vorab authentifizierte Shell, die Sie direkt von der aus starten können. AWS-Managementkonsole[Weitere Informationen finden Sie unter Was ist? CloudShell](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html) und [Erste Schritte mit AWS CloudShell](https://docs.aws.amazon.com//cloudshell/latest/userguide/getting-started.html) im *AWS CloudShell Benutzerhandbuch*.

**Um die Verschlüsselung für ein Objekt zu aktualisieren, verwenden Sie den AWS CLI**

Wenn Sie den folgenden Beispielbefehl verwenden möchten, ersetzen Sie `user input placeholders` durch Ihre eigenen Informationen. 

1. Verwenden Sie den folgenden Befehl, um die Verschlüsselung für ein einzelnes Objekt (`index.html`) in Ihrem Allzweck-Bucket zu aktualisieren (z. B.`amzn-s3-demo-bucket`), um SSE-KMS mit einem S3-Bucket Key zu verwenden:

   ```
   aws s3api update-object-encryption \
   --bucket amzn-s3-demo-bucket \
   --key index.html \
   --object-encryption '{"SSEKMS": { "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/f12a345a-678e-9bbb-1025-62e317037583", "BucketKeyEnabled": true }}'
   ```
**Anmerkung**  
Sie müssen den vollständigen AWS KMS key Amazon-Ressourcennamen (ARN) angeben. Die KMS-Schlüssel-ID und der KMS-Schlüsselalias werden nicht unterstützt.

1. Führen Sie den `head-object` Befehl aus, um den aktualisierten Verschlüsselungstyp Ihres Objekts anzuzeigen:

   ```
   aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html
   ```

#### Verwenden der REST-API
<a name="update-sse-encryption-single-object-rest-api"></a>

Sie können REST-Anfragen senden, um die Verschlüsselung für ein Objekt zu aktualisieren. Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html).

#### Mit dem AWS SDKs
<a name="update-sse-encryption-single-object-sdk"></a>

Sie können die verwenden AWS SDKs , um die Verschlüsselung für ein Objekt zu aktualisieren. Weitere Informationen finden Sie in der [Liste der unterstützten SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html#API_UpdateObjectEncryption_SeeAlso).

------
#### [ Java ]

**Example**  
Im folgenden AWS SDK for Java 2.x Beispiel wird der Verschlüsselungstyp für ein Objekt in einem Allzweck-Bucket auf SSE-KMS aktualisiert.  

```
    public void updateObjectEncryption(String bucketName,
                                       String objectKey,
                                       String versionId,
                                       String kmsKeyArn,
                                       boolean bucketKeyEnabled) {
        // Create the target object encryption type.
        ObjectEncryption objectEncryption = ObjectEncryption.builder()
                .ssekms(SSEKMSEncryption.builder()
                        .kmsKeyArn(kmsKeyArn)
                        .bucketKeyEnabled(bucketKeyEnabled)
                        .build())
                .build();

        // Create the UpdateObjectEncryption request.
        UpdateObjectEncryptionRequest request = UpdateObjectEncryptionRequest.builder()
                .bucket(bucketName)
                .key(objectKey)
                .versionId(versionId)
                .objectEncryption(objectEncryption)
                .build();

        // Update the object encryption.
        try {
            getS3Client().updateObjectEncryption(request);
            logger.info("Object encryption updated to SSE-KMS for {} in bucket {}", objectKey, bucketName);
        } catch (S3Exception e) {
            logger.error("Failed to update to object encryption: {} - Error code: {}", e.awsErrorDetails().errorMessage(),
                    e.awsErrorDetails().errorCode());
            throw e;
        }
    }
```

------
#### [ Python ]

**Example**  
Das folgende AWS SDK für Python (Boto3) Beispiel zeigt, wie der Verschlüsselungstyp für ein Objekt in einem Allzweck-Bucket auf SSE-KMS aktualisiert wird.   

```
response = client.update_object_encryption(
    Bucket='string',
    Key='string',
    VersionId='string',
    ObjectEncryption={
        'SSEKMS': {
                'KMSKeyArn': 'string',
                'BucketKeyEnabled': True|False
        }
    }
)
```

------

# Verwenden serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)
<a name="UsingServerSideEncryption"></a>

**Wichtig**  
Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für das Hochladen neuer Objekte ist in den CloudTrail Protokollen, im S3-Inventar, in der S3-Speicherlinse, in der Amazon S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader im AWS CLI und AWS SDKs verfügbar. Weitere Informationen finden Sie unter [Häufig gestellte Fragen zur Standardverschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Alle neuen Objekt-Uploads in Amazon-S3-Buckets werden standardmäßig mit serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt.

Die serverseitige Verschlüsselung schützt Daten im Ruhezustand. Amazon S3 verschlüsselt jedes Objekt mit einem eindeutigen Schlüssel. Als zusätzliche Sicherheit verschlüsselt es den Schlüssel selbst mit einem Schlüssel, der regelmäßig rotiert. Die serverseitige Amazon S3 S3-Verschlüsselung verwendet den 256-Bit-AES-GCM (Advanced Encryption Standard Galois/Counter Mode), um alle hochgeladenen Objekte zu verschlüsseln.

Es fallen keine weiteren Gebühren für die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) an. Für Anfragen zum Konfigurieren der Standard-Verschlüsselungsfunktion werden jedoch Standardgebühren für Amazon-S3-Anfragen berechnet. Informationen zu Preisen finden Sie unter [Amazon S3 – Preise](https://aws.amazon.com/s3/pricing/).

Wenn Sie möchten, dass Ihre Daten-Uploads ausschließlich mit von Amazon S3 verwalteten Schlüsseln verschlüsselt werden, können Sie die folgende Bucket-Richtlinie verwenden. Beispielsweise verweigert die folgende Bucket-Richtlinie Berechtigungen zum Hochladen von Objekten, wenn die Anforderung nicht den `x-amz-server-side-encryption`-Header enthält, der eine serverseitige Verschlüsselung anfordert:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "PutObjectPolicy",
  "Statement": [
    {
      "Sid": "DenyObjectsThatAreNotSSES3",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": "AES256"
        }
      }
    }
   ]
}
```

------

**Anmerkung**  
Die serverseitige Verschlüsselung verschlüsselt nur die Objektdaten, nicht die Metadaten des Objekts. 

## API-Support für die serverseitige Verschlüsselung
<a name="APISupportforServer-SideEncryption"></a>

Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert und alle neuen Objekte, die in einen S3-Bucket hochgeladen werden, werden im Ruhezustand automatisch verschlüsselt. Die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) ist die Standardverschlüsselungskonfiguration für jeden Bucket in Amazon S3. Um einen anderen Verschlüsselungstyp zu verwenden, können Sie entweder die Art der serverseitigen Verschlüsselung angeben, die in Ihren S3-`PUT`-Anfragen verwendet werden soll, oder Sie können die Standardverschlüsselungskonfiguration im Ziel-Bucket festlegen. 

Wenn Sie in Ihren `PUT` Anfragen einen anderen Verschlüsselungstyp angeben möchten, können Sie serverseitige Verschlüsselung mit AWS Key Management Service () -Schlüsseln (SSE-KMS AWS KMS), zweischichtige serverseitige Verschlüsselung mit Schlüsseln (DSSE-KMS) oder serverseitige Verschlüsselung mit vom Kunden bereitgestellten AWS KMS Schlüsseln (SSE-C) verwenden. Wenn Sie im Ziel-Bucket eine andere Standardverschlüsselungskonfiguration festlegen möchten, können Sie SSE-KMS oder DSSE-KMS verwenden.

Weitere Informationen zum Ändern der Standardverschlüsselungskonfiguration für Allzweck-Buckets finden Sie unter[Konfigurieren der Standardverschlüsselung](default-bucket-encryption.md). 

Wenn Sie die Standardverschlüsselungskonfiguration Ihres Buckets auf SSE-KMS ändern, wird der Verschlüsselungstyp der vorhandenen Amazon S3-Objekte im Bucket nicht geändert. Um den Verschlüsselungstyp Ihrer bereits vorhandenen Objekte zu ändern, nachdem Sie die Standardverschlüsselungskonfiguration auf SSE-KMS aktualisiert haben, können Sie Amazon S3 Batch Operations verwenden. Sie stellen S3-Batchvorgänge eine Liste von Objekten bereit, für die Vorgänge ausgeführt werden sollen, und Batch-Vorgänge ruft die jeweilige API auf, um die angegebene Operation auszuführen. Sie können die [Kopieren von Objekten](batch-ops-copy-object.md) Aktion verwenden, um vorhandene Objekte zu kopieren, wodurch sie in denselben Bucket zurückgeschrieben werden, wie SSE-KMS-verschlüsselte Objekte. Ein einzelner Batch-Operations-Auftrag kann die angegebene Operation für Milliarden von Objekten ausführen. Weitere Informationen finden Sie unter [Ausführen von Objektoperationen in großem Umfang mit Batch Operations](batch-ops.md) und im *AWS Speicher-Blogbeitrag* [So verschlüsseln Sie bestehende Objekte in Amazon S3 rückwirkend mithilfe von S3 Inventory, Amazon Athena und S3 Batch](https://aws.amazon.com/blogs/security/how-to-retroactively-encrypt-existing-objects-in-amazon-s3-using-s3-inventory-amazon-athena-and-s3-batch-operations/) Operations. 

Um die serverseitige Verschlüsselung mithilfe des REST zur Objekterstellung zu konfigurieren, müssen Sie den Anforderungsheader angeben. APIs `x-amz-server-side-encryption` Hinweise zum REST finden Sie APIs unter[Verwenden der REST-API](specifying-s3-encryption.md#SSEUsingRESTAPI).

Die folgenden Amazon S3 APIs unterstützen diesen Header:
+ **PUT-Operationen** – Geben Sie den Anforderungs-Header an, wenn Sie Daten mithilfe der `PUT`-API hochladen. Weitere Informationen finden Sie unter [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html).
+ **Mehrteiligen Upload initiieren** – Geben Sie den Header in der Initiierungsanforderung an, wenn Sie große Objekte mit der API für mehrteilige Uploads hochladen. Weitere Informationen finden Sie unter [Mehrteiligen Upload initiieren](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html).
+ **COPY-Operationen** – Wenn Sie ein Objekt kopieren, erhalten Sie ein Quell- und ein Zielobjekt. Weitere Informationen finden Sie unter [PUT Object – Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).

**Anmerkung**  
Wenn Sie eine `POST`-Operation für das Hochladen eines Objekts verwenden, anstatt den Anforderungs-Header anzugeben, stellen Sie die gleichen Informationen in den Formularfeldern bereit. Weitere Informationen finden Sie unter [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html). 

Sie bieten AWS SDKs auch einen Wrapper APIs , mit dem Sie serverseitige Verschlüsselung anfordern können. Sie können den auch verwenden, AWS-Managementkonsole um Objekte hochzuladen und serverseitige Verschlüsselung anzufordern.

Weitere Informationen finden Sie unter [AWS KMS -Konzepte](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) im *Entwicklerhandbuch zu AWS Key Management Service *.

**Topics**
+ [

## API-Support für die serverseitige Verschlüsselung
](#APISupportforServer-SideEncryption)
+ [

# Angeben serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)
](specifying-s3-encryption.md)

# Angeben serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)
<a name="specifying-s3-encryption"></a>

Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert und alle neuen Objekte, die in einen S3-Bucket hochgeladen werden, werden im Ruhezustand automatisch verschlüsselt. Die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) ist die Standardverschlüsselungskonfiguration für jeden Bucket in Amazon S3. Um einen anderen Verschlüsselungstyp zu verwenden, können Sie entweder die Art der serverseitigen Verschlüsselung angeben, die in Ihren S3-`PUT`-Anfragen verwendet werden soll, oder Sie können die Standardverschlüsselungskonfiguration im Ziel-Bucket festlegen. 

Wenn Sie in Ihren `PUT` Anfragen einen anderen Verschlüsselungstyp angeben möchten, können Sie serverseitige Verschlüsselung mit () Schlüsseln AWS Key Management Service (SSE-KMS AWS KMS), zweischichtige serverseitige Verschlüsselung mit Schlüsseln (DSSE-KMS) oder serverseitige Verschlüsselung mit vom Kunden bereitgestellten AWS KMS Schlüsseln (SSE-C) verwenden. Wenn Sie im Ziel-Bucket eine andere Standardverschlüsselungskonfiguration festlegen möchten, können Sie SSE-KMS oder DSSE-KMS verwenden.

Weitere Informationen zum Ändern der Standardverschlüsselungskonfiguration für Allzweck-Buckets finden Sie unter[Konfigurieren der Standardverschlüsselung](default-bucket-encryption.md). 

Wenn Sie die Standardverschlüsselungskonfiguration Ihres Buckets auf SSE-KMS ändern, wird der Verschlüsselungstyp der vorhandenen Amazon S3-Objekte im Bucket nicht geändert. Um den Verschlüsselungstyp Ihrer bereits vorhandenen Objekte zu ändern, nachdem Sie die Standardverschlüsselungskonfiguration auf SSE-KMS aktualisiert haben, können Sie Amazon S3 Batch Operations verwenden. Sie stellen S3-Batchvorgänge eine Liste von Objekten bereit, für die Vorgänge ausgeführt werden sollen, und Batch-Vorgänge ruft die jeweilige API auf, um die angegebene Operation auszuführen. Sie können die [Kopieren von Objekten](batch-ops-copy-object.md) Aktion verwenden, um vorhandene Objekte zu kopieren, wodurch sie in denselben Bucket zurückgeschrieben werden, wie SSE-KMS-verschlüsselte Objekte. Ein einzelner Batch-Operations-Auftrag kann die angegebene Operation für Milliarden von Objekten ausführen. Weitere Informationen finden Sie unter [Ausführen von Objektoperationen in großem Umfang mit Batch Operations](batch-ops.md) und im *AWS Speicher-Blogbeitrag* [So verschlüsseln Sie bestehende Objekte in Amazon S3 rückwirkend mithilfe von S3 Inventory, Amazon Athena und S3 Batch](https://aws.amazon.com/blogs/security/how-to-retroactively-encrypt-existing-objects-in-amazon-s3-using-s3-inventory-amazon-athena-and-s3-batch-operations/) Operations. 

Sie können SSE-S3 mithilfe der S3-Konsole, REST, und () angeben. APIs AWS SDKs AWS Command Line Interface AWS CLI Weitere Informationen finden Sie unter [Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets](bucket-encryption.md).

## Verwenden der S3-Konsole
<a name="add-object-encryption-s3"></a>

In diesem Thema wird beschrieben, wie der Verschlüsselungstyp eines Objekts mit der AWS-Managementkonsole festgelegt oder geändert wird. Wenn Sie ein Objekt unter Verwendung der Konsole kopieren, kopiert Amazon S3 das Objekt unverändert. Wenn das Quellobjekt verschlüsselt ist, wird das Zielobjekt demnach ebenfalls verschlüsselt. Sie können mit der Konsole die Verschlüsselung für ein Objekt hinzufügen oder ändern. 

**Anmerkung**  
Sie können die Verschlüsselung eines Objekts ändern, wenn Ihr Objekt kleiner als 5 GB groß ist. Wenn Ihr Objekt größer als 5 GB ist, müssen Sie [AWS CLI](mpu-upload-object.md#UsingCLImpUpload)oder verwenden, [AWS SDKs](CopyingObjectsMPUapi.md)um die Verschlüsselung eines Objekts zu ändern.
Eine Liste der zusätzlichen Berechtigungen, die zum Ändern der Verschlüsselung eines Objekts erforderlich sind, finden Sie unter [Erforderliche Berechtigungen für Amazon-S3-API-Operationen](using-with-s3-policy-actions.md). Beispielrichtlinien, die diese Berechtigungen erteilen, finden Sie unter [Beispiele für identitätsbasierte Richtlinien für Amazon S3](example-policies-s3.md).
Wenn Sie die Verschlüsselung eines Objekts ändern, wird ein neues Objekt erstellt, um das alte zu ersetzen. Wenn S3-Versioning aktiviert ist, wird eine neue Version des Objekts erstellt, und das vorhandene Objekt wird zu einer älteren Version. Die Rolle, die die Eigenschaft ändert, wird auch Besitzer des neuen Objekts (oder der neuen Objektversion). 

**So ändern Sie die Verschlüsselung für ein Objekt**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im Navigationsbereich **Buckets** und dann die Registerkarte **Allzweck-Buckets** aus. Navigieren Sie zum Amazon-S3-Bucket oder -Ordner, der die Objekte enthält, die Sie ändern möchten.

1. Aktivieren Sie das Kontrollkästchen für die Objekte, die Sie ändern möchten.

1. Wählen Sie im Menü **Aktionen** aus der angezeigten Optionsliste die Option **Serverseitige Verschlüsselung bearbeiten** aus.

1. Scrollen Sie zum Abschnitt **Serverseitige Verschlüsselung**.

1. Wählen Sie unter **Verschlüsselungseinstellungen** die Option **Verwenden von Bucket-Einstellungen für die Standardverschlüsselung** oder **Überschreiben der Bucket-Einstellungen für die Standardverschlüsselung** aus.

1. Wenn Sie **Überschreiben der Bucket-Einstellungen für die Standardverschlüsselung** ausgewählt haben, konfigurieren Sie die folgenden Verschlüsselungseinstellungen.

   1. Wählen Sie unter **Verschlüsselungstyp** die Option **Serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)**. SSE-S3 verwendet für die Verschlüsselung der einzelnen Objekte eine der stärksten Blockverschlüsselungen: 256-bit Advanced Encryption Standard (AES-256). Weitere Informationen finden Sie unter [Verwenden serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)](UsingServerSideEncryption.md).

1. Wählen Sie unter **Zusätzliche Kopiereinstellungen** aus, ob Sie **Quelleinstellungen kopieren**, **Keine Einstellungen angeben** oder **Einstellungen angeben** möchten. **Quelleinstellungen kopieren** ist die Standardoption. Wenn Sie das Objekt nur ohne die Quelleinstellungsattribute kopieren möchten, wählen Sie **Keine Einstellungen angeben** aus. Wählen **Sie Einstellungen angeben**, um Einstellungen für Speicherklasse, Objekt-Tags ACLs, Metadaten, serverseitige Verschlüsselung und zusätzliche Prüfsummen anzugeben.

1. Wählen Sie **Änderungen speichern ** aus.

**Anmerkung**  
Diese Aktion wendet auf alle angegebenen Objekte Verschlüsselung an. Warten Sie beim Verschlüsseln von Ordnern, bis die Speicheroperation abgeschlossen ist, bevor Sie dem Ordner neue Objekte hinzufügen.

## Verwenden der REST-API
<a name="SSEUsingRESTAPI"></a>

Wenn das Objekt erstellt wird – d. h. wenn Sie ein neues Objekt hochladen oder eine Kopie eines vorhandenen Objekts anlegen –, können Sie angeben, ob Amazon S3 Ihre Daten mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsseln soll, indem Sie der Anforderung den Header `x-amz-server-side-encryption` hinzufügen. Setzen Sie den Wert des Headers auf den Verschlüsselungsalgorithmus `AES256`, den Amazon S3 unterstützt. Amazon S3 bestätigt, dass Ihr Objekt unter Verwendung von SSE-S3 gespeichert wird, indem der Antwort-Header `x-amz-server-side-encryption` zurückgegeben wird. 

Die folgenden Upload-REST-API-Operationen akzeptieren den Anforderungs-Header `x-amz-server-side-encryption`.
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [PUT Object – Kopieren](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [Initiieren eines mehrteiligen Uploads](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)

Wenn Sie große Objekte mit der API für mehrteilige Uploads hochladen, können Sie die serverseitige Verschlüsslung festlegen, indem Sie der Anforderung zum Initiieren eines mehrteiligen Uploads den Header `x-amz-server-side-encryption` hinzufügen. Beim Kopieren eines vorhandenen Objekts wird das Zielobjekt unabhängig davon, ob das Quellobjekt verschlüsselt ist, nur dann verschlüsselt, wenn Sie die serverseitige Verschlüsselung explizit anfordern.

Die Antwort-Header der folgenden REST-API-Operationen geben den Header `x-amz-server-side-encryption` zurück, wenn ein Objekt unter Verwendung von SSE-S3 gespeichert wird. 
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [PUT Object – Kopieren](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [Initiieren eines mehrteiligen Uploads](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [Upload Part](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html)
+ [Hochladen eines Teiluploads – Kopieren](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html)
+ [Abschließen eines mehrteiligen Uploads](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadComplete.html)
+ [Get Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)
+ [Head Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)

**Anmerkung**  
Senden Sie keine Anforderungs-Header für die Verschlüsselung für `GET`- und `HEAD`-Anforderungen, wenn Ihr Objekt SSE-S3 verwendet oder der HTTP-Statuscodefehler 400 (Ungültige Anfrage) zurückgegeben wird.

## Unter Verwendung der AWS SDKs
<a name="s3-using-sdks"></a>

Bei der Verwendung können Sie Amazon S3 auffordern AWS SDKs, serverseitige Verschlüsselung mit verwalteten Amazon S3 S3-Verschlüsselungsschlüsseln (SSE-S3) zu verwenden. Dieser Abschnitt enthält Beispiele für die Verwendung von AWS SDKs in mehreren Sprachen. Informationen zu anderen SDKs finden Sie unter [Beispielcode und Bibliotheken](https://aws.amazon.com/code). 

------
#### [ Java ]

Wenn Sie das verwenden, AWS SDK für Java um ein Objekt hochzuladen, können Sie SSE-S3 verwenden, um es zu verschlüsseln. Um eine serverseitige Verschlüsselung anzufordern, legen Sie mit der `ObjectMetadata`-Eigenschaft der `PutObjectRequest` den Anforderungs-Header `x-amz-server-side-encryption` fest. Wenn Sie die Methode `putObject()` des `AmazonS3Client`-Clients aufrufen, verschlüsselt und speichert Amazon S3 die Daten.

Sie können auch die Verschlüsselung mit SSE-S3 anfordern, wenn Sie Objekte mit der API-Operation für mehrteilige Uploads hochladen: 
+ Wenn Sie die High-Level-API-Operation für mehrteilige Uploads verwenden, wenden Sie mit der Methode `TransferManager` serverseitige Verschlüsselung auf Objekte an, während Sie sie hochladen. Sie können eine beliebige der Upload-Methoden nutzen, die `ObjectMetadata` als Parameter entgegennehmen. Weitere Informationen finden Sie unter [Hochladen eines Objekts mit Multipart-Upload](mpu-upload-object.md).
+ Wenn Sie die Low-Level-API-Operation für mehrteilige Uploads verwenden, legen Sie die serverseitige Verschlüsselung beim Initiieren des mehrteiligen Uploads fest. Sie fügen die Eigenschaft `ObjectMetadata` beim Aufruf der Methode `InitiateMultipartUploadRequest.setObjectMetadata()` hinzu. Weitere Informationen finden Sie unter [Verwenden der AWS SDKs (Low-Level-API)](mpu-upload-object.md#mpu-upload-low-level).

Sie können den Verschlüsselungsstatus eines Objekts (Verschlüsseln eines unverschlüsselten Objekts oder Entschlüsseln eines verschlüsselten Objekts) nicht direkt ändern. Um den Verschlüsselungsstatus eines Objekts zu ändern, erstellen Sie eine Kopie des Objekts, geben dabei den gewünschten Verschlüsselungsstatus der Kopie an und löschen dann das Originalobjekt. Amazon S3 verschlüsselt das kopierte Objekt nur, wenn Sie explizit eine serverseitige Verschlüsselung anfordern. Um die Verschlüsselung des kopierten Objekts über die Java-API anzufordern, geben Sie unter Verwendung der `ObjectMetadata`-Eigenschaft eine serverseitige Verschlüsselung in der `CopyObjectRequest` an.

**Example Beispiel**  
Das folgende Beispiel veranschaulicht, wie Sie die serverseitige Verschlüsselung unter Verwendung des AWS SDK für Java festlegen. Es veranschaulicht, wie Sie die folgenden Aufgaben ausführen:  
+ Laden Sie ein neues Objekt mit SSE-S3 hoch.
+ Ändern des Verschlüsselungsstatus eines Objekts (in diesem Beispiel Verschlüsseln eines zuvor unverschlüsselten Objekts) durch Anfertigen einer Kopie des Objekts
+ Überprüfen des Verschlüsselungsstatus des Objekts
Weitere Informationen zur serverseitigen Verschlüsselung finden Sie unter [Verwenden der REST-API](#SSEUsingRESTAPI). Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter [Erste Schritte im AWS SDK für Java Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html).  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.internal.SSEResultBase;
import com.amazonaws.services.s3.model.*;

import java.io.ByteArrayInputStream;

public class SpecifyServerSideEncryption {

    public static void main(String[] args) {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String keyNameToEncrypt = "*** Key name for an object to upload and encrypt ***";
        String keyNameToCopyAndEncrypt = "*** Key name for an unencrypted object to be encrypted by copying ***";
        String copiedObjectKeyName = "*** Key name for the encrypted copy of the unencrypted object ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withRegion(clientRegion)
                    .withCredentials(new ProfileCredentialsProvider())
                    .build();

            // Upload an object and encrypt it with SSE.
            uploadObjectWithSSEEncryption(s3Client, bucketName, keyNameToEncrypt);

            // Upload a new unencrypted object, then change its encryption state
            // to encrypted by making a copy.
            changeSSEEncryptionStatusByCopying(s3Client,
                    bucketName,
                    keyNameToCopyAndEncrypt,
                    copiedObjectKeyName);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }

    private static void uploadObjectWithSSEEncryption(AmazonS3 s3Client, String bucketName, String keyName) {
        String objectContent = "Test object encrypted with SSE";
        byte[] objectBytes = objectContent.getBytes();

        // Specify server-side encryption.
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentLength(objectBytes.length);
        objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
        PutObjectRequest putRequest = new PutObjectRequest(bucketName,
                keyName,
                new ByteArrayInputStream(objectBytes),
                objectMetadata);

        // Upload the object and check its encryption status.
        PutObjectResult putResult = s3Client.putObject(putRequest);
        System.out.println("Object \"" + keyName + "\" uploaded with SSE.");
        printEncryptionStatus(putResult);
    }

    private static void changeSSEEncryptionStatusByCopying(AmazonS3 s3Client,
            String bucketName,
            String sourceKey,
            String destKey) {
        // Upload a new, unencrypted object.
        PutObjectResult putResult = s3Client.putObject(bucketName, sourceKey, "Object example to encrypt by copying");
        System.out.println("Unencrypted object \"" + sourceKey + "\" uploaded.");
        printEncryptionStatus(putResult);

        // Make a copy of the object and use server-side encryption when storing the
        // copy.
        CopyObjectRequest request = new CopyObjectRequest(bucketName,
                sourceKey,
                bucketName,
                destKey);
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
        request.setNewObjectMetadata(objectMetadata);

        // Perform the copy operation and display the copy's encryption status.
        CopyObjectResult response = s3Client.copyObject(request);
        System.out.println("Object \"" + destKey + "\" uploaded with SSE.");
        printEncryptionStatus(response);

        // Delete the original, unencrypted object, leaving only the encrypted copy in
        // Amazon S3.
        s3Client.deleteObject(bucketName, sourceKey);
        System.out.println("Unencrypted object \"" + sourceKey + "\" deleted.");
    }

    private static void printEncryptionStatus(SSEResultBase response) {
        String encryptionStatus = response.getSSEAlgorithm();
        if (encryptionStatus == null) {
            encryptionStatus = "Not encrypted with SSE";
        }
        System.out.println("Object encryption status is: " + encryptionStatus);
    }
}
```

------
#### [ .NET ]

Wenn Sie ein Objekt hochladen, können Sie Amazon S3 dazu anweisen, es zu verschlüsseln. Um den Verschlüsselungsstatus eines vorhandenen Objekts zu ändern, erstellen Sie eine Kopie des Objekts und löschen dann das Quellobjekt. Beachten Sie, dass die Kopieroperation das Ziel nur verschlüsselt, wenn Sie auf dem Zielobjekt ausdrücklich eine serverseitige Verschlüsselung anfordern. Fügen Sie Folgendes hinzu, um SSE-S3 in `CopyObjectRequest` anzugeben:

```
 ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
```

Ein funktionierendes Beispiel, das zeigt, wie ein Objekt kopiert wird, finden Sie unter [Mit dem AWS SDKs](copy-object.md#CopyingObjectsUsingSDKs). 

Das folgende Beispiel lädt ein Objekt hoch. In der Anfrage weist das Beispiel Amazon S3 dazu an, das Objekt zu verschlüsseln. Das Beispiel ruft dann Objekt-Metadaten ab und überprüft die verwendete Verschlüsselungsmethode. Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter [Getting Started with the AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) im *AWS SDK for .NET Developer Guide*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class SpecifyServerSideEncryptionTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string keyName = "*** key name for object created ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            WritingAnObjectAsync().Wait();
        }

        static async Task WritingAnObjectAsync()
        {
            try
            {
                var putRequest = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName,
                    ContentBody = "sample text",
                    ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
                };

                var putResponse = await client.PutObjectAsync(putRequest);

                // Determine the encryption state of an object.
                GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };
                GetObjectMetadataResponse response = await client.GetObjectMetadataAsync(metadataRequest);
                ServerSideEncryptionMethod objectEncryption = response.ServerSideEncryptionMethod;

                Console.WriteLine("Encryption method used: {0}", objectEncryption.ToString());
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
```

------
#### [ PHP ]

In diesem Thema wird gezeigt, wie Sie Klassen aus Version 3 von verwenden AWS SDK für PHP , um SSE-S3 zu Objekten hinzuzufügen, die Sie auf Amazon S3 hochladen. Weitere Informationen zum AWS SDK for Ruby API finden Sie unter [AWS SDK for Ruby — Version 2.](https://docs.aws.amazon.com/sdkforruby/api/index.html)

Um ein Objekt zu Amazon S3 hochzuladen, verwenden Sie die Methode [Aws\$1S3\$1S3Client::putObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject). Um Ihrer Upload-Anfrage den Anfrage-Header `x-amz-server-side-encryption` hinzuzufügen, geben Sie den Parameter `ServerSideEncryption` mit dem Wert `AES256` an, wie im folgenden Codebeispiel veranschaulicht. Weitere Informationen zur serverseitigen Verschlüsselungsanforderungen finden Sie unter [Verwenden der REST-API](#SSEUsingRESTAPI).

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';

// $filepath should be an absolute path to a file on disk.
$filepath = '*** Your File Path ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Upload a file with server-side encryption.
$result = $s3->putObject([
    'Bucket'               => $bucket,
    'Key'                  => $keyname,
    'SourceFile'           => $filepath,
    'ServerSideEncryption' => 'AES256',
]);
```

Amazon S3 gibt als Antwort den `x-amz-server-side-encryption`-Header mit dem Wert zurück, den der Verschlüsselungsalgorithmus für die Verschlüsselung Ihrer Objektdaten verwendet hat. 

Wenn Sie große Objekte mithilfe der API-Operation für mehrteilige Uploads hochladen, können Sie wie folgt SSE-S3 für diese Objekte angeben: 
+ Wenn Sie den mehrteiligen Upload-API-Vorgang auf niedriger Ebene verwenden, geben Sie beim Aufrufen der Methode [Aws\$1 S3\$1 S3Client::](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#createmultipartupload) () die serverseitige Verschlüsselung an. createMultipartUpload Um Ihrer Upload-Anfrage den Anfrage-Header `x-amz-server-side-encryption` hinzuzufügen, geben Sie für den Parameter `array` den `ServerSideEncryption`-Schlüssel mit dem Wert `AES256` an. Weitere Informationen zur Low-Level-API-Operation für mehrteilige Uploads finden Sie unter [Verwenden der AWS SDKs (Low-Level-API)](mpu-upload-object.md#mpu-upload-low-level).
+ Wenn Sie den API-Vorgang für mehrteiligen Upload auf hoher Ebene verwenden, geben Sie die serverseitige Verschlüsselung an, indem Sie den Parameter des API-Vorgangs verwenden. `ServerSideEncryption` [CreateMultipartUpload](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#createmultipartupload) Ein Beispiel für die Verwendung der Methode `setOption()` mit der High-Level-API-Operation für mehrteilige Uploads finden Sie unter [Hochladen eines Objekts mit Multipart-Upload](mpu-upload-object.md).

Um den Verschlüsselungsstatus eines vorhandenen Objekts zu bestimmen, rufen Sie die Objektmetadaten mit der Methode [Aws\$1S3\$1S3Client::headObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#headobject) ab, wie im folgenden PHP-Codebeispiel veranschaulicht.

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Check which server-side encryption algorithm is used.
$result = $s3->headObject([
    'Bucket' => $bucket,
    'Key'    => $keyname,
]);
echo $result['ServerSideEncryption'];
```

Um den Verschlüsselungsstatus eines vorhandenen Objekts zu ändern, erstellen Sie mittels der Methode [Aws\$1S3\$1S3Client::copyObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#copyobject) eine Kopie des Objekts und löschen dann das Quellobjekt. Standardmäßig verschlüsselt `copyObject()` das Ziel nicht, es sei denn, Sie fordern explizit die serverseitige Verschlüsselung des Zielobjekts an, indem Sie den Parameter `ServerSideEncryption` mit dem Wert `AES256` angeben. Im folgenden PHP-Codebeispiel wird eine Kopie eines Objekts erstellt und dem kopierten Objekt eine serverseitige Verschlüsselung hinzugefügt.

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$sourceBucket = '*** Your Source Bucket Name ***';
$sourceKeyname = '*** Your Source Object Key ***';

$targetBucket = '*** Your Target Bucket Name ***';
$targetKeyname = '*** Your Target Object Key ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Copy an object and add server-side encryption.
$s3->copyObject([
    'Bucket'               => $targetBucket,
    'Key'                  => $targetKeyname,
    'CopySource'           => "$sourceBucket/$sourceKeyname",
    'ServerSideEncryption' => 'AES256',
]);
```

Weitere Informationen finden Sie unter den folgenden Themen:
+ [AWS SDK für PHP für Amazon S3 Aws\$1 S3\$1 S3Client-Klasse](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.S3.S3Client.html) 
+ [AWS SDK für PHP -Dokumentation](https://aws.amazon.com/documentation/sdk-for-php/)

------
#### [ Ruby ]

Wenn Sie die AWS SDK für Ruby zum Hochladen eines Objekts verwenden, können Sie angeben, dass das Objekt im Ruhezustand mit SSE-S3 verschlüsselt gespeichert wird. Wenn Sie das Objekt zurücklesen, wird es automatisch entschlüsselt.

Das folgende Beispiel für AWS SDK für Ruby Version 3 zeigt, wie angegeben wird, dass eine auf Amazon S3 hochgeladene Datei im Ruhezustand verschlüsselt wird.

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectPutSseWrapper
  attr_reader :object

  # @param object [Aws::S3::Object] An existing Amazon S3 object.
  def initialize(object)
    @object = object
  end

  def put_object_encrypted(object_content, encryption)
    @object.put(body: object_content, server_side_encryption: encryption)
    true
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't put your content to #{object.key}. Here's why: #{e.message}"
    false
  end
end

# Example usage:
def run_demo
  bucket_name = "amzn-s3-demo-bucket"
  object_key = "my-encrypted-content"
  object_content = "This is my super-secret content."
  encryption = "AES256"

  wrapper = ObjectPutSseWrapper.new(Aws::S3::Object.new(bucket_name, object_content))
  return unless wrapper.put_object_encrypted(object_content, encryption)

  puts "Put your content into #{bucket_name}:#{object_key} and encrypted it with #{encryption}."
end

run_demo if $PROGRAM_NAME == __FILE__
```

Das folgende Beispiel zeigt, wie Sie den Verschlüsselungsstatus eines vorhandenen Objekts bestimmen.

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectGetEncryptionWrapper
  attr_reader :object

  # @param object [Aws::S3::Object] An existing Amazon S3 object.
  def initialize(object)
    @object = object
  end

  # Gets the object into memory.
  #
  # @return [Aws::S3::Types::GetObjectOutput, nil] The retrieved object data if successful; otherwise nil.
  def object
    @object.get
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't get object #{@object.key}. Here's why: #{e.message}"
  end
end

# Example usage:
def run_demo
  bucket_name = "amzn-s3-demo-bucket"
  object_key = "my-object.txt"

  wrapper = ObjectGetEncryptionWrapper.new(Aws::S3::Object.new(bucket_name, object_key))
  obj_data = wrapper.get_object
  return unless obj_data

  encryption = obj_data.server_side_encryption.nil? ? 'no' : obj_data.server_side_encryption
  puts "Object #{object_key} uses #{encryption} encryption."
end

run_demo if $PROGRAM_NAME == __FILE__
```

Wenn die serverseitige Verschlüsselung für das in Amazon S3 gespeicherte Objekt nicht verwendet wird, gibt die Methode `null` zurück.

Um den Verschlüsselungsstatus eines vorhandenen Objekts zu ändern, erstellen Sie eine Kopie des Objekts und löschen dann das Quellobjekt. Standardmäßig verschlüsseln die Methoden zum Kopieren das Ziel nicht, es sei denn, Sie fordern explizit die serverseitige Verschlüsselung an. Sie können die Verschlüsselung des Zielobjekts anfordern, indem Sie den Wert `server_side_encryption` im Hash-Argument der Option angeben, wie im folgenden Ruby-Codebeispiel gezeigt. Das Code-Beispiel zeigt, wie ein Objekt kopiert und die Kopie mit SSE-S3 verschlüsselt wird. 

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectCopyEncryptWrapper
  attr_reader :source_object

  # @param source_object [Aws::S3::Object] An existing Amazon S3 object. This is used as the source object for
  #                                        copy actions.
  def initialize(source_object)
    @source_object = source_object
  end

  # Copy the source object to the specified target bucket, rename it with the target key, and encrypt it.
  #
  # @param target_bucket [Aws::S3::Bucket] An existing Amazon S3 bucket where the object is copied.
  # @param target_object_key [String] The key to give the copy of the object.
  # @return [Aws::S3::Object, nil] The copied object when successful; otherwise, nil.
  def copy_object(target_bucket, target_object_key, encryption)
    @source_object.copy_to(bucket: target_bucket.name, key: target_object_key, server_side_encryption: encryption)
    target_bucket.object(target_object_key)
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't copy #{@source_object.key} to #{target_object_key}. Here's why: #{e.message}"
  end
end

# Example usage:
def run_demo
  source_bucket_name = "amzn-s3-demo-bucket1"
  source_key = "my-source-file.txt"
  target_bucket_name = "amzn-s3-demo-bucket2"
  target_key = "my-target-file.txt"
  target_encryption = "AES256"

  source_bucket = Aws::S3::Bucket.new(source_bucket_name)
  wrapper = ObjectCopyEncryptWrapper.new(source_bucket.object(source_key))
  target_bucket = Aws::S3::Bucket.new(target_bucket_name)
  target_object = wrapper.copy_object(target_bucket, target_key, target_encryption)
  return unless target_object

  puts "Copied #{source_key} from #{source_bucket_name} to #{target_object.bucket_name}:#{target_object.key} and "\
       "encrypted the target with #{target_object.server_side_encryption} encryption."
end

run_demo if $PROGRAM_NAME == __FILE__
```

------

## Mit dem AWS CLI
<a name="sse-s3-aws-cli"></a>

Verwenden Sie das folgende Beispiel, um SSE-S3 anzugeben AWS CLI, wenn Sie ein Objekt mithilfe von hochladen.

```
aws s3api put-object --bucket amzn-s3-demo-bucket1 --key object-key-name --server-side-encryption AES256  --body file path
```

Weitere Informationen finden Sie unter [put-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html) in der *AWS CLI -Referenz*. [Informationen zur Angabe von SSE-S3 beim Kopieren eines Objekts mithilfe von finden Sie unter copy-object. AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/copy-object.html)

## Verwenden CloudFormation
<a name="ss3-s3-cfn"></a>

Beispiele für das Einrichten der Verschlüsselung mit finden [Sie unter Erstellen eines Buckets mit Standardverschlüsselung](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#aws-properties-s3-bucket-serversideencryptionrule--examples--Create_a_bucket_with_default_encryption) und unter [Erstellen eines Buckets mithilfe AWS KMS serverseitiger Verschlüsselung mit einem S3-Bucket-Key](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#aws-properties-s3-bucket-serversideencryptionrule--examples--Create_a_bucket_using_AWS_KMS_server-side_encryption_with_an_S3_Bucket_Key) im `AWS::S3::Bucket ServerSideEncryptionRule` Thema im *AWS CloudFormation Benutzerhandbuch*. CloudFormation

# Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS)
<a name="UsingKMSEncryption"></a>

**Wichtig**  
Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für das Hochladen neuer Objekte ist in den CloudTrail Protokollen, im S3-Inventar, in der S3-Speicherlinse, in der Amazon S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader im AWS CLI und AWS SDKs verfügbar. Weitere Informationen finden Sie unter [Häufig gestellte Fragen zur Standardverschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Serverseitige Verschlüsselung ist die Verschlüsselung von Daten am Zielort durch die Anwendung oder den Service, der sie erhält.

Amazon S3 aktiviert für neue Objekt-Uploads automatisch die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3).

Sofern Sie nichts anderes angeben, verwenden Buckets standardmäßig SSE-S3 zum Verschlüsseln von Objekten. Sie können Buckets jedoch so konfigurieren, dass sie stattdessen serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) verwenden. Weitere Informationen finden Sie unter [Angabe der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS)](specifying-kms-encryption.md).

AWS KMS ist ein Dienst, der sichere, hochverfügbare Hardware und Software kombiniert, um ein für die Cloud skaliertes Schlüsselverwaltungssystem bereitzustellen. Amazon S3 verwendet serverseitige Verschlüsselung mit AWS KMS (SSE-KMS), um Ihre S3-Objektdaten zu verschlüsseln. Außerdem wird, wenn SSE-KMS für das Objekt angefordert wird, die S3-Prüfsumme (als Teil der Metadaten des Objekts) in verschlüsselter Form gespeichert. Weitere Informationen zur Prüfsumme finden Sie unter [Überprüfen der Objektintegrität in Amazon S3](checking-object-integrity.md).

Wenn Sie KMS-Schlüssel verwenden, können Sie sie AWS KMS über die [AWS-Managementkonsole](https://console.aws.amazon.com/kms)oder die [AWS KMS API verwenden, um Folgendes zu tun](https://docs.aws.amazon.com/kms/latest/APIReference/): 
+ Sie können KMS-Schlüssel zentral erstellen, anzeigen, bearbeiten, überwachen, aktivieren oder deaktivieren, rotieren sowie das Löschen von KMS-Schlüsseln planen.
+ Definieren Sie die Richtlinien, die steuern, wie und von wem KMS-Schlüssel verwendet werden können.
+ Prüfen Sie die korrekte Verwendung der KMS-Schlüssel. Das Auditing wird von der [AWS KMS -API](https://docs.aws.amazon.com/kms/latest/APIReference/) unterstützt, nicht jedoch von der [AWS KMS -Konsole;](https://console.aws.amazon.com/kms).



Die darin enthaltenen Sicherheitskontrollen AWS KMS können Ihnen helfen, die Compliance-Anforderungen im Zusammenhang mit der Verschlüsselung zu erfüllen. Sie können mit diesen KMS-Schlüsseln Ihre Daten in Amazon-S3-Buckets schützen. Wenn Sie die SSE-KMS-Verschlüsselung mit einem S3-Bucket verwenden, AWS KMS keys muss sich dieser in derselben Region wie der Bucket befinden.

Für die Nutzung fallen zusätzliche Gebühren an. AWS KMS keys Weitere Informationen finden Sie unter [AWS KMS key -Konzepte](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) im *AWS Key Management Service -Entwicklerhandbuch* und in den [AWS KMS -Preisen](https://aws.amazon.com/kms/pricing).

Anweisungen, wie IAM-Benutzern der Zugriff auf KMS-verschlüsselte Buckets ermöglicht wird, finden Sie unter [Mein Amazon S3 S3-Bucket verfügt über eine Standardverschlüsselung mit einem benutzerdefinierten Schlüssel. AWS KMS Wie kann ich Benutzern erlauben, Daten aus dem Bucket herunterzuladen und in ihn hochzuladen?](https://repost.aws/knowledge-center/s3-bucket-access-default-encryption) im AWS re:Post Knowledge Center.

**Berechtigungen**  
Um erfolgreich eine `PutObject` Anfrage zur Verschlüsselung eines Objekts mit einem AWS KMS Schlüssel für Amazon S3 zu stellen, benötigen Sie `kms:GenerateDataKey` Berechtigungen für den Schlüssel. Um ein mit einem verschlüsseltes Objekt herunterzuladen AWS KMS key, benötigen Sie `kms:Decrypt` Berechtigungen für den Schlüssel. Um [einen mehrteiligen Upload durchzuführen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions), um ein Objekt mit einem zu verschlüsseln AWS KMS key, benötigen Sie die `kms:Decrypt` Berechtigungen `kms:GenerateDataKey` und für den Schlüssel.

**Wichtig**  
Überprüfen Sie sorgfältig die Berechtigungen, die in Ihren KMS-Schlüsselrichtlinien gewährt werden. Beschränken Sie die vom Kunden verwalteten Berechtigungen für KMS-Schlüsselrichtlinien immer nur auf die IAM-Prinzipale und AWS -Dienste, die auf die entsprechende Schlüsselaktion zugreifen müssen. AWS KMS Weitere Informationen finden Sie unter [Wichtige](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) Richtlinien unter. AWS KMS

**Topics**
+ [

## AWS KMS keys
](#aws-managed-customer-managed-keys)
+ [

## Amazon-S3-Bucket-Schlüssel
](#sse-kms-bucket-keys)
+ [

## Erzwingen serverseitiger Verschlüsselung
](#require-sse-kms)
+ [

## Verschlüsselungskontext
](#encryption-context)
+ [

## Senden von Anfragen für AWS KMS verschlüsselte Objekte
](#aws-signature-version-4-sse-kms)
+ [

# Angabe der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS)
](specifying-kms-encryption.md)
+ [

# Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln
](bucket-key.md)

## AWS KMS keys
<a name="aws-managed-customer-managed-keys"></a>

Wenn Sie serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) verwenden, können Sie den [AWS verwalteten Standardschlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) verwenden oder einen vom [Kunden verwalteten Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) angeben, den Sie bereits erstellt haben. AWS KMS *unterstützt die Envelope-Verschlüsselung.* S3 verwendet die AWS KMS Funktionen für die *Umschlagverschlüsselung*, um Ihre Daten weiter zu schützen. Bei der Umschlagverschlüsselung werden Ihre Klartextdaten mit einem Datenschlüssel verschlüsselt, und dieser Datenschlüssel wird dann mit einem KMS-Schlüssel verschlüsselt. Weitere Informationen zur Envelope-Verschlüsselung finden Sie unter [Envelope-Verschlüsselung](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#enveloping) im *AWS Key Management Service -Entwicklerhandbuch*.

Wenn Sie keinen vom Kunden verwalteten Schlüssel angeben, erstellt Amazon S3 automatisch einen Von AWS verwalteter Schlüssel , wenn Sie AWS-Konto zum ersten Mal ein mit SSE-KMS verschlüsseltes Objekt zu einem Bucket hinzufügen. Standardmäßig verwendet Amazon S3 diesen KMS-Schlüssel für SSE-KMS. 

**Anmerkung**  
Objekte, die mit SSE-KMS mit [Von AWS verwaltete Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) verschlüsselt wurden, können nicht kontoübergreifend gemeinsam genutzt werden. [Wenn Sie SSE-KMS-Daten kontoübergreifend teilen müssen, müssen Sie einen vom Kunden verwalteten Schlüssel von verwenden.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS

Wenn Sie einen vom Kunden verwalteten Schlüssel für SSE-KMS verwenden möchten, können Sie einen symmetrischen kundenverwalteten Verschlüsselungsschlüssel erstellen, bevor Sie SSE-KMS konfigurieren. Wenn Sie dann SSE-KMS für Ihren Bucket konfigurieren, können Sie den vorhandenen vom Kunden verwalteten Schlüssel angeben. Weitere Informationen um symmetrischen Verschlüsselungsschlüssel finden Sie unter [Symmetrische KMS-Verschlüsselungsschlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) im *Entwicklerhandbuch für AWS Key Management Service *.

Durch die Erstellung eines vom Kunden verwalteten Schlüssels erhalten Sie mehr Flexibilität und Kontrolle. Beispielsweise können Sie kundenverwaltete Schlüssel erstellen, drehen und deaktivieren. Sie können auch Zugriffskontrollen definieren und die vom Kunden verwalteten Schlüssel prüfen, mit denen Sie Ihre Daten schützen. *Weitere Informationen zu vom Kunden verwalteten und AWS verwalteten Schlüsseln finden Sie unter [Kundenschlüssel und AWS Schlüssel im AWS Key Management Service Entwicklerhandbuch](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt).*

**Anmerkung**  
Wenn Sie serverseitige Verschlüsselung mit einem kundenverwalteten Schlüssel verwenden, der in einem externen Schlüsselspeicher abgelegt ist, sind Sie im Gegensatz zu Standard-KMS-Schlüsseln dafür verantwortlich, die Verfügbarkeit und Beständigkeit Ihres Schlüsselmaterials sicherzustellen. Weitere Informationen zu externen Schlüsselspeichern und dazu, wie sie das Modell der geteilten Verantwortung verändern, finden Sie unter [Externe Schlüsselspeicher](https://docs.aws.amazon.com//kms/latest/developerguide/keystore-external.html) im *Entwicklerhandbuch für AWS Key Management Service *.

### Verwenden der SSE-KMS-Verschlüsselung für kontoübergreifende Vorgänge
<a name="sse-kms-cross-account-operations"></a>

Beachten Sie Folgendes, wenn Sie kontoübergreifende Operationen verschlüsseln:
+ Wenn bei der Anfrage oder über die Standardverschlüsselungskonfiguration des Buckets kein AWS KMS key Amazon-Ressourcenname (ARN) oder Alias angegeben wird, wird das Von AWS verwalteter Schlüssel (`aws/s3`) aus dem hochladenden Konto für die Verschlüsselung verwendet und für die Entschlüsselung benötigt.
+ Von AWS verwalteter Schlüssel (`aws/s3`) kann als KMS-Schlüssel für kontoübergreifende Operationen verwendet werden, wenn die Upload- und Zugriffsprinzipale AWS Identity and Access Management (IAM) vom selben System stammen. AWS-Konto
+ Verwenden Sie einen vom Kunden verwalteten Schlüssel, wenn Sie kontoübergreifenden Zugriff auf Ihre S3-Objekte gewähren möchten. Sie können die Richtlinie eines vom Kunden verwalteten Schlüssel so konfigurieren, dass der Zugriff von einem anderen Konto aus möglich ist.
+ Wenn Sie einen vom Kunden verwalteten KMS-Schlüssel angeben, empfehlen wir die Verwendung eines vollständig qualifizierten KMS-Schlüssel-ARN. Wenn Sie stattdessen einen KMS-Schlüsselalias verwenden, AWS KMS wird der Schlüssel im Konto des Anforderers aufgelöst. Dieses Verhalten kann dazu führen, dass Daten mit einem KMS-Schlüssel verschlüsselt werden, der dem Anforderer und nicht dem Bucket-Eigentümer gehört.
+ Sie müssen einen Schlüssel angeben, für den Ihnen (dem Anforderer) die Berechtigung `Encrypt` erteilt wurde. Weitere Informationen finden Sie unter [Schlüssel-Benutzern die Verwendung eines KMS-Schlüssels für kryptografische Operationen gestatten](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto) im *Entwicklerhandbuch zu AWS Key Management Service *.

Weitere Informationen darüber, wann vom Kunden verwaltete Schlüssel und AWS verwaltete KMS-Schlüssel verwendet werden [sollten, finden Sie unter Sollte ich einen Von AWS verwalteter Schlüssel oder einen vom Kunden verwalteten Schlüssel verwenden, um meine Objekte in Amazon S3 zu verschlüsseln?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-encryption-keys/)

### SSE-KMS-Verschlüsselungs-Workflow
<a name="sse-kms-encryption-workflow"></a>

Wenn Sie sich dafür entscheiden, Ihre Daten mit einem Von AWS verwalteter Schlüssel oder einem vom Kunden verwalteten Schlüssel zu verschlüsseln, AWS KMS und Amazon S3 die folgenden Envelope-Verschlüsselungsaktionen durchführen:

1. Amazon S3 fordert einen [Klartext-Datenschlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#data-keys) und eine mit dem angegebenen KMS-Schlüssel verschlüsselte Kopie des Schlüssels an.

1. AWS KMS generiert einen Datenschlüssel, verschlüsselt ihn unter dem KMS-Schlüssel und sendet sowohl den Klartext-Datenschlüssel als auch den verschlüsselten Datenschlüssel an Amazon S3.

1. Amazon S3 verschlüsselt die Daten mit dem Datenschlüssel und entfernt anschließend den Klartextschlüssel schnellstmöglich aus dem Arbeitsspeicher.

1. Amazon S3 speichert den verschlüsselten Datenschlüssel im Metadatenformat zusammen mit den verschlüsselten Daten.

Wenn Sie die Entschlüsselung Ihrer Daten beantragen, nutzen Sie Amazon S3 und AWS KMS führen Sie die folgenden Aktionen aus:

1. Amazon S3 sendet den verschlüsselten Datenschlüssel AWS KMS in einer `Decrypt` Anfrage an.

1. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mithilfe desselben KMS-Schlüssels und gibt den Klartext-Datenschlüssel an Amazon S3 zurück.

1. Amazon S3 entschlüsselte die verschlüsselten Daten mit dem Klartext-Datenschlüssel und entfernt den Klartext-Datenschlüssel anschließend schnellstmöglich aus dem Arbeitsspeicher.

**Wichtig**  
Wenn Sie einen AWS KMS key für die serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen KMS-Schlüssel für die symmetrische Verschlüsselung wählen. Amazon S3 unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Weitere Informationen zu diesen Schlüsseln finden Sie unter [Symmetrische KMS-Verschlüsselungsschlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) im *Entwicklerhandbuch für AWS Key Management Service *.

### Prüfung der SSE-KMS-Verschlüsselung
<a name="sse-kms-encryption-audit"></a>

Wenn Sie Anfragen identifizieren möchten, die SSE-KMS angeben, können Sie die Metriken **Alle SSE-KMS-Anfragen** und **% aller SSE-KMS-Anfragen** der Metriken von Amazon S3 Storage Lens verwenden. S3 Storage Lens ist eine Cloud-Speicheranalysefunktion, mit der Sie unternehmensweite Einblicke in die Nutzung und Aktivität von Objektspeichern erhalten können. Sie können auch die Anzahl der Buckets mit aktiviertem SSE-KMS und den Prozentsatz der Buckets mit aktiviertem SSE-KMS verwenden, um die Anzahl der Buckets zu ermitteln, die SSE-KMS für die [standardmäßige Bucket-Verschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html) verwenden. Weitere Informationen finden Sie unter [ Bewertung Ihrer Speicheraktivität und -nutzung mit S3 Storage Lens](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html?icmpid=docs_s3_user_guide_UsingKMSEncryption.html). Eine vollständige Liste der Metriken finden Sie im [Glossar der S3-Storage-Lens-Metriken](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html?icmpid=docs_s3_user_guide_UsingKMSEncryption.html).

Um die Verwendung Ihrer AWS KMS Schlüssel für Ihre SSE-KMS-verschlüsselten Daten zu überprüfen, können Sie Protokolle verwenden. AWS CloudTrail Sie können Einblick in Ihre [kryptografischen Operationen](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) wie und erhalten. [https://docs.aws.amazon.com/kms/latest/developerguide/ct-generatedatakey.html](https://docs.aws.amazon.com/kms/latest/developerguide/ct-generatedatakey.html) CloudTrail unterstützt zahlreiche [Attributwerte](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html) zum Filtern Ihrer Suche, einschließlich Ereignisname, Benutzername und Ereignisquelle. 

## Amazon-S3-Bucket-Schlüssel
<a name="sse-kms-bucket-keys"></a>

Wenn Sie die serverseitige Verschlüsselung mithilfe von AWS KMS (SSE-KMS) konfigurieren, können Sie Ihre Buckets so konfigurieren, dass sie S3 Bucket Keys für SSE-KMS verwenden. Die Verwendung eines Schlüssels auf Bucket-Ebene für SSE-KMS kann Ihre AWS KMS Anforderungskosten um bis zu 99 Prozent senken, da der Anforderungsverkehr von Amazon S3 zu reduziert wird. AWS KMS

Wenn Sie einen Bucket für die Verwendung von S3-Bucket-Schlüsseln für SSE-KMS bei neuen Objekten konfigurieren, generiert AWS KMS einen Schlüssel auf Bucket-Ebene, mit dem eindeutige [Datenschlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) für Objekte im Bucket erstellt werden. Dieser S3-Bucket-Key wird für einen begrenzten Zeitraum innerhalb von Amazon S3 verwendet, sodass Amazon S3 keine Anfragen mehr stellen muss, AWS KMS um Verschlüsselungsvorgänge abzuschließen. Weitere Informationen zur Verwendung von S3-Bucket-Schlüsseln finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md).

## Erzwingen serverseitiger Verschlüsselung
<a name="require-sse-kms"></a>

Wenn Sie die serverseitige Verschlüsselung aller Objekte in einem bestimmten Amazon-S3-Bucket anfordern möchten, können Sie eine Bucket-Richtlinie verwenden. Beispielsweise verweigert die folgende Bucket-Richtlinie jedem die Berechtigung zum Hochladen von Objekten (`s3:PutObject`), wenn die Anforderung nicht den Header `x-amz-server-side-encryption-aws-kms-key-id` enthält, der die serverseitige Verschlüsselung mit SSE-KMS anfordert.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id":"PutObjectPolicy",
   "Statement":[{
         "Sid":"DenyObjectsThatAreNotSSEKMS",
         "Effect":"Deny",
         "Principal":"*",
         "Action":"s3:PutObject",
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*",
         "Condition":{
            "Null":{
               "s3:x-amz-server-side-encryption-aws-kms-key-id":"true"
            }
         }
      }
   ]
}
```

------

Um zu verlangen, dass ein bestimmter AWS KMS key Schlüssel zum Verschlüsseln der Objekte in einem Bucket verwendet wird, können Sie den `s3:x-amz-server-side-encryption-aws-kms-key-id` Bedingungsschlüssel verwenden. Um den KMS-Schlüssel anzugeben, müssen Sie einen Schlüssel mit dem folgenden `arn:aws:kms:region:acct-id:key/key-id` Format verwenden: Amazon Resource Name (ARN). AWS Identity and Access Management überprüft nicht, ob die Zeichenfolge für `s3:x-amz-server-side-encryption-aws-kms-key-id` existiert. 

**Anmerkung**  
Wenn Sie ein Objekt hochladen, können Sie den KMS-Schlüssel über den `x-amz-server-side-encryption-aws-kms-key-id`-Header angeben oder sich auf Ihre [Standard-Bucket-Verschlüsselungskonfiguration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html) verlassen. Wenn Ihre PutObject Anfrage `aws:kms` im `x-amz-server-side-encryption` Header angegeben ist, den `x-amz-server-side-encryption-aws-kms-key-id` Header jedoch nicht spezifiziert, geht Amazon S3 davon aus, dass Sie den verwenden möchten Von AWS verwalteter Schlüssel. Unabhängig davon muss die AWS KMS Schlüssel-ID, die Amazon S3 für die Objektverschlüsselung verwendet, mit der AWS KMS Schlüssel-ID in der Richtlinie übereinstimmen, andernfalls lehnt Amazon S3 die Anfrage ab.

Eine vollständige Liste der Amazon-S3-spezifischen Bedingungsschlüssel finden Sie unter [Bedingungsschlüssel für Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) in der *Service-Authorization-Referenz*.

## Verschlüsselungskontext
<a name="encryption-context"></a>

Ein *Verschlüsselungskontext* ist ein Satz von Schlüssel-Wert-Paaren, die zusätzliche kontextbezogene Informationen zu den Daten enthalten können. Der Verschlüsselungskontext ist nicht verschlüsselt. Wenn für eine Verschlüsselungsoperation ein Verschlüsselungskontext angegeben wird, muss Amazon S3 denselben Verschlüsselungskontext auch für die Entschlüsselungsoperation angeben. Andernfalls schlägt die Entschlüsselung fehl. AWS KMS [verwendet den Verschlüsselungskontext als [zusätzliche authentifizierte Daten](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/concepts.html#digital-sigs) (AAD), um die authentifizierte Verschlüsselung zu unterstützen.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations#digital-sigs) Weitere Informationen zum Verschlüsselungs-Kontext finden Sie unter [Encryption Context (Verschlüsselungs-Kontext)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) im *AWS Key Management Service -Entwicklerhandbuch*. 

Amazon S3 verwendet automatisch den Amazon-Ressourcennamen (ARN) des Objekts oder Buckets als Verschlüsselungskontextpaar: 
+ **Wenn Sie SSE-KMS verwenden, ohne einen S3-Bucket-Schlüssel zu aktivieren**, verwenden Sie den Objekt-ARN als Verschlüsselungskontext.

  ```
  arn:aws:s3:::object_ARN
  ```
+ **Wenn Sie SSE-KMS verwenden und einen S3-Bucket-Schlüssel aktivieren**, wird der Bucket-ARN als Verschlüsselungskontext verwendet. Weitere Informationen zu S3-Bucket-Schlüsseln finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md).

  ```
  arn:aws:s3:::bucket_ARN
  ```

Sie können optional ein zusätzliches Verschlüsselungskontextpaar bereitstellen, indem Sie den `x-amz-server-side-encryption-context` Header in einer [s3](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject_RequestSyntax): -Anforderung verwenden. PutObject Da der Verschlüsselungskontext jedoch nicht verschlüsselt ist, sollte er keine sensiblen Informationen enthalten. Amazon S3 speichert dieses zusätzliche Schlüsselpaar zusammen mit dem Standardverschlüsselungskontext. Wenn Ihre `PUT`-Anforderung verarbeitet wird, hängt Amazon S3 den Standardverschlüsselungskontext `aws:s3:arn` an den von Ihnen bereitgestellten an. 

Sie können den Verschlüsselungskontext verwenden, um Ihre kryptografischen Vorgänge zu identifizieren und zu kategorisieren. Sie können auch den ARN-Wert für den standardmäßigen Verschlüsselungskontext verwenden, um relevante Anfragen nachzuverfolgen, AWS CloudTrail indem Sie sich ansehen, welcher Amazon S3 S3-ARN mit welchem Verschlüsselungsschlüssel verwendet wurde.

Im `requestParameters` Feld einer CloudTrail Protokolldatei sieht der Verschlüsselungskontext dem folgenden ähnlich. 

```
"encryptionContext": {
    "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1/file_name"
}
```

Wenn Sie SSE-KMS mit der optionalen S3-Bucket-Keys-Funktion verwenden, ist der Verschlüsselungskontextwert der ARN des Buckets.

```
"encryptionContext": {
    "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1"
}
```

## Senden von Anfragen für AWS KMS verschlüsselte Objekte
<a name="aws-signature-version-4-sse-kms"></a>

**Wichtig**  
Alle `GET` `PUT` Anfragen für AWS KMS verschlüsselte Objekte müssen mit Secure Sockets Layer (SSL) oder Transport Layer Security (TLS) gestellt werden. Anfragen müssen außerdem mit gültigen Anmeldeinformationen signiert werden, z. B. mit AWS Signature Version 4 (oder AWS Signature Version 2).

AWS Bei Signature Version 4 werden Authentifizierungsinformationen zu AWS Anfragen hinzugefügt, die über HTTP gesendet werden. Aus Sicherheitsgründen AWS müssen die meisten Anfragen mit einem Zugriffsschlüssel signiert werden, der aus einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel besteht. Diese beiden Schlüssel werden in der Regel als Sicherheitsanmeldeinformationen bezeichnet. Weitere Informationen finden Sie unter [Authenticating Requests (Authentifizierung von Anforderungen) (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) und [Signature Version 4 signing process (Signaturprozess).](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)

**Wichtig**  
Wenn Ihr Objekt SSE-KMS verwendet, dürfen Sie keine Verschlüsselungsanforderungs-Header für `GET`- und `HEAD`-Anforderungen senden. Andernfalls erhalten Sie den Fehler HTTP 400 Bad Request.

**Topics**
+ [

## AWS KMS keys
](#aws-managed-customer-managed-keys)
+ [

## Amazon-S3-Bucket-Schlüssel
](#sse-kms-bucket-keys)
+ [

## Erzwingen serverseitiger Verschlüsselung
](#require-sse-kms)
+ [

## Verschlüsselungskontext
](#encryption-context)
+ [

## Senden von Anfragen für AWS KMS verschlüsselte Objekte
](#aws-signature-version-4-sse-kms)
+ [

# Angabe der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS)
](specifying-kms-encryption.md)
+ [

# Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln
](bucket-key.md)

# Angabe der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS)
<a name="specifying-kms-encryption"></a>

Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert und alle neuen Objekte, die in einen S3-Bucket hochgeladen werden, werden im Ruhezustand automatisch verschlüsselt. Die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) ist die Standardverschlüsselungskonfiguration für jeden Bucket in Amazon S3. Um einen anderen Verschlüsselungstyp zu verwenden, können Sie entweder die Art der serverseitigen Verschlüsselung angeben, die in Ihren S3-`PUT`-Anfragen verwendet werden soll, oder Sie können die Standardverschlüsselungskonfiguration im Ziel-Bucket festlegen. 

Wenn Sie in Ihren `PUT` Anfragen einen anderen Verschlüsselungstyp angeben möchten, können Sie serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS), zweischichtige serverseitige Verschlüsselung mit Schlüsseln (DSSE-KMS) oder serverseitige Verschlüsselung mit vom Kunden bereitgestellten AWS KMS Schlüsseln (SSE-C) verwenden. Wenn Sie im Ziel-Bucket eine andere Standardverschlüsselungskonfiguration festlegen möchten, können Sie SSE-KMS oder DSSE-KMS verwenden.

Weitere Informationen zum Ändern der Standardverschlüsselungskonfiguration für Allzweck-Buckets finden Sie unter[Konfigurieren der Standardverschlüsselung](default-bucket-encryption.md). 

Wenn Sie die Standardverschlüsselungskonfiguration Ihres Buckets auf SSE-KMS ändern, wird der Verschlüsselungstyp der vorhandenen Amazon S3-Objekte im Bucket nicht geändert. Um den Verschlüsselungstyp Ihrer bereits vorhandenen Objekte zu ändern, nachdem Sie die Standardverschlüsselungskonfiguration auf SSE-KMS aktualisiert haben, können Sie Amazon S3 Batch Operations verwenden. Sie stellen S3-Batchvorgänge eine Liste von Objekten bereit, für die Vorgänge ausgeführt werden sollen, und Batch-Vorgänge ruft die jeweilige API auf, um die angegebene Operation auszuführen. Sie können die [Kopieren von Objekten](batch-ops-copy-object.md) Aktion verwenden, um vorhandene Objekte zu kopieren, wodurch sie in denselben Bucket zurückgeschrieben werden, wie SSE-KMS-verschlüsselte Objekte. Ein einzelner Batch-Operations-Auftrag kann die angegebene Operation für Milliarden von Objekten ausführen. Weitere Informationen finden Sie unter [Ausführen von Objektoperationen in großem Umfang mit Batch Operations](batch-ops.md) und im *AWS Speicher-Blogbeitrag* [So verschlüsseln Sie bestehende Objekte in Amazon S3 rückwirkend mithilfe von S3 Inventory, Amazon Athena und S3 Batch](https://aws.amazon.com/blogs/security/how-to-retroactively-encrypt-existing-objects-in-amazon-s3-using-s3-inventory-amazon-athena-and-s3-batch-operations/) Operations. 

Sie können SSE-KMS mithilfe der Amazon S3 S3-Konsole, REST-API-Operationen und AWS Command Line Interface ()AWS CLI angeben. AWS SDKs Weitere Informationen finden Sie unter den folgenden Themen. 

**Anmerkung**  
Sie können Multiregion AWS KMS keys in Amazon S3 verwenden. Amazon S3 behandelt jedoch derzeit Multi-Regions-Schlüssel wie Einzel-Regions-Schlüssel und verwendet nicht die Multi-Regions-Funktionen des Schlüssels. Weitere Informationen finden Sie unter [Verwenden von multiregionalen Schlüsseln)](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) im *AWS Key Management Service -Entwicklerhandbuch*.

**Anmerkung**  
Wenn Sie einen KMS-Schlüssel verwenden möchten, der sich im Besitz eines anderen Kontos befindet, müssen Sie über die Berechtigung zum Verwenden des Schlüssels verfügen. Weitere Informationen zu kontoübergreifenden Berechtigungen für KMS-Schlüssel finden Sie unter [Erstellen von KMS-Schlüsseln, die von anderen Konten verwendet werden können](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console) im *Entwicklerhandbuch zu AWS Key Management Service *. 

## Verwenden der S3-Konsole
<a name="add-object-encryption-kms"></a>

In diesem Thema wird beschrieben, wie Sie mithilfe der Amazon S3 S3-Konsole den Verschlüsselungstyp eines Objekts so einrichten oder ändern, dass serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) verwendet wird.

**Anmerkung**  
Sie können die Verschlüsselung eines Objekts ändern, wenn Ihr Objekt kleiner als 5 GB groß ist. Wenn Ihr Objekt größer als 5 GB ist, müssen Sie [AWS CLI](mpu-upload-object.md#UsingCLImpUpload)oder verwenden, um die Verschlüsselung eines Objekts [AWS SDKs](CopyingObjectsMPUapi.md)zu ändern.
Eine Liste der zusätzlichen Berechtigungen, die zum Ändern der Verschlüsselung eines Objekts erforderlich sind, finden Sie unter [Erforderliche Berechtigungen für Amazon-S3-API-Operationen](using-with-s3-policy-actions.md). Beispielrichtlinien, die diese Berechtigungen erteilen, finden Sie unter [Beispiele für identitätsbasierte Richtlinien für Amazon S3](example-policies-s3.md).
Wenn Sie die Verschlüsselung eines Objekts ändern, wird ein neues Objekt erstellt, um das alte zu ersetzen. Wenn S3-Versioning aktiviert ist, wird eine neue Version des Objekts erstellt, und das vorhandene Objekt wird zu einer älteren Version. Die Rolle, die die Eigenschaft ändert, wird auch Besitzer des neuen Objekts (oder der neuen Objektversion). 

**So fügen Sie die Verschlüsselung für ein Objekt hinzu oder ändern Sie sie**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im Navigationsbereich **Buckets** und dann die Registerkarte **Allzweck-Buckets** aus. Navigieren Sie zum Amazon-S3-Bucket oder -Ordner, der die Objekte enthält, die Sie ändern möchten.

1. Aktivieren Sie das Kontrollkästchen für die Objekte, die Sie ändern möchten.

1. Wählen Sie im Menü **Aktionen** aus der angezeigten Optionsliste die Option **Serverseitige Verschlüsselung bearbeiten** aus.

1. Scrollen Sie zum Abschnitt **Serverseitige Verschlüsselung**.

1. Wählen Sie unter **Verschlüsselungseinstellungen** die Option **Verwenden von Bucket-Einstellungen für die Standardverschlüsselung** oder **Überschreiben der Bucket-Einstellungen für die Standardverschlüsselung** aus.
**Wichtig**  
Wenn Sie die Option SSE-KMS für die Standardverschlüsselung verwenden, unterliegen Sie den Kontingenten der Anforderungen pro Sekunde (RPS) von AWS KMS. Weitere Informationen zu AWS KMS -Kontingenten und zum Anfordern einer Kontingenterhöhung finden Sie unter [Kontingente](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) im *Entwicklerhandbuch zu AWS Key Management Service *. 

1. Wenn Sie **Überschreiben der Bucket-Einstellungen für die Standardverschlüsselung** ausgewählt haben, konfigurieren Sie die folgenden Verschlüsselungseinstellungen.

   1. Wählen Sie unter **Verschlüsselungstyp** die Option **Serverseitige Verschlüsselung mit AWS Key Management Service Schlüsseln (SSE-KMS**) aus.

   1. Führen Sie unter **AWS KMS -Schlüssel** eine der folgenden Aktionen aus, um Ihren KMS-Schlüssel auszuwählen:
      + Wenn Sie aus einer Liste verfügbarer KMS-Schlüssel auswählen möchten, wählen Sie **Aus Ihren AWS KMS keys wählen** und dann den **KMS-Schlüssel** in der Liste der verfügbaren Schlüssel aus.

        Sowohl der Von AWS verwalteter Schlüssel (`aws/s3`) als auch Ihr vom Kunden verwalteter Schlüssel werden in dieser Liste angezeigt. Weitere Informationen über vom Kunden verwaltete Schlüssel finden Sie unter [Kundenschlüssel und AWS -Schlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) im *Entwicklerhandbuch zu AWS Key Management Service *.
      + Um den KMS-Schlüssel-ARN einzugeben, wählen **Sie AWS KMS key ARN eingeben** und geben Sie dann Ihren KMS-Schlüssel-ARN in das angezeigte Feld ein. 
      + Um einen neuen vom Kunden verwalteten Schlüssel in der AWS KMS Konsole zu **erstellen, wählen Sie Create a KMS Key** aus.

        Weitere Informationen zum Erstellen eines finden Sie AWS KMS key unter [Creating Keys](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) im *AWS Key Management Service Developer Guide*.
**Wichtig**  
Sie können nur KMS-Schlüssel verwenden, die im selben AWS-Region Bucket verfügbar sind. Die Amazon-S3-Konsole führt nur die ersten 100 KMS-Schlüssel auf, die in derselben Region wie der Bucket verfügbar sind. Wenn Sie einen KMS-Schlüssel verwenden möchten, der nicht aufgeführt ist, müssen Sie den KMS-Schlüssel-ARN eingeben. Wenn Sie einen KMS-Schlüssel verwenden möchten, der sich im Besitz eines anderen Kontos befindet, müssen Sie über die Berechtigung zum Verwenden des Schlüssels verfügen und Sie müssen den KMS-Schlüssel-ARN eingeben.  
Amazon S3 unterstützt nur symmetrisch verschlüsselte KMS-Schlüssel und keine asymmetrischen KMS-Schlüssel. Weitere Informationen finden Sie unter [Erkennen von symmetrischen und asymmetrischen KMS-Schlüsseln](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) im *Entwicklerhandbuch zu AWS Key Management Service *.

1. Wählen Sie unter **Zusätzliche Kopiereinstellungen** aus, ob Sie **Quelleinstellungen kopieren**, **Keine Einstellungen angeben** oder **Einstellungen angeben** möchten. **Quelleinstellungen kopieren** ist die Standardoption. Wenn Sie das Objekt nur ohne die Quelleinstellungsattribute kopieren möchten, wählen Sie **Keine Einstellungen angeben** aus. Wählen **Sie Einstellungen angeben**, um Einstellungen für Speicherklasse, Objekt-Tags ACLs, Metadaten, serverseitige Verschlüsselung und zusätzliche Prüfsummen anzugeben.

1. Wählen Sie **Änderungen speichern ** aus.

**Anmerkung**  
Diese Aktion wendet auf alle angegebenen Objekte Verschlüsselung an. Warten Sie beim Verschlüsseln von Ordnern, bis die Speicheroperation abgeschlossen ist, bevor Sie dem Ordner neue Objekte hinzufügen.

## Verwenden der REST-API
<a name="KMSUsingRESTAPI"></a>

Wenn Sie ein Objekt erstellen, d. h. wenn Sie ein neues Objekt hochladen oder ein vorhandenes Objekt kopieren, können Sie für die Verschlüsselung Ihrer Daten die serverseitige Verschlüsselung mit AWS KMS keys (SSE-KMS) angeben. Fügen Sie hierzu der Anforderung den Header `x-amz-server-side-encryption` hinzu. Setzen Sie den Wert des Headers auf den `aws:kms`-Verschlüsselungsalgorithmus. Amazon S3 bestätigt, dass Ihr Objekt unter Verwendung von SSE-KMS gespeichert wird, indem es den Antwort-Header `x-amz-server-side-encryption` zurückgibt. 

Wenn Sie den Header `x-amz-server-side-encryption` mit dem Wert `aws:kms` angeben, können Sie auch die folgenden Anforderungs-Header verwenden:
+ `x-amz-server-side-encryption-aws-kms-key-id`
+ `x-amz-server-side-encryption-context`
+ `x-amz-server-side-encryption-bucket-key-enabled`

**Topics**
+ [

### Amazon-S3-REST-API-Vorgänge, die SSE-KMS unterstützen
](#sse-request-headers-kms)
+ [

### Verschlüsselungskontext (`x-amz-server-side-encryption-context`)
](#s3-kms-encryption-context)
+ [

### AWS KMS Schlüssel-ID () `x-amz-server-side-encryption-aws-kms-key-id`
](#s3-kms-key-id-api)
+ [

### S3-Bucket-Schlüssel (`x-amz-server-side-encryption-aws-bucket-key-enabled`)
](#bucket-key-api)

### Amazon-S3-REST-API-Vorgänge, die SSE-KMS unterstützen
<a name="sse-request-headers-kms"></a>

Die folgenden REST-API-Vorgänge akzeptieren die Anforderungs-Header `x-amz-server-side-encryption`, `x-amz-server-side-encryption-aws-kms-key-id` und `x-amz-server-side-encryption-context`.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) – Wenn Sie Daten über die `PUT`-API-Operation hochladen, können Sie diese Anforderungs-Header angeben. 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) – Wenn Sie ein Objekt kopieren, erhalten Sie ein Quell- und ein Zielobjekt. Wenn Sie SSE-KMS-Header mit der `CopyObject`-Operation übergeben, werden sie nur auf das Zielobjekt angewendet. Beim Kopieren eines vorhandenen Objekts wird das Zielobjekt unabhängig davon, ob das Quellobjekt verschlüsselt ist, nur dann verschlüsselt, wenn Sie die serverseitige Verschlüsselung explizit anfordern.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) – Wenn Sie eine `POST`-Operation für das Hochladen eines Objekts verwenden, geben Sie die Informationen in die Formularfelder und nicht in die Anforderungs-Header ein.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) – Wenn Sie große Objekte über die API-Operation für mehrteilige Uploads hochladen, können Sie diese Header angeben. Sie geben diese Header in der `CreateMultipartUpload`-Anforderung an.

Die Antwort-Header der folgenden REST-API-Operationen geben den Header `x-amz-server-side-encryption` zurück, wenn ein Objekt unter Verwendung der serverseitigen Verschlüsselung gespeichert wird.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)

**Wichtig**  
Alle `GET`- und `PUT`-Anforderungen für ein Objekt, das durch AWS KMS geschützt wird, schlagen fehl, wenn Sie diese nicht mit Secure Sockets Layer (SSL), Transport Layer Security (TLS) oder Signature Version 4 erstellen.
Wenn Ihr Objekt SSE-KMS verwendet, senden Sie keine Header für `GET` Verschlüsselungsanfragen für Anfragen und `HEAD` Anfragen, da Sie sonst einen HTTP 400-Fehler erhalten. BadRequest

### Verschlüsselungskontext (`x-amz-server-side-encryption-context`)
<a name="s3-kms-encryption-context"></a>

Wenn Sie `x-amz-server-side-encryption:aws:kms` angeben, unterstützt die Amazon-S3-API einen Verschlüsselungskontext mit dem Header `x-amz-server-side-encryption-context`. Ein Verschlüsselungskontext ist ein Satz von Schlüssel-Wert-Paaren, die zusätzliche kontextbezogene Informationen zu den Daten enthalten können.

Amazon S3 verwendet automatisch den Objekt- oder Bucket-ARN (Amazon-Ressourcenname) als Verschlüsselungskontextpaar. Wenn Sie SSE-KMS verwenden, ohne einen S3-Bucket-Schlüssel zu aktivieren, verwenden Sie den Objekt-ARN als Verschlüsselungskontext, z. B. `arn:aws:s3:::object_ARN`. Wenn Sie dagegen SSE-KMS verwenden und einen S3-Bucket-Schlüssel aktivieren, verwenden Sie den Bucket-ARN für Ihren Verschlüsselungskontext, z. B. `arn:aws:s3:::bucket_ARN`. 

Sie können optional ein zusätzliches Verschlüsselungskontextpaar bereitstellen, indem Sie den Header `x-amz-server-side-encryption-context` verwenden. Da der Verschlüsselungskontext jedoch nicht verschlüsselt ist, sollte er keine sensiblen Informationen enthalten. Amazon S3 speichert dieses zusätzliche Schlüsselpaar zusammen mit dem Standardverschlüsselungskontext.

Weitere Informationen zum Verschlüsselungskontext in Amazon S3 finden Sie unter [Verschlüsselungskontext](UsingKMSEncryption.md#encryption-context). Allgemeine Informationen zum Verschlüsselungs-Kontext finden Sie unter [AWS Key Management Service Concepts – Encryption Context (Konzepte – Verschlüsselungs-Kontext)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) im *AWS Key Management Service -Entwicklerhandbuch*. 

### AWS KMS Schlüssel-ID () `x-amz-server-side-encryption-aws-kms-key-id`
<a name="s3-kms-key-id-api"></a>

Sie können den Header `x-amz-server-side-encryption-aws-kms-key-id` verwenden, um die ID des vom Kunden verwalteten Schlüssels anzugeben, der zum Schutz der Daten verwendet wird. Wenn Sie den Header `x-amz-server-side-encryption:aws:kms`, jedoch nicht den Header `x-amz-server-side-encryption-aws-kms-key-id` angeben, verwendet Amazon S3 Von AWS verwalteter Schlüssel (`aws/s3`), um die Daten zu schützen. Wenn Sie einen vom Kunden verwalteten Schlüssel verwenden möchten, müssen Sie den `x-amz-server-side-encryption-aws-kms-key-id`-Header des vom Kunden verwalteten Schlüssels angeben.

**Wichtig**  
Wenn Sie einen AWS KMS key für die serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen KMS-Schlüssel für die symmetrische Verschlüsselung wählen. Amazon S3 unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Weitere Informationen zu diesen Schlüsseln finden Sie unter [Symmetrische KMS-Verschlüsselungsschlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) im *Entwicklerhandbuch für AWS Key Management Service *.

### S3-Bucket-Schlüssel (`x-amz-server-side-encryption-aws-bucket-key-enabled`)
<a name="bucket-key-api"></a>

Sie können den Anforderungs-Header `x-amz-server-side-encryption-aws-bucket-key-enabled` verwenden, um einen S3-Bucket-Schlüssel auf Objektebene zu aktivieren oder zu deaktivieren. S3 Bucket Keys reduzieren Ihre AWS KMS Anforderungskosten, indem sie den Anforderungsverkehr von Amazon S3 zu reduzieren AWS KMS. Weitere Informationen finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md).

Wenn Sie den Header `x-amz-server-side-encryption:aws:kms`, jedoch nicht den Header `x-amz-server-side-encryption-aws-bucket-key-enabled` angeben, werden die Einstellung des S3-Bucket-Schlüssels für den Ziel-Bucket verwendet, um Ihr Objekt zu verschlüsseln. Weitere Informationen finden Sie unter [Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene](configuring-bucket-key-object.md).

## Mit dem AWS CLI
<a name="KMSUsingCLI"></a>

Um die folgenden AWS CLI Beispielbefehle zu verwenden, ersetzen Sie die `user input placeholders` durch Ihre eigenen Informationen.

Wenn Sie ein neues Objekt hochladen oder ein vorhandenes Objekt kopieren, können Sie angeben, dass serverseitige Verschlüsselung mit AWS KMS Schlüsseln zum Verschlüsseln Ihrer Daten verwendet werden soll. Fügen Sie hierzu der Anforderung den Header `--server-side-encryption aws:kms` hinzu. Verwenden Sie den`--ssekms-key-id example-key-id`, um Ihren vom [Kunden verwalteten AWS KMS Schlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk) hinzuzufügen, den Sie erstellt haben. Wenn Sie eine AWS KMS Schlüssel-ID angeben`--server-side-encryption aws:kms`, aber keine angeben, verwendet Amazon S3 einen AWS verwalteten Schlüssel.

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms --ssekms-key-id example-key-id --body filepath
```

Sie können Schlüssel von Amazon-S3-Buckets zusätzlich für Ihre PUT- oder COPY-Operationen aktivieren oder deaktivieren, indem Sie `--bucket-key-enabled` oder `--no-bucket-key-enabled` hinzufügen. Amazon S3 Bucket Keys kann Ihre AWS KMS Anforderungskosten senken, indem der Anforderungsverkehr von Amazon S3 zu reduziert wird AWS KMS. Weitere Informationen finden Sie unter [Reduzierung der Kosten für SSE-KMS mit Schlüsseln von Amazon-S3-Buckets](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-key.html).

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms --bucket-key-enabled --body filepath
```

Sie können ein unverschlüsseltes Objekt mit SSE-KMS verschlüsseln, indem Sie das Objekt wieder an seinen Platz kopieren.

```
aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --body filepath --bucket amzn-s3-demo-bucket --key example-object-key --sse aws:kms --sse-kms-key-id example-key-id --body filepath
```

## Mit dem AWS SDKs
<a name="kms-using-sdks"></a>

Bei der Verwendung AWS SDKs können Sie Amazon S3 AWS KMS keys für die serverseitige Verschlüsselung anfordern. Die folgenden Beispiele zeigen, wie SSE-KMS mit dem AWS SDKs für Java und .NET verwendet wird. Informationen zu anderen SDKs finden Sie im AWS Developer Center unter [Beispielcode und Bibliotheken](https://aws.amazon.com/code).

**Wichtig**  
Wenn Sie einen AWS KMS key für die serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen KMS-Schlüssel für die symmetrische Verschlüsselung wählen. Amazon S3 unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Weitere Informationen zu diesen Schlüsseln finden Sie unter [Symmetrische KMS-Verschlüsselungsschlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) im *Entwicklerhandbuch für AWS Key Management Service *.

### `CopyObject`-Operation
<a name="kms-copy-operation"></a>

Wenn Sie Objekte kopieren, fügen Sie dieselben Anfrageeigenschaften (`ServerSideEncryptionMethod` und `ServerSideEncryptionKeyManagementServiceKeyId`) hinzu, um Amazon S3 aufzufordern, ein AWS KMS key zu verwenden. Weitere Informationen über das Kopieren von Objekten finden Sie unter [Kopieren, Verschieben und Umbenennen von Objekten](copy-object.md). 

### `PUT`-Operation
<a name="kms-put-operation"></a>

------
#### [ Java ]

Wenn Sie ein Objekt mithilfe von hochladen AWS SDK für Java, können Sie Amazon S3 auffordern, ein zu verwenden, AWS KMS key indem Sie die `SSEAwsKeyManagementParams` Eigenschaft hinzufügen, wie in der folgenden Anfrage gezeigt:

```
PutObjectRequest putRequest = new PutObjectRequest(bucketName,
   keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams());
```

In diesem Fall verwendet Amazon S3 die Von AWS verwalteter Schlüssel (`aws/s3`). Weitere Informationen finden Sie unter [Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS)](UsingKMSEncryption.md). Sie können optional einen symmetrischen KMS-Verschlüsselungsschlüssel erstellen und diesen in der Anfrage angeben, wie im folgenden Beispiel gezeigt:

```
PutObjectRequest putRequest = new PutObjectRequest(bucketName,
   keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(keyID));
```

Weitere Informationen zur Erstellung von kundenverwalteten Schlüsseln finden Sie unter [Programming the AWS KMS API](https://docs.aws.amazon.com/kms/latest/developerguide/programming-top.html) im *AWS Key Management Service Developer Guide*.

Funktionierende Codebeispiele zum Hochladen eines Objekts finden Sie unter den folgenden Themen. Um diese Beispiele zu verwenden, müssen Sie die Codebeispiele aktualisieren und Verschlüsselungsinformationen wie im vorigen Codefragment gezeigt bereitstellen.
+ Weitere Informationen zum Hochladen eines Objekts in einem einzigen Vorgang finden Sie unter [Objekte hochladen](upload-objects.md).
+ Informationen zu mehrteiligen Uploads, die High- oder Low-Level-API-Operationen für mehrteilige Uploads verwenden, finden Sie unter [Hochladen eines Objekts mit Multipart-Upload](mpu-upload-object.md). 

------
#### [ .NET ]

Wenn Sie ein Objekt mithilfe von hochladen AWS SDK für .NET, können Sie Amazon S3 auffordern, ein zu verwenden, AWS KMS key indem Sie die `ServerSideEncryptionMethod` Eigenschaft hinzufügen, wie in der folgenden Anfrage gezeigt:

```
PutObjectRequest putRequest = new PutObjectRequest
 {
     BucketName = amzn-s3-demo-bucket,
     Key = keyName,
     // other properties
     ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS
 };
```

In diesem Fall verwendet Amazon S3 die Von AWS verwalteter Schlüssel. Weitere Informationen finden Sie unter [Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS)](UsingKMSEncryption.md). Sie können optional Ihren eigenen symmetrischen, vom Kunden verwalteten Verschlüsselungsschlüssel erstellen und diesen in der Anforderung angeben, wie im folgenden Beispiel gezeigt wird:

```
PutObjectRequest putRequest1 = new PutObjectRequest
{
  BucketName = amzn-s3-demo-bucket,
  Key = keyName,
  // other properties
  ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS,
  ServerSideEncryptionKeyManagementServiceKeyId = keyId
};
```

Weitere Informationen zur Erstellung von kundenverwalteten Schlüsseln finden Sie unter [Programming the AWS KMS API](https://docs.aws.amazon.com/kms/latest/developerguide/programming-top.html) im *AWS Key Management Service Developer Guide*. 

Funktionierende Codebeispiele zum Hochladen eines Objekts finden Sie unter den folgenden Themen. Um diese Beispiele zu verwenden, müssen Sie die Codebeispiele aktualisieren und Verschlüsselungsinformationen wie im vorigen Codefragment gezeigt bereitstellen.
+ Weitere Informationen zum Hochladen eines Objekts in einem einzigen Vorgang finden Sie unter [Objekte hochladen](upload-objects.md).
+ Informationen zu mehrteiligen Uploads, die High- oder Low-Level-API-Operationen für mehrteilige Uploads verwenden, finden Sie unter [Hochladen eines Objekts mit Multipart-Upload](mpu-upload-object.md). 

------

### Vorsigniert URLs
<a name="kms-presigned-urls"></a>

------
#### [ Java ]

Beim Erstellen einer vorsignierten URL für ein Objekt, das mit AWS KMS key verschlüsselt ist, müssen Sie explizit Signature Version 4 angeben, wie im folgenden Beispiel gezeigt wird:

```
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setSignerOverride("AWSS3V4SignerType");
AmazonS3Client s3client = new AmazonS3Client(
        new ProfileCredentialsProvider(), clientConfiguration);
...
```

Ein Codebeispiel finden Sie unter [Gemeinsame Nutzung von Objekten mit vorsignierten URLs](ShareObjectPreSignedURL.md). 

------
#### [ .NET ]

Beim Erstellen einer vorsignierten URL für ein Objekt, das mit AWS KMS key verschlüsselt ist, müssen Sie explizit Signature Version 4 angeben, wie im folgenden Beispiel gezeigt wird:

```
AWSConfigs.S3Config.UseSignatureVersion4 = true;
```

Ein Codebeispiel finden Sie unter [Gemeinsame Nutzung von Objekten mit vorsignierten URLs](ShareObjectPreSignedURL.md).

------

# Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln
<a name="bucket-key"></a>

Amazon S3 Bucket Keys reduzieren die Kosten für die serverseitige Amazon S3 S3-Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS). Durch die Verwendung eines Schlüssels auf Bucket-Ebene für SSE-KMS können die AWS KMS Anforderungskosten um bis zu 99 Prozent gesenkt werden, da der Anforderungsverkehr von Amazon S3 zu reduziert wird. AWS KMS Mit ein paar Klicks in der AWS-Managementkonsole und ohne Änderungen an Ihren Client-Anwendungen können Sie Ihren Bucket so konfigurieren, dass ein S3-Bucket-Schlüssel für die SSE-KMS-Verschlüsselung bei neuen Objekten verwendet wird.

**Anmerkung**  
S3-Bucket-Keys werden für die zweischichtige serverseitige Verschlüsselung mit AWS Key Management Service () -Schlüsseln (AWS KMS DSSE-KMS) nicht unterstützt.

## S3-Bucket-Schlüssel für SSE-KMS
<a name="bucket-key-overview"></a>

Workloads, die auf Millionen oder Milliarden von mit SSE-KMS verschlüsselten Objekten zugreifen, können große Mengen an Anfragen an generieren. AWS KMS Wenn Sie SSE-KMS verwenden, um Ihre Daten ohne einen S3-Bucket Key zu schützen, verwendet Amazon S3 für jedes Objekt einen individuellen AWS KMS [Datenschlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys). In diesem Fall ruft Amazon S3 AWS KMS jedes Mal, wenn eine Anfrage für ein KMS-verschlüsseltes Objekt gestellt wird, auf. Informationen zur Funktionsweise von SSE-KMS finden Sie unter [Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS)](UsingKMSEncryption.md). 

Wenn Sie Ihren Bucket so konfigurieren, dass er einen S3-Bucket Key für SSE-KMS verwendet, AWS generiert er einen kurzlebigen Schlüssel auf Bucket-Ebene von AWS KMS und speichert ihn dann vorübergehend in S3. Dieser Schlüssel auf Bucket-Ebene erstellt während seines Lebenszyklus Datenschlüssel für neue Objekte. S3-Bucket-Keys werden für einen begrenzten Zeitraum in Amazon S3 verwendet, sodass S3 weniger Anfragen stellen muss, AWS KMS um Verschlüsselungsvorgänge abzuschließen. Dadurch wird der Datenverkehr von S3 zu reduziert AWS KMS, sodass Sie zu einem Bruchteil der bisherigen Kosten auf AWS KMS-verschlüsselte Objekte in Amazon S3 zugreifen können.

Eindeutige Schlüssel auf Bucket-Ebene werden mindestens einmal pro Anforderer abgerufen, um sicherzustellen, dass der Zugriff des Anforderers auf den Schlüssel bei einem Ereignis erfasst wird. AWS KMS CloudTrail Amazon S3 behandelt Anrufer als unterschiedliche Anforderer, wenn sie unterschiedliche Rollen oder Konten oder dieselbe Rolle mit unterschiedlichen Bereichsrichtlinien verwenden. AWS KMS Die Einsparungen bei Anfragen spiegeln die Anzahl der Anfragenden, das Anforderungsmuster und das relative Alter der angeforderten Objekte wider. Beispielsweise führt eine geringere Anzahl von Anforderern, die mehrere mit demselben Schlüssel auf Bucket-Ebene verschlüsselte Objekte in einem begrenzten Zeitfenster anfordern, zu größeren Einsparungen.

**Anmerkung**  
Durch die Verwendung von S3 Bucket Keys können Sie AWS KMS Anforderungskosten sparen `Encrypt``GenerateDataKey`, indem Sie Ihre Anfragen mithilfe eines Schlüssels auf Bucketebene auf Anfragen und `Decrypt` Operationen reduzieren. AWS KMS Standardmäßig führen nachfolgende Anfragen, die diesen Schlüssel auf Bucket-Ebene nutzen, nicht zu AWS KMS API-Anfragen und validieren den Zugriff nicht anhand der Schlüsselrichtlinie. AWS KMS 

Wenn Sie einen S3-Bucket-Schlüssel konfigurieren, verwenden Objekte, die sich bereits im Bucket befinden, nicht den S3-Bucket-Schlüssel. Zum Konfigurieren eines S3-Bucket-Schlüssels für vorhandene Objekte können Sie eine `CopyObject`-Operation verwenden. Weitere Informationen finden Sie unter [Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene](configuring-bucket-key-object.md).

Amazon S3 gibt einen S3-Bucket-Schlüssel nur für Objekte frei, die mit demselben AWS KMS key verschlüsselt werden. S3 Bucket Keys sind kompatibel mit KMS-Schlüsseln AWS KMS, die von [importiertem Schlüsselmaterial](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) erstellt wurden, und [Schlüsselmaterial, das von benutzerdefinierten Schlüsselspeichern unterstützt wird](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).

![\[Diagramm, das die AWS KMS Generierung eines Bucket-Keys zeigt, der Datenschlüssel für Objekte in einem Bucket erstellt.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/S3-Bucket-Keys.png)


## Konfigurieren von S3-Bucket-Schlüsseln
<a name="configure-bucket-key"></a>

Sie können Ihren Bucket so konfigurieren, dass er einen S3-Bucket Key für SSE-KMS für neue Objekte über die Amazon S3 S3-Konsole, AWS SDKs AWS CLI, oder die REST-API verwendet. Wenn S3-Bucket-Schlüssel in Ihrem Bucket aktiviert sind, verwenden Objekte, die mit einem anderen angegebenen SSE-KMS-Schlüssel hochgeladen wurden, ihre eigenen S3-Bucket-Schlüssel. Unabhängig von Ihrer S3-Bucket-Schlüsseleinstellung können Sie den Header `x-amz-server-side-encryption-bucket-key-enabled` mit einem `true`- oder `false`-Wert in Ihre Anforderung aufnehmen, um die Bucket-Einstellung zu überschreiben.

Bevor Sie Ihren Bucket für die Verwendung eines S3-Bucket-Schlüssels konfigurieren, lesen Sie [Änderungen, die Sie vor dem Aktivieren eines S3-Bucket-Schlüssels beachten sollten](#bucket-key-changes). 

### Konfigurieren eines S3-Bucket-Schlüssels mit der Amazon-S3-Konsole
<a name="configure-bucket-key-console"></a>

Wenn Sie einen neuen Bucket erstellen, können Sie ihn so konfigurieren, dass er einen S3-Bucket-Schlüssel für SSE-KMS bei neuen Objekten verwendet. Sie können einen vorhandenen Bucket auch dafür konfigurieren, dass er einen S3-Bucket-Schlüssel für SSE-KMS bei neuen Objekten verwendet, indem Sie die Bucket-Eigenschaften aktualisieren. 

Weitere Informationen finden Sie unter [Konfigurieren des Buckets für die Verwendung eines S3-Bucket-Schlüssels mit SSE-KMS bei neuen Objekten](configuring-bucket-key.md).

### REST-API- AWS CLI und AWS SDK-Unterstützung für S3-Bucket Keys
<a name="configure-bucket-key-programmatic"></a>

Sie können die REST-API oder das AWS SDK verwenden AWS CLI, um Ihren Bucket so zu konfigurieren, dass er einen S3-Bucket-Schlüssel für SSE-KMS für neue Objekte verwendet. Sie können einen S3-Bucket-Schlüssel auch auf Objektebene aktivieren.

Weitere Informationen finden Sie hier: 
+ [Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene](configuring-bucket-key-object.md)
+ [Konfigurieren des Buckets für die Verwendung eines S3-Bucket-Schlüssels mit SSE-KMS bei neuen Objekten](configuring-bucket-key.md)

Die folgenden API-Operationen unterstützen S3-Bucket-Schlüssel für SSE-KMS:
+ [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
  + `ServerSideEncryptionRule` akzeptiert den Parameter `BucketKeyEnabled` zum Aktivieren und Deaktivieren eines S3-Bucket-Schlüssels.
+ [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
  + `ServerSideEncryptionRule` gibt die Einstellungen für `BucketKeyEnabled` zurück.
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)[, [CopyObject[CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), und POST-Objekt](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
  + Der Anforderungs-Header `x-amz-server-side-encryption-bucket-key-enabled` aktiviert oder deaktiviert einen S3-Bucket-Schlüssel auf Objektebene.
+ [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html), [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html), und [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
  + Der Antwort-Header `x-amz-server-side-encryption-bucket-key-enabled` zeigt an, ob ein S3-Bucket-Schlüssel für ein Objekt aktiviert oder deaktiviert ist.

### Arbeitet mit CloudFormation
<a name="configure-bucket-key-cfn"></a>

In CloudFormation enthält die `AWS::S3::Bucket` Ressource eine Verschlüsselungseigenschaft namens`BucketKeyEnabled`, mit der Sie einen S3-Bucket-Key aktivieren oder deaktivieren können. 

Weitere Informationen finden Sie unter [Verwenden CloudFormation](configuring-bucket-key.md#enable-bucket-key-cloudformation).

## Änderungen, die Sie vor dem Aktivieren eines S3-Bucket-Schlüssels beachten sollten
<a name="bucket-key-changes"></a>

Bevor Sie einen S3-Bucket-Schlüssel aktivieren, beachten Sie bitte die folgenden damit verbundenen Änderungen:

### IAM oder AWS KMS wichtige Richtlinien
<a name="bucket-key-policies"></a>

Wenn Ihre bestehenden AWS Identity and Access Management (IAM) -Richtlinien oder AWS KMS Schlüsselrichtlinien Ihr Objekt Amazon Resource Name (ARN) als Verschlüsselungskontext verwenden, um den Zugriff auf Ihren KMS-Schlüssel zu verfeinern oder einzuschränken, funktionieren diese Richtlinien nicht mit einem S3-Bucket Key. S3-Bucket-Schlüssel verwenden den Bucket-ARN als Verschlüsselungskontext. Bevor Sie einen S3-Bucket Key aktivieren, aktualisieren Sie Ihre IAM-Richtlinien oder AWS KMS Schlüsselrichtlinien, um Ihren Bucket-ARN als Verschlüsselungskontext zu verwenden.

Weitere Informationen zum Verschlüsselungskontext und zu S3-Bucket-Schlüsseln finden Sie unter [Verschlüsselungskontext](UsingKMSEncryption.md#encryption-context).

### CloudTrail Ereignisse für AWS KMS
<a name="bucket-key-cloudtrail"></a>

Nachdem Sie einen S3-Bucket Key aktiviert haben, protokollieren Ihre AWS KMS CloudTrail Ereignisse Ihren Bucket-ARN anstelle Ihres Objekt-ARN. Darüber hinaus werden in Ihren Protokollen weniger CloudTrail KMS-Ereignisse für SSE-KMS-Objekte angezeigt. Da wichtige Materialien in Amazon S3 zeitlich begrenzt sind, werden weniger Anfragen gestellt. AWS KMS

## Verwenden eines S3-Bucket-Schlüssels mit Replikation
<a name="bucket-key-replication"></a>

Sie können S3-Bucket-Schlüssel mit Replikation innerhalb derselben Region (SRR) und regionsübergreifender Replikation (CRR) verwenden.

Wenn Amazon S3 ein verschlüsseltes Objekt repliziert, werden im Allgemeinen die Verschlüsselungseinstellungen des Replikatobjekts im Ziel-Bucket beibehalten. Wenn das Quellobjekt jedoch nicht verschlüsselt ist und Ihr Ziel-Bucket eine Standard-Verschlüsselung oder einen S3-Bucket-Schlüssel verwendet, verschlüsselt Amazon S3 das Objekt mit der Konfiguration des Ziel-Buckets. 

Die folgenden Beispiele veranschaulichen, wie ein S3-Bucket-Schlüssel mit der Replikation funktioniert. Weitere Informationen finden Sie unter [Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Example Beispiel 1 – Quellobjekt verwendet S3-Bucket-Schlüssel; Ziel-Bucket verwendet Standardverschlüsselung**  
Wenn Ihr Quellobjekt einen S3-Bucket-Schlüssel verwendet, Ihr Ziel-Bucket jedoch eine Standard-Verschlüsselung mit SSE-KMS, behält das Replikatobjekt seine S3-Bucket-Schlüssel-Verschlüsselungseinstellungen im Ziel-Bucket bei. Der Ziel-Bucket verwendet weiterhin die Standard-Verschlüsselung mit SSE-KMS.   


**Example Beispiel 2 – Quellobjekt ist nicht verschlüsselt; Ziel-Bucket verwendet einen S3-Bucket-Schlüssel mit SSE-KMS**  
Wenn Ihr Quellobjekt nicht verschlüsselt ist und der Ziel-Bucket einen S3-Bucket-Schlüssel mit SSE-KMS verwendet, wird das Replikatobjekt mit einem S3-Bucket-Schlüssel mit SSE-KMS im Ziel-Bucket verschlüsselt. Daher unterscheidet sich das `ETag` des Quell-Objekts von dem `ETag` des Replikatobjekts. Sie müssen die Anwendungen, die das `ETag` verwenden, zur Anpassung an diesen Unterschied aktualisieren.

## Arbeiten mit S3-Bucket-Schlüsseln
<a name="using-bucket-key"></a>

Weitere Informationen zum Aktivieren und Arbeiten mit S3-Bucket-Schlüsseln finden Sie in den folgenden Abschnitten:
+ [Konfigurieren des Buckets für die Verwendung eines S3-Bucket-Schlüssels mit SSE-KMS bei neuen Objekten](configuring-bucket-key.md)
+ [Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene](configuring-bucket-key-object.md)
+ [Anzeigen der Einstellungen für einen S3-Bucket-Schlüssel](viewing-bucket-key-settings.md)

# Konfigurieren des Buckets für die Verwendung eines S3-Bucket-Schlüssels mit SSE-KMS bei neuen Objekten
<a name="configuring-bucket-key"></a>

Wenn Sie serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) konfigurieren, können Sie Ihren Bucket so konfigurieren, dass für neue Objekte ein S3-Bucket Key für SSE-KMS verwendet wird. S3-Bucket Keys reduzieren den Anforderungsverkehr von Amazon S3 zu AWS KMS und reduzieren die Kosten für SSE-KMS. Weitere Informationen finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md).

Sie können Ihren Bucket so konfigurieren, dass er einen S3-Bucket-Schlüssel für SSE-KMS für neue Objekte verwendet, indem Sie die Amazon S3 S3-Konsole, die REST-API, AWS SDKs, AWS Command Line Interface (AWS CLI) oder verwenden. CloudFormation Wenn Sie einen S3-Bucket-Schlüssel für vorhandene Objekte aktivieren oder deaktivieren möchten, können Sie eine `CopyObject`-Operation verwenden. Weitere Informationen finden Sie unter [Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene](configuring-bucket-key-object.md) und [Verwenden von Batch Operations zur Aktivierung von S3 Bucket Keys für SSE-KMS](batch-ops-copy-example-bucket-key.md).

Wenn ein S3-Bucket-Schlüssel für den Quell- oder Ziel-Bucket aktiviert ist, ist der Verschlüsselungskontext der Bucket-Amazon-Ressourcenname (ARN), nicht der Objekt-ARN, z. B., `arn:aws:s3:::bucket_ARN`. Sie müssen Ihre IAM-Richtlinien aktualisieren, um den Bucket-ARN für den Verschlüsselungskontext zu verwenden. Weitere Informationen finden Sie unter [S3 Bucket-Schlüssel und Replikation](replication-config-for-kms-objects.md#bk-replication).

Die folgenden Beispiele veranschaulichen, wie ein S3-Bucket-Schlüssel mit der Replikation funktioniert. Weitere Informationen finden Sie unter [Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Voraussetzungen**  
Bevor Sie Ihren Bucket für die Verwendung eines S3-Bucket-Schlüssels konfigurieren, lesen Sie [Änderungen, die Sie vor dem Aktivieren eines S3-Bucket-Schlüssels beachten sollten](bucket-key.md#bucket-key-changes).

**Topics**

## Verwenden der S3-Konsole
<a name="enable-bucket-key"></a>

In der S3-Konsole können Sie einen S3-Bucket-Schlüssel für einen neuen oder vorhandenen Bucket aktivieren oder deaktivieren. Objekte in der S3-Konsole übernehmen ihre S3-Bucket-Schlüssel-Einstellung aus der Bucket-Konfiguration. Wenn Sie einen S3-Bucket-Schlüssel für Ihren Bucket aktivieren, verwenden neue Objekte, die Sie in den Bucket hochladen, einen S3-Bucket-Schlüssel für SSE-KMS. 

**Hochladen, Kopieren oder Ändern von Objekten in Buckets, für die ein S3-Bucket-Schlüssel aktiviert ist**  
Wenn Sie ein Objekt in einen Bucket hochladen oder kopieren, für den ein S3-Bucket-Schlüssel aktiviert ist, oder ein Objekt darin ändern, werden die Einstellung des S3-Bucket-Schlüssels für dieses Objekt möglicherweise aktualisiert, um sie an die Bucket-Konfiguration anzupassen.

Wenn für ein Objekt bereits ein S3-Bucket-Schlüssel aktiviert ist, ändern sich die S3-Bucket-Schlüssel-Einstellungen für dieses Objekt nicht, wenn Sie das Objekt kopieren oder ändern. Wenn Sie jedoch ein Objekt ändern oder kopieren, für das kein S3-Bucket-Schlüssel aktiviert ist, und der Ziel-Bucket eine S3-Bucket-Schlüssel-Konfiguration hat, übernimmt das Objekt die S3-Bucket-Schlüssel-Einstellungen des Ziel-Buckets. Wenn beispielsweise für den Ziel-Bucket ein S3-Bucket-Schlüssel aktiviert ist, für das Quellobjekt jedoch nicht, wird ein S3-Bucket-Schlüssel für das Objekt aktiviert.

**So aktivieren Sie einen S3-Bucket-Schlüssel beim Erstellen eines neuen Buckets**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

1. Wählen Sie **Create Bucket** (Bucket erstellen) aus. 

1. Geben Sie Ihren Bucket-Namen ein und wählen Sie Ihre AWS-Region aus. 

1. Wählen Sie unter **Standardverschlüsselung** für **Verschlüsselungsschlüsseltyp** die Option **AWS Key Management Service -Schlüssel (SSE-KMS)** aus.

1. Führen Sie unter **AWS KMS -Schlüssel** eine der folgenden Aktionen aus, um Ihren KMS-Schlüssel auszuwählen:
   + Um aus einer Liste verfügbarer KMS-Schlüssel auszuwählen, wählen Sie **Wählen Sie aus Ihrem AWS KMS keys** und wählen Sie dann Ihren **KMS-Schlüssel** aus der Liste der verfügbaren Schlüssel aus.

     Sowohl der Von AWS verwalteter Schlüssel (`aws/s3`) als auch Ihr vom Kunden verwalteter Schlüssel werden in dieser Liste angezeigt. Weitere Informationen zu vom Kunden verwalteten Schlüsseln finden Sie unter [Kundenschlüssel und AWS Schlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) im *AWS Key Management Service Entwicklerhandbuch*.
   + Wählen Sie zum Eingeben des KMS-Schlüssel-ARN ** AWS KMS key -ARN eingeben** aus und geben Sie Ihren KMS-Schlüssel-ARN in das angezeigte Feld ein. 
   + Um einen neuen vom Kunden verwalteten Schlüssel in der AWS KMS Konsole zu **erstellen, wählen Sie Create a KMS Key** aus.

     Weitere Informationen zum Erstellen eines finden Sie AWS KMS key unter [Creating Keys](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) im *AWS Key Management Service Developer Guide*.

1. Wählen Sie unter **Bucket Key** (Bucket-Schlüssel) die Option **Enable** (Aktivieren). 

1. Wählen Sie **Create Bucket (Bucket erstellen)** aus. 

   Amazon S3 erstellt Ihren Bucket mit einem aktivierten S3-Bucket-Schlüssel. Neue Objekte, die Sie in den Bucket hochladen, verwenden einen S3-Bucket-Schlüssel. 

   Um einen S3-Bucket-Schlüssel zu deaktivieren, führen Sie die vorherigen Schritte aus und wählen **Deaktivieren**.

**So aktivieren Sie einen S3-Bucket-Schlüssel für einen vorhandenen Bucket**

1. Öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

1. Wählen Sie in der Liste **Buckets** den Bucket, für den Sie einen S3-Bucket-Schlüssel aktivieren möchten.

1. Wählen Sie die Registerkarte **Eigenschaften** aus.

1. Wählen Sie unter **Default encryption (Standard-Verschlüsselung)** **Edit (Bearbeiten)** aus.

1. Wählen Sie unter **Standardverschlüsselung** für **Verschlüsselungsschlüsseltyp** die Option **AWS Key Management Service -Schlüssel (SSE-KMS)** aus.

1. Führen Sie unter **AWS KMS -Schlüssel** eine der folgenden Aktionen aus, um Ihren KMS-Schlüssel auszuwählen:
   + Um aus einer Liste verfügbarer KMS-Schlüssel auszuwählen, wählen Sie **Wählen Sie aus Ihrem AWS KMS keys** und wählen Sie dann Ihren **KMS-Schlüssel** aus der Liste der verfügbaren Schlüssel aus.

     Sowohl der Von AWS verwalteter Schlüssel (`aws/s3`) als auch Ihr vom Kunden verwalteter Schlüssel werden in dieser Liste angezeigt. Weitere Informationen zu vom Kunden verwalteten Schlüsseln finden Sie unter [Kundenschlüssel und AWS Schlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) im *AWS Key Management Service Entwicklerhandbuch*.
   + Wählen Sie zum Eingeben des KMS-Schlüssel-ARN ** AWS KMS key -ARN eingeben** aus und geben Sie Ihren KMS-Schlüssel-ARN in das angezeigte Feld ein. 
   + Um einen neuen vom Kunden verwalteten Schlüssel in der AWS KMS Konsole zu **erstellen, wählen Sie Create a KMS Key** aus.

     Weitere Informationen zum Erstellen eines finden Sie AWS KMS key unter [Creating Keys](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) im *AWS Key Management Service Developer Guide*.

1. Wählen Sie unter **Bucket-Schlüssel** die Option **Aktivieren**. 

1. Wählen Sie **Save Changes (Änderungen speichern)**.

   Amazon S3 aktiviert einen S3-Bucket-Schlüssel für neue Objekte, die zu Ihrem Bucket hinzugefügt werden. Bestehende Objekte verwenden den S3-Bucket-Schlüssel nicht. Zum Konfigurieren eines S3-Bucket-Schlüssels für vorhandene Objekte können Sie eine `CopyObject`-Operation verwenden. Weitere Informationen finden Sie unter [Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene](configuring-bucket-key-object.md).

   Um einen S3-Bucket-Schlüssel zu deaktivieren, führen Sie die vorherigen Schritte aus und wählen **Deaktivieren**.

## Verwenden der REST-API
<a name="enable-bucket-key-rest"></a>

Sie können [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)einen S3-Bucket-Key für Ihren Bucket aktivieren oder deaktivieren. Um einen S3-Bucket Key mit zu konfigurieren`PutBucketEncryption`, verwenden Sie den [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html)Datentyp, der die Standardverschlüsselung mit SSE-KMS beinhaltet. Sie können optional auch einen vom Kunden verwalteten Schlüssel verwenden, indem Sie die KMS-Schlüssel-ID für den kundenverwalteten Schlüssel angeben.  

Weitere Informationen und eine Beispielsyntax finden Sie unter. [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) 

## Verwenden des AWS SDK for Java
<a name="enable-bucket-key-sdk"></a>

Im folgenden Beispiel wird die Bucket-Standardverschlüsselung mit SSE-KMS und einem S3-Bucket-Schlüssel unter Verwendung des AWS SDK für Java aktiviert.

------
#### [ Java ]

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();
    
ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()
    .withSSEAlgorithm(SSEAlgorithm.KMS);
ServerSideEncryptionRule rule = new ServerSideEncryptionRule()
    .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)
    .withBucketKeyEnabled(true);
ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =
    new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule));

SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()
    .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)
    .withBucketName(bucketName);
            
s3client.setBucketEncryption(setBucketEncryptionRequest);
```

------

## Mit dem AWS CLI
<a name="enable-bucket-key-cli"></a>

Im folgenden Beispiel wird die Bucket-Standardverschlüsselung mit SSE-KMS und einem S3-Bucket-Schlüssel unter Verwendung des AWS CLI aktiviert. Ersetzen Sie `user input placeholders` durch Ihre Informationen.

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
        "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "aws:kms",
                    "KMSMasterKeyID": "KMS-Key-ARN"
                },
                "BucketKeyEnabled": true
            }
        ]
    }'
```

## Verwenden CloudFormation
<a name="enable-bucket-key-cloudformation"></a>

Weitere Informationen zur Konfiguration eines S3-Bucket CloudFormation Keys mit finden Sie [AWS::S3::Bucket ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html)im *AWS CloudFormation Benutzerhandbuch*.

# Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene
<a name="configuring-bucket-key-object"></a>

Wenn Sie einen PUT- oder COPY-Vorgang mithilfe der REST-API, oder AWS CLI ausführen AWS SDKs, können Sie einen S3-Bucket-Key auf Objektebene aktivieren oder deaktivieren, indem Sie den `x-amz-server-side-encryption-bucket-key-enabled` Anforderungsheader mit dem `false` Wert `true` oder hinzufügen. S3-Bucket Keys reduzieren die Kosten für serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) (SSE-KMS), indem sie den Anforderungsverkehr von Amazon S3 zu verringern. AWS KMS Weitere Informationen finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md). 

Wenn Sie einen S3-Bucket-Schlüssel für ein Objekt mithilfe eines PUT- oder COPY-Vorgangs konfigurieren, aktualisiert Amazon S3 nur die Einstellungen für dieses Objekt. Die S3-Bucket-Schlüssel-Einstellungen für den Ziel-Bucket ändern sich nicht. Wenn Sie eine PUT- oder COPY-Anforderung für ein KMS-verschlüsseltes Objekt in einen Bucket mit aktivierten S3-Bucket-Schlüsseln senden, verwendet Ihr Vorgang auf Objektebene automatisch S3-Bucket-Schlüssel, sofern Sie die Schlüssel im Anforderungs-Header nicht deaktivieren. Wenn Sie keinen S3-Bucket-Schlüssel für Ihr Objekt angeben, wendet Amazon S3 die S3-Bucket-Schlüssel-Einstellungen für den Ziel-Bucket auf das Objekt an.

**Voraussetzung:**  
Bevor Sie Ihr Objekt für die Verwendung eines S3-Bucket-Schlüssels konfigurieren, lesen Sie [Änderungen, die Sie vor dem Aktivieren eines S3-Bucket-Schlüssels beachten sollten](bucket-key.md#bucket-key-changes). 

**Topics**
+ [

## Amazon S3 Batchvorgänge
](#bucket-key-object-bops)
+ [

## Verwenden der REST-API
](#bucket-key-object-rest)
+ [

## Verwenden des AWS SDK for Java (PutObject)
](#bucket-key-object-sdk)
+ [

## Verwenden von AWS CLI (PutObject)
](#bucket-key-object-cli)

## Amazon S3 Batchvorgänge
<a name="bucket-key-object-bops"></a>

Um Ihre vorhandenen Amazon-S3-Objekte zu verschlüsseln, können Sie Amazon-S3-Batchvorgänge verwenden. Sie stellen S3-Batchvorgänge eine Liste von Objekten bereit, für die Vorgänge ausgeführt werden sollen, und Batch-Vorgänge ruft die jeweilige API auf, um die angegebene Operation auszuführen. 

Mit dem [S3-Batch–Vorgangs-Kopiervorgang](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html) können Sie vorhandene nicht verschlüsselte Objekte kopieren und sie in denselben Bucket zurückschreiben, wie verschlüsselte Objekte. Ein einzelner Batch-Operations-Auftrag kann die angegebene Operation für Milliarden von Objekten ausführen. Weitere Informationen finden Sie unter [Ausführen von Objektoperationen in großem Umfang mit Batch Operations](batch-ops.md) und [Encrypting Objects with Amazon S3 Batch Operations (Verschlüsseln von Objekten mit Amazon S3 Batch Operations)](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/).

## Verwenden der REST-API
<a name="bucket-key-object-rest"></a>

Wenn Sie SSE-KMS verwenden, können Sie einen S3-Bucket-Schlüssel für ein Objekt mithilfe der folgenden API-Operationen aktivieren: 
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)— Wenn Sie ein Objekt hochladen, können Sie den `x-amz-server-side-encryption-bucket-key-enabled` Anforderungsheader angeben, um einen S3-Bucket-Key auf Objektebene zu aktivieren oder zu deaktivieren. 
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)— Wenn Sie ein Objekt kopieren und SSE-KMS konfigurieren, können Sie den `x-amz-server-side-encryption-bucket-key-enabled` Anforderungsheader angeben, um einen S3-Bucket-Key für Ihr Objekt zu aktivieren oder zu deaktivieren. 
+ [Post Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) – Wenn Sie eine `POST`-Operation verwenden, um ein Objekt hochzuladen, und SSE-KMS konfigurieren, können Sie das Formularfeld `x-amz-server-side-encryption-bucket-key-enabled` verwenden, um einen S3-Bucket-Schlüssel für das Objekt zu aktivieren oder zu deaktivieren.
+ [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)— Wenn Sie große Objekte mithilfe der `CreateMultipartUpload` API-Operation hochladen und SSE-KMS konfigurieren, können Sie den `x-amz-server-side-encryption-bucket-key-enabled` Anforderungsheader verwenden, um einen S3-Bucket-Key für Ihr Objekt zu aktivieren oder zu deaktivieren.

Um einen S3-Bucket-Schlüssel auf Objektebene zu aktivieren, schließen Sie den Anforderungs-Header `x-amz-server-side-encryption-bucket-key-enabled` ein. Weitere Informationen über SSE-KMS und die REST API finden Sie unter [Verwenden der REST-API](specifying-kms-encryption.md#KMSUsingRESTAPI).

## Verwenden des AWS SDK for Java (PutObject)
<a name="bucket-key-object-sdk"></a>

Sie können das folgende Beispiel verwenden, um einen S3-Bucket-Schlüssel auf Objektebene mit AWS SDK für Java zu konfigurieren.

------
#### [ Java ]

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();

String bucketName = "amzn-s3-demo-bucket1";
String keyName = "key name for object";
String contents = "file contents";

PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, contents)
    .withBucketKeyEnabled(true);
    
s3client.putObject(putObjectRequest);
```

------

## Verwenden von AWS CLI (PutObject)
<a name="bucket-key-object-cli"></a>

Sie können das folgende AWS CLI Beispiel verwenden, um einen S3-Bucket-Key auf Objektebene als Teil einer `PutObject` Anfrage zu konfigurieren.

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key object key name --server-side-encryption aws:kms --bucket-key-enabled --body filepath
```

# Anzeigen der Einstellungen für einen S3-Bucket-Schlüssel
<a name="viewing-bucket-key-settings"></a>

Sie können die Einstellungen für einen S3-Bucket Key auf Bucket- oder Objektebene anzeigen, indem Sie die Amazon S3 S3-Konsole, die REST-API, AWS Command Line Interface (AWS CLI) oder verwenden AWS SDKs.

S3-Bucket Keys reduzieren den Anforderungsverkehr von Amazon S3 zu AWS KMS und reduzieren die Kosten für serverseitige Verschlüsselung mithilfe von AWS Key Management Service (SSE-KMS). Weitere Informationen finden Sie unter [Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln](bucket-key.md). 

Zum Anzeigen der Einstellungen des S3-Bucket-Schlüssels für einen Bucket oder ein Objekt, der/das die Einstellungen des S3-Bucket-Schlüssels von der Bucket-Konfiguration übernommen hat, benötigen Sie die Berechtigung zum Ausführen der Aktion `s3:GetEncryptionConfiguration`. Weitere Informationen finden Sie unter [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) in der *API-Referenz zu Amazon Simple Storage Service*. 

## Verwenden der S3-Konsole
<a name="bucket-key-settings"></a>

In der S3-Konsole können Sie die S3-Bucket-Schlüssel-Einstellungen für Ihren Bucket oder Ihr Objekt anzeigen. S3-Bucket-Schlüssel-Einstellungen werden aus der Bucket-Konfiguration übernommen, es sei denn, für die Quellobjekte ist bereits ein S3-Bucket-Schlüssel konfiguriert.

Objekte und Ordner im selben Bucket können unterschiedliche S3-Bucket-Schlüssel-Einstellungen haben. Wenn Sie beispielsweise ein Objekt über die REST-API hochladen und einen S3-Bucket-Schlüssel für das Objekt aktivieren, behält das Objekt seine S3-Bucket-Schlüssel-Einstellung im Ziel-Bucket bei, selbst wenn S3-Bucket-Schlüssel im Ziel-Bucket deaktiviert ist. Ein weiteres Beispiel: Wenn Sie einen S3-Bucket-Schlüssel für einen vorhandenen Bucket aktivieren, verwenden Objekte, die sich bereits im Bucket befinden, keinen S3-Bucket-Schlüssel. Für neue Objekte ist jedoch ein S3-Bucket-Schlüssel aktiviert. 

**So zeigen Sie die Einstellungen des S3-Bucket-Schlüssels für Ihren Bucket an**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

1. Wählen Sie in der Liste **Buckets** den Bucket, für den Sie einen S3-Bucket-Schlüssel aktivieren möchten.

1. Wählen Sie **Properties (Eigenschaften)**.

1. Im Bereich **Standard-Verschlüsselung** sehen Sie unter **Bucket-Schlüssel** die S3-Bucket-Schlüssel-Einstellung für Ihren Bucket.

   Wenn Sie die S3-Bucket-Schlüssel-Einstellung nicht sehen, sind Sie möglicherweise nicht berechtigt, die `s3:GetEncryptionConfiguration`-Aktion durchzuführen. Weitere Informationen finden Sie unter [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) in der *API-Referenz zu Amazon Simple Storage Service*. 

**So zeigen Sie die S3-Bucket-Schlüssel-Einstellung für Ihr Objekt an**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie in der Liste **Buckets** den Bucket, für den Sie einen S3-Bucket-Schlüssel aktivieren möchten. 

1. Wählen Sie in der Liste **Objekte** den Objektnamen aus.

1. Wählen Sie im Tab **Details** unter **Serverseitige Verschlüsselungseinstellungen** die Option **Bearbeiten**. 

   Unter **Bucket-Schlüssel** sehen Sie die Einstellungen des S3-Bucket-Schlüssels für Ihr Objekt. Sie können diese Einstellungen nicht bearbeiten. 

## Verwenden Sie den AWS CLI
<a name="bucket-key-settings-cli"></a>

**So zeigen Sie die S3-Bucket-Schlüssel-Einstellungen auf Bucket-Ebene an**  
Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie jeden `user input placeholder` durch Ihre Informationen.

```
aws s3api get-bucket-encryption --bucket amzn-s3-demo-bucket1
```

Weitere Informationen finden Sie unter [get-bucket-encryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-encryption.html) in der Referenz zum *AWS CLI -Befehl*.

**So zeigen Sie die Einstellungen für einen S3-Bucket-Schlüssel auf Objektebene an**  
Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie jeden `user input placeholder` durch Ihre Informationen.

```
aws s3api head-object --bucket amzn-s3-demo-bucket1 --key my_images.tar.bz2
```

Weitere Informationen finden Sie unter [head-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/head-object.html) in der *AWS CLI -Befehlsreferenz*.

## Verwenden der REST-API
<a name="bucket-key-settings-rest"></a>

**So zeigen Sie die S3-Bucket-Schlüssel-Einstellungen auf Bucket-Ebene an**  
Verwenden Sie die Operation `GetBucketEncryption`, um Verschlüsselungsinformationen für einen Bucket anzuzeigen, einschließlich der Einstellungen für einen S3-Bucket-Schlüssel. Die Einstellungen des S3-Bucket-Schlüssels werden im Antworttext im Element `ServerSideEncryptionConfiguration` mit der Einstellung `BucketKeyEnabled` angezeigt. Weitere Informationen finden Sie unter [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) in der *Amazon-S3-API-Referenz*. 

**So zeigen Sie die Einstellungen für einen S3-Bucket-Schlüssel auf Objektebene an**  
Verwenden Sie den Vorgang `HeadObject`, um den S3-Bucket-Schlüssel-Status für ein Objekt anzuzeigen. `HeadObject` liefert den Antwort-Header `x-amz-server-side-encryption-bucket-key-enabled`, der zeigt, ob ein S3-Bucket-Schlüssel für das Objekt aktiviert oder deaktiviert ist. Weitere Informationen finden Sie unter [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) in der *Amazon-S3-API-Referenz*. 

Die folgenden API-Vorgänge geben auch den Antwort-Header `x-amz-server-side-encryption-bucket-key-enabled` zurück, wenn ein S3-Bucket-Schlüssel für ein Objekt konfiguriert ist: 
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 
+ [PostObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) 
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 
+ [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 
+ [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 
+ [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 
+ [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 
+ [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 

# Verwendung der zweischichtigen serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (DSSE-KMS)
<a name="UsingDSSEncryption"></a>

Bei Verwendung der zweischichtigen serverseitigen Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (DSSE-KMS) werden Objekte beim Upload auf Amazon S3 mit zwei Verschlüsselungsebenen versehen. DSSE-KMS hilft Ihnen dabei, Compliance-Standards, die eine Multi-Layer-Verschlüsselung Ihrer Daten erfordern, einfacher zu erfüllen und die volle Kontrolle über Ihre Verschlüsselungsschlüssel zu haben.

Das "Dual" in DSSE-KMS bezieht sich auf zwei unabhängige AES-256-Verschlüsselungsebenen, die auf Ihre Daten angewendet werden:
+ *Erste Ebene:* Ihre Daten werden mit einem eindeutigen Datenverschlüsselungsschlüssel (DEK) verschlüsselt, der generiert wurde von AWS KMS
+ *Zweite Schicht:* Die bereits verschlüsselten Daten werden mit einem separaten, von Amazon S3 verwalteten AES-256-Schlüssel erneut verschlüsselt.

Dies unterscheidet sich vom Standard-SSE-KMS, das nur eine einzige Verschlüsselungsebene anwendet. Der zweischichtige Ansatz bietet eine erhöhte Sicherheit, da er gewährleistet, dass Ihre Daten auch bei einer Beeinträchtigung einer Verschlüsselungsschicht durch die zweite Schicht geschützt bleiben. Diese zusätzliche Sicherheit geht mit einem erhöhten Verarbeitungsaufwand und AWS KMS API-Aufrufen einher, was die höheren Kosten im Vergleich zu Standard-SSE-KMS erklärt. [Weitere Informationen zur Preisgestaltung von DSSE-KMS finden Sie unter [AWS KMS key Konzepte](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) im AWS Key Management Service Entwicklerhandbuch und unter Preise.AWS KMS](https://aws.amazon.com/kms/pricing)

Wenn Sie DSSE-KMS mit einem Amazon S3 S3-Bucket verwenden, müssen sich die AWS KMS Schlüssel in derselben Region wie der Bucket befinden. Wird DSSE-KMS für das Objekt angefordert, wird außerdem die S3-Prüfsumme, die Teil der Objektmetadaten des Objekts ist, in verschlüsselter Form gespeichert. Weitere Informationen zu Prüfsummen finden Sie unter [Überprüfen der Objektintegrität in Amazon S3](checking-object-integrity.md).

**Anmerkung**  
S3-Bucket-Schlüssel werden für DSSE-KMS nicht unterstützt.

Die wichtigsten Unterschiede zwischen DSSE-KMS und Standard-SSE-KMS sind:
+ **Verschlüsselungsebenen:** DSSE-KMS wendet zwei unabhängige AES-256-Verschlüsselungsebenen an, während das Standard-SSE-KMS eine Ebene verwendet.
+ **Sicherheit:** DSSE-KMS bietet verbesserten Schutz gegen potenzielle Schwachstellen in der Verschlüsselung
+ **Konformität:** DSSE-KMS hilft bei der Erfüllung gesetzlicher Anforderungen, die eine mehrschichtige Verschlüsselung vorschreiben
+ **Leistung:** DSSE-KMS hat eine etwas höhere Latenzzeit aufgrund der zusätzlichen Verschlüsselungsverarbeitung
+ **Kosten: Bei** DSSE-KMS fallen aufgrund des erhöhten Rechenaufwands und zusätzlicher Operationen höhere Gebühren an AWS KMS 

**Erfordert eine zweischichtige serverseitige Verschlüsselung mit (DSSE-KMS) AWS KMS keys**  
Wenn Sie die serverseitige Dual-Layer-Verschlüsselung aller Objekte in einem bestimmten Amazon-S3-Bucket anfordern möchten, können Sie eine Bucket-Richtlinie verwenden. Beispielsweise verweigert die folgende Bucket-Richtlinie jedem die Berechtigung zum Hochladen von Objekten (`s3:PutObject`), wenn die Anforderung nicht den Header `x-amz-server-side-encryption` enthält, der die serverseitige Verschlüsselung mit DSSE-KMS anfordert.

------
#### [ JSON ]

****  

```
{
             "Version":"2012-10-17",		 	 	 
             "Id": "PutObjectPolicy",
             "Statement": [{
                   "Sid": "DenyUnEncryptedObjectUploads",
                   "Effect": "Deny",
                   "Principal": {
                       "AWS": "arn:aws:iam::111122223333:root"
                   },
                   "Action": "s3:PutObject",
                   "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
                   "Condition": {
                      "StringNotEquals": {
                         "s3:x-amz-server-side-encryption": "aws:kms:dsse"
                      }
                   }
                }
             ]
          }
```

------

**Topics**
+ [

# Spezifizierung der serverseitigen Dual-Layer-Verschlüsselung mit Schlüsseln (DSSE-KMS) AWS KMS
](specifying-dsse-encryption.md)

# Spezifizierung der serverseitigen Dual-Layer-Verschlüsselung mit Schlüsseln (DSSE-KMS) AWS KMS
<a name="specifying-dsse-encryption"></a>

Sie können die Verschlüsselung anwenden, wenn Sie entweder ein neues Objekt hochladen oder ein vorhandenes Objekt kopieren. 

Sie können DSSE-KMS mit der Amazon-S3-Konsole, Amazon-S3-REST-API und AWS Command Line Interface (AWS CLI) angeben. Weitere Informationen finden Sie unter den folgenden Themen. 

**Anmerkung**  
Sie können Multiregion AWS KMS keys in Amazon S3 verwenden. Amazon S3 behandelt jedoch derzeit Multi-Regions-Schlüssel wie Einzel-Regions-Schlüssel und verwendet nicht die Multi-Regions-Funktionen des Schlüssels. Weitere Informationen finden Sie unter [Verwenden von multiregionalen Schlüsseln)](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) im *AWS Key Management Service -Entwicklerhandbuch*.

**Anmerkung**  
Wenn Sie einen KMS-Schlüssel verwenden möchten, der sich im Besitz eines anderen Kontos befindet, müssen Sie über die Berechtigung zum Verwenden des Schlüssels verfügen. Weitere Informationen zu kontoübergreifenden Berechtigungen für KMS-Schlüssel finden Sie unter [Erstellen von KMS-Schlüsseln, die von anderen Konten verwendet werden können](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console) im *Entwicklerhandbuch zu AWS Key Management Service *. 

## Verwenden der S3-Konsole
<a name="add-object-encryption-dsse"></a>

In diesem Abschnitt wird beschrieben, wie Sie mithilfe der Amazon S3 S3-Konsole den Verschlüsselungstyp eines Objekts so einrichten oder ändern, dass die serverseitige Dual-Layer-Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (DSSE-KMS) verwendet wird.

**Anmerkung**  
Sie können die Verschlüsselung eines Objekts ändern, wenn Ihr Objekt kleiner als 5 GB groß ist. Wenn Ihr Objekt größer als 5 GB ist, müssen Sie das [AWS CLI](mpu-upload-object.md#UsingCLImpUpload)oder verwenden, um die Verschlüsselung eines Objekts [AWS SDKs](CopyingObjectsMPUapi.md)zu ändern.
Eine Liste der zusätzlichen Berechtigungen, die zum Ändern der Verschlüsselung eines Objekts erforderlich sind, finden Sie unter [Erforderliche Berechtigungen für Amazon-S3-API-Operationen](using-with-s3-policy-actions.md). Beispielrichtlinien, die diese Berechtigungen erteilen, finden Sie unter [Beispiele für identitätsbasierte Richtlinien für Amazon S3](example-policies-s3.md).
Wenn Sie die Verschlüsselung eines Objekts ändern, wird ein neues Objekt erstellt, um das alte zu ersetzen. Wenn S3-Versioning aktiviert ist, wird eine neue Version des Objekts erstellt, und das vorhandene Objekt wird zu einer älteren Version. Die Rolle, die die Eigenschaft ändert, wird auch Besitzer des neuen Objekts (oder der neuen Objektversion). 

**So fügen Sie die Verschlüsselung für ein Objekt hinzu oder ändern Sie sie**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im Navigationsbereich **Buckets** und dann die Registerkarte **Allzweck-Buckets** aus. Navigieren Sie zum Amazon-S3-Bucket oder -Ordner, der die Objekte enthält, die Sie ändern möchten.

1. Aktivieren Sie das Kontrollkästchen für die Objekte, die Sie ändern möchten.

1. Wählen Sie im Menü **Aktionen** aus der angezeigten Optionsliste die Option **Serverseitige Verschlüsselung bearbeiten** aus.

1. Scrollen Sie zum Abschnitt **Serverseitige Verschlüsselung**.

1. Wählen Sie unter **Verschlüsselungseinstellungen** die Option **Verwenden von Bucket-Einstellungen für die Standardverschlüsselung** oder **Überschreiben der Bucket-Einstellungen für die Standardverschlüsselung** aus.

1. Wenn Sie **Überschreiben der Bucket-Einstellungen für die Standardverschlüsselung** ausgewählt haben, konfigurieren Sie die folgenden Verschlüsselungseinstellungen.

   1. Wählen Sie unter **Verschlüsselungstyp** die Option **Serverseitige Dual-Layer-Verschlüsselung mit AWS Key Management Service Schlüsseln (DSSE-KMS**) aus. 

   1. Führen Sie unter **AWS KMS -Schlüssel** eine der folgenden Aktionen aus, um Ihren KMS-Schlüssel auszuwählen:
      + Wenn Sie aus einer Liste verfügbarer KMS-Schlüssel auswählen möchten, wählen Sie **Aus Ihren AWS KMS keys wählen** und dann den **KMS-Schlüssel** in der Liste der verfügbaren Schlüssel aus.

        Sowohl der Von AWS verwalteter Schlüssel (`aws/s3`) als auch Ihr vom Kunden verwalteter Schlüssel werden in dieser Liste angezeigt. Weitere Informationen über vom Kunden verwaltete Schlüssel finden Sie unter [Kundenschlüssel und AWS -Schlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) im *Entwicklerhandbuch zu AWS Key Management Service *.
      + Um den KMS-Schlüssel-ARN einzugeben, wählen **Sie AWS KMS key ARN eingeben** und geben Sie dann Ihren KMS-Schlüssel-ARN in das angezeigte Feld ein. 
      + Um einen neuen vom Kunden verwalteten Schlüssel in der AWS KMS Konsole zu **erstellen, wählen Sie Create a KMS Key** aus.

        Weitere Informationen zum Erstellen eines finden Sie AWS KMS key unter [Creating Keys](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) im *AWS Key Management Service Developer Guide*.
**Wichtig**  
Sie können nur KMS-Schlüssel verwenden, die in derselben AWS-Region wie der Bucket verfügbar sind. Die Amazon-S3-Konsole führt nur die ersten 100 KMS-Schlüssel auf, die in derselben Region wie der Bucket verfügbar sind. Wenn Sie einen KMS-Schlüssel verwenden möchten, der nicht aufgeführt ist, müssen Sie den KMS-Schlüssel-ARN eingeben. Wenn Sie einen KMS-Schlüssel verwenden möchten, der sich im Besitz eines anderen Kontos befindet, müssen Sie über die Berechtigung zum Verwenden des Schlüssels verfügen und Sie müssen den KMS-Schlüssel-ARN eingeben.  
Amazon S3 unterstützt nur symmetrisch verschlüsselte KMS-Schlüssel und keine asymmetrischen KMS-Schlüssel. Weitere Informationen finden Sie unter [Erkennen von asymmetrischen KMS-Schlüsseln](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) im *Entwicklerhandbuch zu AWS Key Management Service *.

1. Wählen Sie unter **Bucket-Schlüssel** die Option **Deaktivieren** aus. S3-Bucket-Schlüssel werden für DSSE-KMS nicht unterstützt.

1. Wählen Sie unter **Zusätzliche Kopiereinstellungen** aus, ob Sie **Quelleinstellungen kopieren**, **Keine Einstellungen angeben** oder **Einstellungen angeben** möchten. **Quelleinstellungen kopieren** ist die Standardoption. Wenn Sie das Objekt nur ohne die Quelleinstellungsattribute kopieren möchten, wählen Sie **Keine Einstellungen angeben** aus. Wählen **Sie Einstellungen angeben**, um Einstellungen für Speicherklasse, Objekt-Tags ACLs, Metadaten, serverseitige Verschlüsselung und zusätzliche Prüfsummen anzugeben.

1. Wählen Sie **Änderungen speichern ** aus.

**Anmerkung**  
Diese Aktion wendet auf alle angegebenen Objekte Verschlüsselung an. Warten Sie beim Verschlüsseln von Ordnern, bis die Speicheroperation abgeschlossen ist, bevor Sie dem Ordner neue Objekte hinzufügen.

## Verwenden der REST-API
<a name="DSSEUsingRESTAPI"></a>

Wenn Sie ein Objekt erstellen, d. h. wenn Sie ein neues Objekt hochladen oder ein vorhandenes Objekt kopieren, können Sie angeben, dass zur Verschlüsselung Ihrer Daten eine zweischichtige serverseitige Verschlüsselung mit (DSSE-KMS) verwendet werden soll. AWS KMS keys Fügen Sie hierzu der Anforderung den Header `x-amz-server-side-encryption` hinzu. Setzen Sie den Wert des Headers auf den `aws:kms:dsse`-Verschlüsselungsalgorithmus. Amazon S3 bestätigt, dass Ihr Objekt unter Verwendung von DSSE-KMS-Verschlüsselung gespeichert wird, indem der Antwort-Header `x-amz-server-side-encryption` zurückgegeben wird. 

Wenn Sie den Header `x-amz-server-side-encryption` mit dem Wert `aws:kms:dsse` angeben, können Sie auch die folgenden Anforderungs-Header verwenden:
+ `x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId`
+ `x-amz-server-side-encryption-context: SSEKMSEncryptionContext`

**Topics**
+ [

### Amazon-S3-REST-API-Operationen, die DSSE-KMS unterstützen
](#dsse-request-headers-kms)
+ [

### Verschlüsselungskontext (`x-amz-server-side-encryption-context`)
](#s3-dsse-encryption-context)
+ [

### AWS KMS Schlüssel-ID (`x-amz-server-side-encryption-aws-kms-key-id`)
](#s3-dsse-key-id-api)

### Amazon-S3-REST-API-Operationen, die DSSE-KMS unterstützen
<a name="dsse-request-headers-kms"></a>

Die folgenden REST-API-Vorgänge akzeptieren die Anforderungs-Header `x-amz-server-side-encryption`, `x-amz-server-side-encryption-aws-kms-key-id` und `x-amz-server-side-encryption-context`.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) – Wenn Sie Daten über die `PUT`-API-Operation hochladen, können Sie diese Anforderungs-Header angeben. 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) – Wenn Sie ein Objekt kopieren, erhalten Sie ein Quell- und ein Zielobjekt. Wenn Sie DSSE-KMS-Header mit der `CopyObject`-Operation übergeben, werden sie nur auf das Zielobjekt angewendet. Beim Kopieren eines vorhandenen Objekts wird das Zielobjekt unabhängig davon, ob das Quellobjekt verschlüsselt ist, nur dann verschlüsselt, wenn Sie die serverseitige Verschlüsselung explizit anfordern.
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) – Wenn Sie eine `POST`-Operation für das Hochladen eines Objekts verwenden, geben Sie die Informationen in die Formularfelder und nicht in die Anforderungs-Header ein.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) – Wenn Sie große Objekte über einen mehrteiligen Upload hochladen, können Sie diese Header in der `CreateMultipartUpload`-Anforderung angeben.

Die Antwort-Header der folgenden REST-API-Operationen geben den Header `x-amz-server-side-encryption` zurück, wenn ein Objekt mit der serverseitigen Verschlüsselung gespeichert wird.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
+ [POST-Objekt](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)

**Wichtig**  
Alle `GET` `PUT` Anfragen für ein Objekt, das durch geschützt ist, AWS KMS schlagen fehl, wenn Sie sie nicht mithilfe von Secure Sockets Layer (SSL), Transport Layer Security (TLS) oder Signature Version 4 stellen.
Wenn Ihr Objekt DSSE-KMS verwendet, dürfen Sie keine Verschlüsselungsanforderungs-Header für `GET`- und `HEAD`-Anforderungen senden. Andernfalls erhalten Sie den Fehler HTTP 400 (Bad Request).

### Verschlüsselungskontext (`x-amz-server-side-encryption-context`)
<a name="s3-dsse-encryption-context"></a>

Wenn Sie `x-amz-server-side-encryption:aws:kms:dsse` angeben, unterstützt die Amazon-S3-API einen Verschlüsselungskontext mit dem Header `x-amz-server-side-encryption-context`. Ein Verschlüsselungskontext ist ein Satz von Schlüssel-Wert-Paaren, die zusätzliche kontextbezogene Informationen zu den Daten enthalten können.

Amazon S3 verwendet automatisch den Amazon-Ressourcennamen (ARN) des Objekts als Verschlüsselungskontextpaar, z. B. `arn:aws:s3:::object_ARN`.

Sie können optional ein zusätzliches Verschlüsselungskontextpaar bereitstellen, indem Sie den Header `x-amz-server-side-encryption-context` verwenden. Da der Verschlüsselungskontext jedoch nicht verschlüsselt ist, sollte er keine sensiblen Informationen enthalten. Amazon S3 speichert dieses zusätzliche Schlüsselpaar zusammen mit dem Standardverschlüsselungskontext.

Weitere Informationen zum Verschlüsselungskontext in Amazon S3 finden Sie unter [Verschlüsselungskontext](UsingKMSEncryption.md#encryption-context). Allgemeine Informationen zum Verschlüsselungs-Kontext finden Sie unter [AWS Key Management Service Concepts – Encryption Context (Konzepte – Verschlüsselungs-Kontext)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) im *AWS Key Management Service -Entwicklerhandbuch*. 

### AWS KMS Schlüssel-ID (`x-amz-server-side-encryption-aws-kms-key-id`)
<a name="s3-dsse-key-id-api"></a>

Sie können den Header `x-amz-server-side-encryption-aws-kms-key-id` verwenden, um die ID des vom Kunden verwalteten Schlüssels anzugeben, der zum Schutz der Daten verwendet wird. Wenn Sie den `x-amz-server-side-encryption:aws:kms:dsse` Header angeben, den `x-amz-server-side-encryption-aws-kms-key-id` Header aber nicht angeben, verwendet Amazon S3 die Von AWS verwalteter Schlüssel (`aws/s3`), um die Daten zu schützen. Wenn Sie einen vom Kunden verwalteten Schlüssel verwenden möchten, müssen Sie den `x-amz-server-side-encryption-aws-kms-key-id`-Header des vom Kunden verwalteten Schlüssels angeben.

**Wichtig**  
Wenn Sie einen AWS KMS key für die serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen KMS-Schlüssel für die symmetrische Verschlüsselung wählen. Amazon S3 unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Weitere Informationen zu diesen Schlüsseln finden Sie unter [Symmetrische KMS-Verschlüsselungsschlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) im *Entwicklerhandbuch für AWS Key Management Service *.

## Mit dem AWS CLI
<a name="DSSEUsingCLI"></a>

Wenn Sie ein neues Objekt hochladen oder ein vorhandenes Objekt kopieren, können Sie für die Verschlüsselung Ihrer Daten DSSE-KMS angeben. Fügen Sie hierzu der Anforderung den Parameter `--server-side-encryption aws:kms:dsse` hinzu. Verwenden Sie den Parameter `--ssekms-key-id example-key-id`, um Ihren [kundenverwalteten AWS KMS -Schlüssel](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk) hinzuzufügen, den Sie erstellt haben. Wenn Sie eine AWS KMS Schlüssel-ID angeben`--server-side-encryption aws:kms:dsse`, aber keine angeben, verwendet Amazon S3 den AWS verwalteten Schlüssel (`aws/s3`).

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms:dsse --ssekms-key-id example-key-id --body filepath
```

Sie können ein unverschlüsseltes Objekt mit DSSE-KMS verschlüsseln, indem Sie das Objekt wieder an seinen Platz kopieren.

```
aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --copy-source amzn-s3-demo-bucket/example-object-key --server-side-encryption aws:kms:dsse --ssekms-key-id example-key-id
```

# Verwenden von serverseitiger Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)
<a name="ServerSideEncryptionCustomerKeys"></a>

Die serverseitige Verschlüsselung dient zum Schutz ruhender Daten. Die serverseitige Verschlüsselung verschlüsselt nur die Objektdaten, nicht die Metadaten des Objekts. Sie können serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) in Ihren Allzweck-Buckets verwenden, um Ihre Daten mit Ihren eigenen Verschlüsselungsschlüsseln zu verschlüsseln. Mit dem Verschlüsselungsschlüssel, den Sie als Teil Ihrer Anforderung bereitstellen, verwaltet Amazon S3 die Datenverschlüsselung, wenn es auf Datenträger schreibt, und die Entschlüsselung, wenn Sie auf Ihre Objekte zugreifen. Sie müssen also für die Datenverschlüsselung und -entschlüsselung keinen Code mehr verwalten. Sie müssen nur noch die von Ihnen bereitgestellten Verschlüsselungsschlüssel verwalten. 

In den meisten modernen Anwendungsfällen in Amazon S3 wird SSE-C nicht mehr verwendet, da es nicht über die Flexibilität einer serverseitigen Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3) oder einer serverseitigen Verschlüsselung mit AWS KMS-Schlüsseln (SSE-KMS) verfügt. Die Anforderung von SSE-C, den Verschlüsselungsschlüssel bei jeder Interaktion mit Ihren SSE-C-verschlüsselten Daten bereitzustellen, macht es unpraktisch, Ihren SSEC-Schlüssel mit anderen Benutzern, Rollen oder AWS Diensten zu teilen, die Daten aus Ihren S3-Buckets lesen, um mit Ihren Daten zu arbeiten. Aufgrund der weit verbreiteten Unterstützung von SSE-KMS verwenden die meisten modernen Workloads keine AWS SSE-C-Verschlüsselung, da ihr die Flexibilität von SSE-KMS fehlt. Weitere Informationen zu SSE-KMS finden Sie unter. [Verwenden der serverseitigen Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS)](UsingKMSEncryption.md)

Wenn Sie verhindern möchten, dass die SSE-C-Verschlüsselung für Objekte verwendet wird, die in Ihren Bucket geschrieben werden, können Sie die SSEC-Verschlüsselung blockieren, wenn Sie die Standardverschlüsselungskonfiguration Ihres Buckets ändern. Wenn SSE-C für einen Allzweck-Bucket blockiert ist, werden alle`PutObject`,,, Mehrteiligen Upload- oder Replikationsanfragen `CopyObject``PostObject`, die die SSE-C-Verschlüsselung spezifizieren, mit einem Fehler zurückgewiesen. `HTTP 403 AccessDenied` Weitere Informationen zum Blockieren von SSE-C finden Sie unter. [Sperren oder Entsperren von SSE-C für einen Allzweck-Bucket](blocking-unblocking-s3-c-encryption-gpb.md)

Für die Nutzung von SSE-C fallen keine zusätzlichen Gebühren an. Für Anforderungen zum Konfigurieren und Verwenden von SSE-C werden jedoch Standardgebühren für Amazon-S3-Anforderungen berechnet. Informationen zu Preisen finden Sie unter [Amazon S3 – Preise](https://aws.amazon.com/s3/pricing/).

**Wichtig**  
Wie [am 19. November 2025 angekündigt, stellt](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service eine neue Standardsicherheitseinstellung für Buckets bereit, die automatisch die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) für alle neuen Allzweck-Buckets deaktiviert. Für bestehende Buckets AWS-Konten ohne SSE-C-verschlüsselte Objekte deaktiviert Amazon S3 auch SSE-C für alle neuen Schreibanforderungen. AWS-Konten Bei Verwendung von SSE-C ändert Amazon S3 die Bucket-Verschlüsselungskonfiguration für keinen der vorhandenen Buckets in diesen Konten. Diese Bereitstellung begann am 6. April 2026 und wird in den nächsten Wochen in 37 AWS Regionen, einschließlich der Regionen AWS China und AWS GovCloud (USA), abgeschlossen sein.  
Aufgrund dieser Änderungen müssen Anwendungen, die SSE-C-Verschlüsselung benötigen, SSE-C bewusst aktivieren, indem sie den [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API-Vorgang verwenden, nachdem ein neuer Bucket erstellt wurde. Weitere Informationen zu dieser Änderung finden Sie unter. [Häufig gestellte Fragen zur SSE-C-Standardeinstellung für neue Buckets](default-s3-c-encryption-setting-faq.md)

## Überlegungen vor der Verwendung von SSE-C
<a name="considerations-before-using-sse-c"></a>
+ S3 speichert den Verschlüsselungsschlüssel niemals, wenn Sie SSE-C verwenden. Sie müssen den Verschlüsselungsschlüssel jedes Mal angeben, wenn Sie möchten, dass jemand Ihre mit SSE-C verschlüsselten Daten von S3 herunterlädt. 
  + Sie Verwalten ein Mapping, welcher Verschlüsselungsschlüssel für die Verschlüsselung welches Objekts verwendet wurde. Sie sind dafür verantwortlich, zu verwalten, welchen Verschlüsselungsschlüssel Sie für welches Objekt angegeben haben. Das bedeutet auch, dass Sie das Objekt verlieren, wenn Sie den Verschlüsselungsschlüssel verlieren. 
  + Sie verwalten die Verschlüsselungsschlüssel auf der Clientseite, deshalb verwalten Sie auch alle zusätzlichen Sicherungsmechanismen auf der Clientseite, wie beispielsweise die Schlüsselrotation. 
  + Dieses Design kann es schwierig machen, Ihren SSE-C-Schlüssel mit anderen Benutzern, Rollen oder AWS Diensten zu teilen, die Sie für die Bearbeitung Ihrer Daten benötigen. Aufgrund der weit verbreiteten Unterstützung von SSE-KMS verwenden die meisten modernen Workloads SSE-C nicht AWS, da es nicht über die Flexibilität von SSE-KMS verfügt. Weitere Informationen zu SSE-KMS finden Sie unter Verwenden der serverseitigen Verschlüsselung mit [KMS-Schlüsseln](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) (SSE-KMS). AWS 
  + Das bedeutet, dass mit SSE-C verschlüsselte Objekte nicht nativ von Managed Services entschlüsselt werden können. AWS 
+ Sie müssen HTTPS verwenden, wenn Sie SSEC-Header für Ihre Anfragen angeben.
  + Amazon S3 weist Anfragen über HTTP zurück, wenn SSE-C verwendet wird. Aus Sicherheitsgründen sollten Sie jeden Schlüssel, den Sie versehentlich mittels HTTP senden, als nicht vertrauenswürdig betrachten. Verwerfen Sie den Schlüssel und rotieren Sie ihn wie erforderlich. 
+ Wenn Ihr Bucket versionierungsfähig ist, kann jede Objektversion, die Sie hochladen, ihren eigenen Verschlüsselungsschlüssel haben. Sie sind dafür verantwortlich, zu verwalten, welcher Verschlüsselungsschlüssel für welche Objektversion verwendet wurde. 
+ SSE-C wird in der Amazon S3 S3-Konsole nicht unterstützt. Sie können die Amazon S3 S3-Konsole nicht verwenden, um ein Objekt hochzuladen und die SSE-C-Verschlüsselung anzugeben. Sie können die Konsole auch nicht verwenden, um ein vorhandenes Objekt zu aktualisieren (beispielsweise durch Ändern der Speicherklasse oder Hinzufügen von Metadaten), das mittels SSE-C gespeichert wurde. 

**Topics**
+ [

## Überlegungen vor der Verwendung von SSE-C
](#considerations-before-using-sse-c)
+ [

# Angeben der serverseitigen Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)
](specifying-s3-c-encryption.md)
+ [

# Sperren oder Entsperren von SSE-C für einen Allzweck-Bucket
](blocking-unblocking-s3-c-encryption-gpb.md)
+ [

# Häufig gestellte Fragen zur SSE-C-Standardeinstellung für neue Buckets
](default-s3-c-encryption-setting-faq.md)

# Angeben der serverseitigen Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)
<a name="specifying-s3-c-encryption"></a>

Um serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) zu verwenden, stellen Sie zunächst sicher, dass SSE-C in der Standardverschlüsselungskonfiguration Ihres Amazon S3 S3-Allzweck-Buckets kein blockierter Verschlüsselungstyp ist. Falls blockiert, können Sie diesen Verschlüsselungstyp aktivieren, indem Sie Ihre Standardverschlüsselungskonfiguration für den Bucket aktualisieren. Anschließend können Sie SSE-C in Ihren Upload-Anfragen verwenden, indem Sie die erforderlichen Header übergeben. Sehen Sie sich [Amazon S3 S3-Aktionen, die das Schreiben von Daten mit SSE-C unterstützen](#amazon-s3-actions-that-support-writing-data-with-sse-c) das an und stellen Sie sicher, dass Sie das angeben. [S3-API-Header sind für Anfragen zur Verschlüsselung und Entschlüsselung von SSE-C-Objekten erforderlich](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests) 

Wenn Sie ein Objekt hochladen, das SSE-C angibt, verwendet Amazon S3 den von Ihnen angegebenen Verschlüsselungsschlüssel, um die AES-256-Verschlüsselung auf Ihre Daten anzuwenden. Amazon S3 entfernt dann den Verschlüsselungsschlüssel aus dem Speicher. Wenn Sie ein Objekt abrufen, müssen Sie denselben Verschlüsselungsschlüssel als Teil Ihrer Anfrage angeben. Amazon S3 überprüft zuerst, ob der von Ihnen bereitgestellte Verschlüsselungsschlüssel übereinstimmt, und entschlüsselt das Objekt, bevor Objektdaten zurückgegeben werden. 

Bevor Sie SSE-C verwenden, stellen Sie sicher, dass Sie die überprüft haben. [Überlegungen vor der Verwendung von SSE-C](ServerSideEncryptionCustomerKeys.md#considerations-before-using-sse-c)

**Anmerkung**  
Amazon S3 speichert den von Ihnen bereitgestellten Verschlüsselungsschlüssel nicht. Stattdessen wird ein zufällig mit einem Salt versehener Hash-basierter Nachrichtenauthentifizierungscode (HMAC) des Verschlüsselungsschlüssels gespeichert, um zukünftige Anfragen zu überprüfen. Der mit einem Salt versehene HMAC-Wert kann nicht verwendet werden, um den Wert des Verschlüsselungsschlüssels abzuleiten oder den Inhalt des verschlüsselten Objekts zu entschlüsseln. Das bedeutet, wenn Sie den Verschlüsselungsschlüssel verlieren, verlieren Sie das Objekt.

**Topics**
+ [

## SSE-C-Aktionen und erforderliche Header
](#sse-c-actions-and-required-headers)
+ [

## Beispiel für eine Bucket-Richtlinie zur Durchsetzung der SSE-C-Verschlüsselung
](#example-bucket-policy-to-enforce-sse-c-encryption)
+ [

## Vorsigniert und SSE-C URLs
](#ssec-and-presignedurl)
+ [

## Anfragen mit SSE-C stellen
](#making-requests-with-sse-c)
+ [

## Verwenden der REST-API
](#using-rest-api-sse-c)
+ [

## Verwenden Sie AWS SDKs zur Angabe von SSE-C für PUT-, GET-, Head- und Copy-Operationen
](#sse-c-using-sdks)
+ [

## Verwenden von AWS SDKs , um SSE-C für mehrteilige Uploads anzugeben
](#sse-c-using-sdks-multipart-uploads)

## SSE-C-Aktionen und erforderliche Header
<a name="sse-c-actions-and-required-headers"></a>

Die Angabe von SSE-C auf unterstütztem S3 APIs erfordert die Übergabe bestimmter Anforderungsparameter. 

**Anmerkung**  
Die `PutBucketEncryption` API in Amazon S3 wird verwendet, um die serverseitige Standardverschlüsselung für einen Bucket zu konfigurieren. Unterstützt jedoch `PutBucketEncryption` nicht die Aktivierung von SSE-C als Standardverschlüsselungsmethode für einen Bucket. SSE-C ist eine Verschlüsselungsmethode auf Objektebene, bei der Sie Amazon S3 bei jeder Anfrage zum Hoch- oder Herunterladen von Objekten den Verschlüsselungsschlüssel zur Verfügung stellen. Amazon S3 verwendet diesen Schlüssel, um das Objekt während der Anfrage zu verschlüsseln oder zu entschlüsseln, und verwirft dann den Schlüssel. Das bedeutet, dass SSE-C auf Objektbasis aktiviert ist, nicht als Standard-Bucket-Einstellung. 

### Amazon S3 S3-Aktionen, die das Schreiben von Daten mit SSE-C unterstützen
<a name="amazon-s3-actions-that-support-writing-data-with-sse-c"></a>

Sie können serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) anfordern, wenn Sie Objekte in einen Allzweck-Bucket schreiben, indem Sie die folgenden API-Operationen oder -Aktionen verwenden: 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)

**Anmerkung**  
Die S3-Replikation unterstützt Objekte, die mit SSE-C verschlüsselt sind. Weitere Informationen zum Replizieren verschlüsselter Objekte finden Sie unter [Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

### S3-API-Header sind für Anfragen zur Verschlüsselung und Entschlüsselung von SSE-C-Objekten erforderlich
<a name="s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests"></a>

Sie müssen die folgenden drei API-Header angeben, um Objekte mit SSE-C zu verschlüsseln oder zu entschlüsseln: 
+ `x-amz-server-side-encryption-customer-algorithm`Verwenden Sie diesen Header, um den Verschlüsselungsalgorithmus anzugeben. Der Header-Wert muss AES256 sein.
+ `x-amz-server-side-encryption-customer-key`Verwenden Sie diesen Header, um den Base64-codierten 256-Bit-Verschlüsselungsschlüssel bereitzustellen, den Amazon S3 zum Verschlüsseln oder Entschlüsseln Ihrer Daten verwenden kann.
+ `x-amz-server-side-encryption-customer-key-MD5`Verwenden Sie diesen Header, um den Base64-codierten MD5 128-Bit-Digest des Verschlüsselungsschlüssels gemäß RFC 1321 bereitzustellen. Amazon S3 verwendet diesen Header für eine Überprüfung der Nachrichtenintegrität, um sicherzustellen, dass der Verschlüsselungsschlüssel fehlerfrei übertragen wurde.

### S3-API-Header sind für Anfragen zum Kopieren von mit SSE-C verschlüsselten Quellobjekten erforderlich
<a name="s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c"></a>

Sie müssen die folgenden drei API-Header angeben, um mit SSE-C verschlüsselte Quellobjekte zu kopieren: 
+ `x-amz-copy-source-server-side-encryption-customer-algorithm`Fügen Sie diesen Header hinzu, um den Algorithmus anzugeben, den Amazon S3 zum Entschlüsseln des Quellobjekts verwenden soll. Dieser Wert muss AES256 lauten.
+ `x-amz-copy-source-server-side-encryption-customer-key`Fügen Sie diesen Header hinzu, um den Base64-codierten Verschlüsselungsschlüssel bereitzustellen, den Amazon S3 zur Entschlüsselung des Quellobjekts verwenden kann. Dieser Verschlüsselungsschlüssel muss derjenige sein, den Sie Amazon S3 beim Erstellen des Quellobjekts bereitgestellt haben. Andernfalls kann Amazon S3 das Objekt nicht entschlüsseln.
+ `x-amz-copy-source-server-side-encryption-customer-key-MD5`Fügen Sie diesen Header hinzu, um den Base64-codierten MD5 128-Bit-Digest des Verschlüsselungsschlüssels gemäß RFC 1321 bereitzustellen.

## Beispiel für eine Bucket-Richtlinie zur Durchsetzung der SSE-C-Verschlüsselung
<a name="example-bucket-policy-to-enforce-sse-c-encryption"></a>

Um SSE-C für alle Objekte zu verlangen, die in einen Amazon S3 S3-Bucket geschrieben wurden, können Sie eine Bucket-Richtlinie verwenden. Die folgende Bucket-Richtlinie verweigert beispielsweise die Berechtigung zum Hochladen von Objekten (`s3:PutObject`) für alle Anfragen, die nicht den Header `x-amz-server-side-encryption-customer-algorithm` enthalten, der SSE-C anfordert. 

```
{  
"Version":"2012-10-17",		 	 	                      
    "Id": "PutObjectPolicy",  
    "Statement": [  
        {  
"Sid": "RequireSSECObjectUploads",  
            "Effect": "Deny",  
            "Principal": "*",  
            "Action": "s3:PutObject",  
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",  
            "Condition": {  
            "Null": {  
              "s3:x-amz-server-side-encryption-customer-algorithm": "true"  
                }  
            }  
        }  
    ]  
}
```

**Wichtig**  
Wenn Sie eine Bucket-Richtlinie verwenden, um SSE-C aktivieren zu lassen`s3:PutObject`, müssen Sie den `x-amz-server-side-encryption-customer-algorithm` Header in alle mehrteiligen Upload-Anfragen (CreateMultipartUpload, und) aufnehmen. UploadPart CompleteMultipartUpload 

## Vorsigniert und SSE-C URLs
<a name="ssec-and-presignedurl"></a>

Sie können eine vorsignierte URL erstellen, die für Operationen wie das Hochladen eines neuen Objekts, das Abrufen eines vorhandenen Objekts oder von Objekt-Metadaten verwendet werden kann. Presigned URLs unterstützt SSE-C wie folgt:
+ Beim Erstellen einer vorsignierten URL müssen Sie den Algorithmus unter Verwendung des `x-amz-server-side-encryption-customer-algorithm`-Headers in der Signaturberechnung angeben.
+ Wenn Sie die vorsignierte URL verwenden, um ein neues Objekt hochzuladen, ein vorhandenes Objekt abzurufen oder nur Objekt-Metadaten abzurufen, müssen Sie in der Anforderung Ihrer Client-Anwendung alle Verschlüsselungs-Header angeben. 
**Anmerkung**  
Für non-SSE-C Objekte können Sie eine vorsignierte URL generieren und diese URL direkt in einen Browser einfügen, um auf die Daten zuzugreifen.   
Dies ist für SSE-C-Objekte jedoch nicht möglich, da Sie zusätzlich zur vorsignierten URL auch HTTP-Header einfügen müssen, die für SSE-C-Objekte spezifisch sind. Daher können Sie vorsignierte Objekte URLs für SSE-C nur programmgesteuert verwenden.

Weitere Hinweise zu vorsigniert finden Sie unter. URLs [Laden Sie Objekte mit vorsignierten Objekten herunter und laden Sie sie hoch URLs](using-presigned-url.md)

## Anfragen mit SSE-C stellen
<a name="making-requests-with-sse-c"></a>

 Zum Zeitpunkt der Objekterstellung über die REST-API können Sie die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) angeben. Wenn Sie SSE-C verwenden, müssen Sie die Informationen zum Verschlüsselungsschlüssel mithilfe von angeben. [S3-API-Header sind für Anfragen zum Kopieren von mit SSE-C verschlüsselten Quellobjekten erforderlich](#s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c) Sie können AWS SDK-Wrapper-Bibliotheken verwenden, um diese Header zu Ihrer Anfrage hinzuzufügen. Falls nötig, können Sie auch die REST-API-Aufrufe in Amazon S3 direkt von Ihrer Anwendung aus durchführen.

**Wichtig**  
Bevor Sie die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) angeben, stellen Sie sicher, dass die SSE-C-Verschlüsselung für Ihren Allzweck-Bucket nicht blockiert ist. Weitere Informationen finden Sie unter [Sperren oder Entsperren von SSE-C für einen Allzweck-Bucket](blocking-unblocking-s3-c-encryption-gpb.md).

**Anmerkung**  
Sie können die Amazon S3 S3-Konsole nicht verwenden, um ein Objekt hochzuladen und SSE-C anzufordern. Sie können die Konsole auch nicht verwenden, um ein vorhandenes, mit SSE-C gespeichertes Objekt zu aktualisieren (z. B. die Speicherklasse zu ändern oder Metadaten hinzuzufügen). Weitere Informationen finden Sie unter. [S3-API-Header sind für Anfragen zur Verschlüsselung und Entschlüsselung von SSE-C-Objekten erforderlich](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests) 

## Verwenden der REST-API
<a name="using-rest-api-sse-c"></a>

### Amazon S3 REST APIs , das SSE-C unterstützt
<a name="sse-c-supported-apis"></a>

Die folgenden Amazon S3 APIs unterstützen serverseitige Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C).
+ **GET-Operation** – Sie können beim Abrufen von Objekten über die GET-API (siehe [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)) die Anforderungs-Header angeben.
+ **HEAD-Operation** – Um Objektmetadaten über die HEAD-API abzurufen (siehe [HEAD Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)), können Sie diese Anforderungs-Header angeben.
+ **Operation PUT**: Sie können beim Hochladen von Daten über die PUT Object API (siehe [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)) diese Anforderungs-Header angeben. 
+ **Multipart Upload** – Sie können beim Hochladen großer Objekte über die Multipart Upload-API diese Header angeben. [Sie geben diese Header in der Initiierungsanforderung (siehe [Mehrteiligen Upload initiieren) und jeder nachfolgenden Teil-Upload-Anfrage](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html) (siehe Teil hochladen oder) an. [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html)](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html) Für jede teilweise Upload-Anfrage muss dieselbe Verschlüsslungsinformation angegeben werden, wie diejenige, die Sie in der Initiierungsanfrage für den mehrteiligen Upload angegeben haben.
+ **POST-Operation** – Bei Verwendung einer POST-Operation zum Hochladen eines Objekts (siehe [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)) geben Sie die Informationen in den Formularfeldern und nicht in den Anforderungs-Headern an.
+ **Kopiervorgang** — Wenn Sie ein Objekt kopieren (siehe [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)), haben Sie sowohl ein Quell- als auch ein Zielobjekt:
  + Wenn Sie den Verschlüsselungstyp des Zielobjekts angeben möchten, müssen Sie den `x-amz-server-side-encryption ` Anforderungsheader angeben.
  + Wenn Sie möchten, dass das Zielobjekt mit SSE-C verschlüsselt wird, müssen Sie Verschlüsselungsinformationen mithilfe der S3-API bereitstellen. [S3-API-Header sind für Anfragen zur Verschlüsselung und Entschlüsselung von SSE-C-Objekten erforderlich](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests)
  + Wenn das Quellobjekt mit SSE-C verschlüsselt ist, müssen Sie die Informationen zum Verschlüsselungsschlüssel mithilfe der S3-API-Header angeben. [S3-API-Header sind für Anfragen zum Kopieren von mit SSE-C verschlüsselten Quellobjekten erforderlich](#s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c)

## Verwenden Sie AWS SDKs zur Angabe von SSE-C für PUT-, GET-, Head- und Copy-Operationen
<a name="sse-c-using-sdks"></a>

In den folgenden Beispielen wird gezeigt, wie Sie für Objekte die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) anfordern. Dabei werden folgende Vorgänge ausgeführt. Jeder Vorgang zeigt, wie SSE-C-related Header in der Anfrage angegeben werden:
+ **Put object** – Lädt ein Objekt hoch und fordert die serverseitige Verschlüsselung mit einem vom Kunden bereitgestellten Verschlüsselungsschlüssel an.
+ **Get object** – Lädt das im vorigen Schritt hochgeladene Objekt herunter. Sie stellen in der Anforderung dieselben Verschlüsselungs-Informationen bereit, die Sie beim Hochladen des Objekts angegeben haben. Amazon S3 benötigt diese Informationen, um das Objekt zu entschlüsseln und an Sie zurückzugeben.
+ **Get object metadata** – Ruft die Metadaten des Objekts ab. Sie stellen dieselben Verschlüsselungs-Informationen bereit, die beim Erstellen des Objekts verwendet wurden.
+ **Copy object** – Erstellt eine Kopie des zuvor hochgeladenen Objekts. Da das Quellobjekt mit SSE-C gespeichert wurde, müssen Sie seine Verschlüsselungs-Informationen in Ihrer Kopieranfrage bereitstellen. Standardmäßig verschlüsselt Amazon S3 die Kopie des Objekts nur, wenn Sie dies ausdrücklich anfordern. In diesem Beispiel wird Amazon S3 dazu angewiesen, eine verschlüsselte Kopie des Objekts zu speichern.

------
#### [ Java ]

**Anmerkung**  
Dieses Beispiel zeigt, wie ein Objekt in einer einzigen Operation hochgeladen wird. Wenn Sie die API für mehrteilige Uploads verwenden, um große Objekte hochzuladen, geben Sie Verschlüsslungsinformationen genauso wie in diesem Beispiel veranschaulicht ein. Beispiele für mehrteilige Uploads, die den AWS SDK für Java verwenden, finden Sie unter. [Hochladen eines Objekts mit Multipart-Upload](mpu-upload-object.md)

Um die erforderlichen Verschlüsselungsinformationen hinzuzufügen, schließen Sie in Ihre Anfrage einen `SSECustomerKey` ein. Weitere Informationen zur Klasse `SSECustomerKey` finden Sie im Abschnitt "REST API".

Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter [Erste Schritte](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) im AWS SDK für Java Entwicklerhandbuch.

**Example**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;

import javax.crypto.KeyGenerator;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

public class ServerSideEncryptionUsingClientSideEncryptionKey {
    private static SSECustomerKey SSE_KEY;
    private static AmazonS3 S3_CLIENT;
    private static KeyGenerator KEY_GENERATOR;

    public static void main(String[] args) throws IOException, NoSuchAlgorithmException {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String keyName = "*** Key name ***";
        String uploadFileName = "*** File path ***";
        String targetKeyName = "*** Target key name ***";

        // Create an encryption key.
        KEY_GENERATOR = KeyGenerator.getInstance("AES");
        KEY_GENERATOR.init(256, new SecureRandom());
        SSE_KEY = new SSECustomerKey(KEY_GENERATOR.generateKey());

        try {
            S3_CLIENT = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();

            // Upload an object.
            uploadObject(bucketName, keyName, new File(uploadFileName));

            // Download the object.
            downloadObject(bucketName, keyName);

            // Verify that the object is properly encrypted by attempting to retrieve it
            // using the encryption key.
            retrieveObjectMetadata(bucketName, keyName);

            // Copy the object into a new object that also uses SSE-C.
            copyObject(bucketName, keyName, targetKeyName);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }

    private static void uploadObject(String bucketName, String keyName, File file) {
        PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, file).withSSECustomerKey(SSE_KEY);
        S3_CLIENT.putObject(putRequest);
        System.out.println("Object uploaded");
    }

    private static void downloadObject(String bucketName, String keyName) throws IOException {
        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, keyName).withSSECustomerKey(SSE_KEY);
        S3Object object = S3_CLIENT.getObject(getObjectRequest);

        System.out.println("Object content: ");
        displayTextInputStream(object.getObjectContent());
    }

    private static void retrieveObjectMetadata(String bucketName, String keyName) {
        GetObjectMetadataRequest getMetadataRequest = new GetObjectMetadataRequest(bucketName, keyName)
                .withSSECustomerKey(SSE_KEY);
        ObjectMetadata objectMetadata = S3_CLIENT.getObjectMetadata(getMetadataRequest);
        System.out.println("Metadata retrieved. Object size: " + objectMetadata.getContentLength());
    }

    private static void copyObject(String bucketName, String keyName, String targetKeyName)
            throws NoSuchAlgorithmException {
        // Create a new encryption key for target so that the target is saved using
        // SSE-C.
        SSECustomerKey newSSEKey = new SSECustomerKey(KEY_GENERATOR.generateKey());

        CopyObjectRequest copyRequest = new CopyObjectRequest(bucketName, keyName, bucketName, targetKeyName)
                .withSourceSSECustomerKey(SSE_KEY)
                .withDestinationSSECustomerKey(newSSEKey);

        S3_CLIENT.copyObject(copyRequest);
        System.out.println("Object copied");
    }

    private static void displayTextInputStream(S3ObjectInputStream input) throws IOException {
        // Read one line at a time from the input stream and display each line.
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        System.out.println();
    }
}
```

------
#### [ .NET ]

**Anmerkung**  
Beispiele für das Hochladen großer Objekte mithilfe der API für mehrteilige Uploads finden Sie unter [Hochladen eines Objekts mit Multipart-Upload](mpu-upload-object.md) und [Verwenden der AWS SDKs (Low-Level-API)](mpu-upload-object.md#mpu-upload-low-level).

Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter [Getting Started with the AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) im *AWS SDK for .NET Developer Guide*. 

**Example**  

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class SSEClientEncryptionKeyObjectOperationsTest
    {
        private const string bucketName = "*** bucket name ***"; 
        private const string keyName = "*** key name for new object created ***"; 
        private const string copyTargetKeyName = "*** key name for object copy ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            ObjectOpsUsingClientEncryptionKeyAsync().Wait();
        }
        private static async Task ObjectOpsUsingClientEncryptionKeyAsync()
        {
            try
            {
                // Create an encryption key.
                Aes aesEncryption = Aes.Create();
                aesEncryption.KeySize = 256;
                aesEncryption.GenerateKey();
                string base64Key = Convert.ToBase64String(aesEncryption.Key);

                // 1. Upload the object.
                PutObjectRequest putObjectRequest = await UploadObjectAsync(base64Key);
                // 2. Download the object and verify that its contents matches what you uploaded.
                await DownloadObjectAsync(base64Key, putObjectRequest);
                // 3. Get object metadata and verify that the object uses AES-256 encryption.
                await GetObjectMetadataAsync(base64Key);
                // 4. Copy both the source and target objects using server-side encryption with 
                //    a customer-provided encryption key.
                await CopyObjectAsync(aesEncryption, base64Key);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }

        private static async Task<PutObjectRequest> UploadObjectAsync(string base64Key)
        {
            PutObjectRequest putObjectRequest = new PutObjectRequest
            {
                BucketName = bucketName,
                Key = keyName,
                ContentBody = "sample text",
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };
            PutObjectResponse putObjectResponse = await client.PutObjectAsync(putObjectRequest);
            return putObjectRequest;
        }
        private static async Task DownloadObjectAsync(string base64Key, PutObjectRequest putObjectRequest)
        {
            GetObjectRequest getObjectRequest = new GetObjectRequest
            {
                BucketName = bucketName,
                Key = keyName,
                // Provide encryption information for the object stored in Amazon S3.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };

            using (GetObjectResponse getResponse = await client.GetObjectAsync(getObjectRequest))
            using (StreamReader reader = new StreamReader(getResponse.ResponseStream))
            {
                string content = reader.ReadToEnd();
                if (String.Compare(putObjectRequest.ContentBody, content) == 0)
                    Console.WriteLine("Object content is same as we uploaded");
                else
                    Console.WriteLine("Error...Object content is not same.");

                if (getResponse.ServerSideEncryptionCustomerMethod == ServerSideEncryptionCustomerMethod.AES256)
                    Console.WriteLine("Object encryption method is AES256, same as we set");
                else
                    Console.WriteLine("Error...Object encryption method is not the same as AES256 we set");

                // Assert.AreEqual(putObjectRequest.ContentBody, content);
                // Assert.AreEqual(ServerSideEncryptionCustomerMethod.AES256, getResponse.ServerSideEncryptionCustomerMethod);
            }
        }
        private static async Task GetObjectMetadataAsync(string base64Key)
        {
            GetObjectMetadataRequest getObjectMetadataRequest = new GetObjectMetadataRequest
            {
                BucketName = bucketName,
                Key = keyName,

                // The object stored in Amazon S3 is encrypted, so provide the necessary encryption information.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };

            GetObjectMetadataResponse getObjectMetadataResponse = await client.GetObjectMetadataAsync(getObjectMetadataRequest);
            Console.WriteLine("The object metadata show encryption method used is: {0}", getObjectMetadataResponse.ServerSideEncryptionCustomerMethod);
            // Assert.AreEqual(ServerSideEncryptionCustomerMethod.AES256, getObjectMetadataResponse.ServerSideEncryptionCustomerMethod);
        }
        private static async Task CopyObjectAsync(Aes aesEncryption, string base64Key)
        {
            aesEncryption.GenerateKey();
            string copyBase64Key = Convert.ToBase64String(aesEncryption.Key);

            CopyObjectRequest copyRequest = new CopyObjectRequest
            {
                SourceBucket = bucketName,
                SourceKey = keyName,
                DestinationBucket = bucketName,
                DestinationKey = copyTargetKeyName,
                // Information about the source object's encryption.
                CopySourceServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                CopySourceServerSideEncryptionCustomerProvidedKey = base64Key,
                // Information about the target object's encryption.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = copyBase64Key
            };
            await client.CopyObjectAsync(copyRequest);
        }
    }
}
```

------

## Verwenden von AWS SDKs , um SSE-C für mehrteilige Uploads anzugeben
<a name="sse-c-using-sdks-multipart-uploads"></a>

Das Beispiel im obigen Abschnitt zeigt, wie Sie eine serverseitige Verschlüsselung mit einem vom Kunden bereitgestellten Schlüssel (SSE-C) in den PUT-, GET-, Head- und Copy-Vorgänge anfordern. In diesem Abschnitt werden andere Amazon S3 beschrieben APIs , die SSE-C unterstützen.

------
#### [ Java ]

Um große Objekte hochzuladen, können Sie den mehrteiligen Upload verwenden. APIs Weitere Informationen finden Sie unter [Hochladen und Kopieren von Objekten mit mehrteiligen Uploads in Amazon S3](mpuoverview.md). Sie können entweder High-Level oder Low-Level verwenden APIs , um große Objekte hochzuladen. Diese APIs unterstützen verschlüsselungsbezogene Header in der Anfrage.
+ Wenn Sie die `TransferManager` High-Level-API verwenden, geben Sie die verschlüsselungsspezifischen Header in der an. `PutObjectRequest` Weitere Informationen finden Sie unter [Hochladen eines Objekts mit Multipart-Upload](mpu-upload-object.md). 
+ Beim Verwenden der Low-Level-API geben Sie verschlüsselungsbezogene Informationen in der `InitiateMultipartUploadRequest` gefolgt von identischen Verschlüsselungsinformationen in jeder `UploadPartRequest` an. In Ihrer `CompleteMultipartUploadRequest` müssen Sie keine verschlüsselungsspezifischen Header angeben. Beispiele finden Sie unter [Verwenden der AWS SDKs (Low-Level-API)](mpu-upload-object.md#mpu-upload-low-level). 

Der folgende Beispiel verwendet den `TransferManager`, um Objekte zu erstellen, und zeigt, wie Sie SSE-C-bezogene Informationen bereitstellen. Das Beispiel erledigt Folgendes:
+ Erstellt ein Objekts mit der Methode `TransferManager.upload()`. In der `PutObjectRequest` Instanz geben Sie in der Anfrage Informationen zum Verschlüsselungsschlüssel an. Amazon S3 verschlüsselt das Objekt mit dem vom Kunden bereitgestellten Schüssel.
+ Erstellt eine Kopie des Objekts durch Aufrufen der `TransferManager.copy()`-Methode. Das Beispiel weist Amazon S3 dazu an, eine Objektkopie unter Verwendung eines neuen `SSECustomerKey` zu verschlüsseln. Da das Quellobjekt mittels SSE-C verschlüsselt ist, stellt die `CopyObjectRequest` auch den Verschlüsselungsschlüssel des Quellobjekts bereit. Auf diese Weise kann Amazon S3 das Objekt vor dem Kopieren entschlüsseln. 

**Example**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CopyObjectRequest;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.SSECustomerKey;
import com.amazonaws.services.s3.transfer.Copy;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.s3.transfer.TransferManagerBuilder;
import com.amazonaws.services.s3.transfer.Upload;

import javax.crypto.KeyGenerator;
import java.io.File;
import java.security.SecureRandom;

public class ServerSideEncryptionCopyObjectUsingHLwithSSEC {

    public static void main(String[] args) throws Exception {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String fileToUpload = "*** File path ***";
        String keyName = "*** New object key name ***";
        String targetKeyName = "*** Key name for object copy ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withRegion(clientRegion)
                    .withCredentials(new ProfileCredentialsProvider())
                    .build();
            TransferManager tm = TransferManagerBuilder.standard()
                    .withS3Client(s3Client)
                    .build();

            // Create an object from a file.
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, new File(fileToUpload));

            // Create an encryption key.
            KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
            keyGenerator.init(256, new SecureRandom());
            SSECustomerKey sseCustomerEncryptionKey = new SSECustomerKey(keyGenerator.generateKey());

            // Upload the object. TransferManager uploads asynchronously, so this call
            // returns immediately.
            putObjectRequest.setSSECustomerKey(sseCustomerEncryptionKey);
            Upload upload = tm.upload(putObjectRequest);

            // Optionally, wait for the upload to finish before continuing.
            upload.waitForCompletion();
            System.out.println("Object created.");

            // Copy the object and store the copy using SSE-C with a new key.
            CopyObjectRequest copyObjectRequest = new CopyObjectRequest(bucketName, keyName, bucketName, targetKeyName);
            SSECustomerKey sseTargetObjectEncryptionKey = new SSECustomerKey(keyGenerator.generateKey());
            copyObjectRequest.setSourceSSECustomerKey(sseCustomerEncryptionKey);
            copyObjectRequest.setDestinationSSECustomerKey(sseTargetObjectEncryptionKey);

            // Copy the object. TransferManager copies asynchronously, so this call returns
            // immediately.
            Copy copy = tm.copy(copyObjectRequest);

            // Optionally, wait for the upload to finish before continuing.
            copy.waitForCompletion();
            System.out.println("Copy complete.");
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

------
#### [ .NET ]

Um große Objekte hochzuladen, können Sie die mehrteilige Upload-API verwenden (siehe[Hochladen und Kopieren von Objekten mit mehrteiligen Uploads in Amazon S3](mpuoverview.md)). AWS SDK for .NET bietet sowohl High-Level- als auch APIs Low-Level-Funktionen zum Hochladen großer Objekte. Diese APIs unterstützen verschlüsselungsbezogene Header in der Anfrage.
+ Bei Verwendung der High-Level-`Transfer-Utility `-API stellen Sie wie im Folgenden dargestellt verschlüsselungsspezifische Header in der `TransferUtilityUploadRequest` bereit. Codebeispiele finden Sie unter [Hochladen eines Objekts mit Multipart-Upload](mpu-upload-object.md).

  ```
  TransferUtilityUploadRequest request = new TransferUtilityUploadRequest()
  {
      FilePath = filePath,
      BucketName = existingBucketName,
      Key = keyName,
      // Provide encryption information.
      ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
      ServerSideEncryptionCustomerProvidedKey = base64Key,
  };
  ```
+ Beim Verwenden der Low-Level-API geben Sie verschlüsselungsbezogene Informationen in der Anforderung zum Starten des mehrteiligen Uploads gefolgt von identischen Verschlüsselungs-Informationen in den nachfolgenden Anforderungen zum mehrteiligen Upload an. In der vollständigen Anforderung zum mehrteiligen Upload müssen Sie keine verschlüsselungsspezifischen Header angeben. Beispiele finden Sie unter [Verwenden der AWS SDKs (Low-Level-API)](mpu-upload-object.md#mpu-upload-low-level).

  Nachfolgend finden Sie ein Beispiel für einen mehrteiligen Low-Level-Upload, der eine Kopie eines vorhandenen großen Objekts erstellt. Im Beispiel wird das zu kopierende Objekt in Amazon S3 mittels SSE-C gespeichert und Sie möchten das Zielobjekt ebenfalls mittels SSE-C speichern. Im Beispiel machen Sie folgendes:
  + Initiieren Sie eine mehrteilige Upload-Anfrage, indem Sie einen Verschlüsselungsschlüssel und zugehörige Informationen bereitstellen.
  + Stellen Sie Verschlüsselungsschlüssel für das Quell- und das Zielobjekt sowie die zugehörigen Informationen in der `CopyPartRequest` bereit.
  + Ermitteln Sie die Größe des zu kopierenden Quellobjekts, indem Sie die Objekt-Metadaten abrufen.
  + Laden Sie die Objekte in Teilen mit je 5 MB hoch.  
**Example**  

  ```
  using Amazon;
  using Amazon.S3;
  using Amazon.S3.Model;
  using System;
  using System.Collections.Generic;
  using System.IO;
  using System.Security.Cryptography;
  using System.Threading.Tasks;
  
  namespace Amazon.DocSamples.S3
  {
      class SSECLowLevelMPUcopyObjectTest
      {
          private const string existingBucketName = "*** bucket name ***";
          private const string sourceKeyName      = "*** source object key name ***"; 
          private const string targetKeyName      = "*** key name for the target object ***";
          private const string filePath           = @"*** file path ***";
          // Specify your bucket region (an example region is shown).
          private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
          private static IAmazonS3 s3Client;
          static void Main()
          {
              s3Client = new AmazonS3Client(bucketRegion);
              CopyObjClientEncryptionKeyAsync().Wait();
          }
  
          private static async Task CopyObjClientEncryptionKeyAsync()
          {
              Aes aesEncryption = Aes.Create();
              aesEncryption.KeySize = 256;
              aesEncryption.GenerateKey();
              string base64Key = Convert.ToBase64String(aesEncryption.Key);
  
              await CreateSampleObjUsingClientEncryptionKeyAsync(base64Key, s3Client);
  
              await CopyObjectAsync(s3Client, base64Key);
          }
          private static async Task CopyObjectAsync(IAmazonS3 s3Client, string base64Key)
          {
              List<CopyPartResponse> uploadResponses = new List<CopyPartResponse>();
  
              // 1. Initialize.
              InitiateMultipartUploadRequest initiateRequest = new InitiateMultipartUploadRequest
              {
                  BucketName = existingBucketName,
                  Key = targetKeyName,
                  ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                  ServerSideEncryptionCustomerProvidedKey = base64Key,
              };
  
              InitiateMultipartUploadResponse initResponse =
                  await s3Client.InitiateMultipartUploadAsync(initiateRequest);
  
              // 2. Upload Parts.
              long partSize = 5 * (long)Math.Pow(2, 20); // 5 MB
              long firstByte = 0;
              long lastByte = partSize;
  
              try
              {
                  // First find source object size. Because object is stored encrypted with
                  // customer provided key you need to provide encryption information in your request.
                  GetObjectMetadataRequest getObjectMetadataRequest = new GetObjectMetadataRequest()
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                      ServerSideEncryptionCustomerProvidedKey = base64Key // " * **source object encryption key ***"
                  };
  
                  GetObjectMetadataResponse getObjectMetadataResponse = await s3Client.GetObjectMetadataAsync(getObjectMetadataRequest);
  
                  long filePosition = 0;
                  for (int i = 1; filePosition < getObjectMetadataResponse.ContentLength; i++)
                  {
                      CopyPartRequest copyPartRequest = new CopyPartRequest
                      {
                          UploadId = initResponse.UploadId,
                          // Source.
                          SourceBucket = existingBucketName,
                          SourceKey = sourceKeyName,
                          // Source object is stored using SSE-C. Provide encryption information.
                          CopySourceServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          CopySourceServerSideEncryptionCustomerProvidedKey = base64Key, //"***source object encryption key ***",
                          FirstByte = firstByte,
                          // If the last part is smaller then our normal part size then use the remaining size.
                          LastByte = lastByte > getObjectMetadataResponse.ContentLength ?
                              getObjectMetadataResponse.ContentLength - 1 : lastByte,
  
                          // Target.
                          DestinationBucket = existingBucketName,
                          DestinationKey = targetKeyName,
                          PartNumber = i,
                          // Encryption information for the target object.
                          ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          ServerSideEncryptionCustomerProvidedKey = base64Key
                      };
                      uploadResponses.Add(await s3Client.CopyPartAsync(copyPartRequest));
                      filePosition += partSize;
                      firstByte += partSize;
                      lastByte += partSize;
                  }
  
                  // Step 3: complete.
                  CompleteMultipartUploadRequest completeRequest = new CompleteMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = targetKeyName,
                      UploadId = initResponse.UploadId,
                  };
                  completeRequest.AddPartETags(uploadResponses);
  
                  CompleteMultipartUploadResponse completeUploadResponse =
                      await s3Client.CompleteMultipartUploadAsync(completeRequest);
              }
              catch (Exception exception)
              {
                  Console.WriteLine("Exception occurred: {0}", exception.Message);
                  AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = targetKeyName,
                      UploadId = initResponse.UploadId
                  };
                  s3Client.AbortMultipartUpload(abortMPURequest);
              }
          }
          private static async Task CreateSampleObjUsingClientEncryptionKeyAsync(string base64Key, IAmazonS3 s3Client)
          {
              // List to store upload part responses.
              List<UploadPartResponse> uploadResponses = new List<UploadPartResponse>();
  
              // 1. Initialize.
              InitiateMultipartUploadRequest initiateRequest = new InitiateMultipartUploadRequest
              {
                  BucketName = existingBucketName,
                  Key = sourceKeyName,
                  ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                  ServerSideEncryptionCustomerProvidedKey = base64Key
              };
  
              InitiateMultipartUploadResponse initResponse =
                 await s3Client.InitiateMultipartUploadAsync(initiateRequest);
  
              // 2. Upload Parts.
              long contentLength = new FileInfo(filePath).Length;
              long partSize = 5 * (long)Math.Pow(2, 20); // 5 MB
  
              try
              {
                  long filePosition = 0;
                  for (int i = 1; filePosition < contentLength; i++)
                  {
                      UploadPartRequest uploadRequest = new UploadPartRequest
                      {
                          BucketName = existingBucketName,
                          Key = sourceKeyName,
                          UploadId = initResponse.UploadId,
                          PartNumber = i,
                          PartSize = partSize,
                          FilePosition = filePosition,
                          FilePath = filePath,
                          ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          ServerSideEncryptionCustomerProvidedKey = base64Key
                      };
  
                      // Upload part and add response to our list.
                      uploadResponses.Add(await s3Client.UploadPartAsync(uploadRequest));
  
                      filePosition += partSize;
                  }
  
                  // Step 3: complete.
                  CompleteMultipartUploadRequest completeRequest = new CompleteMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      UploadId = initResponse.UploadId,
                      //PartETags = new List<PartETag>(uploadResponses)
  
                  };
                  completeRequest.AddPartETags(uploadResponses);
  
                  CompleteMultipartUploadResponse completeUploadResponse =
                      await s3Client.CompleteMultipartUploadAsync(completeRequest);
  
              }
              catch (Exception exception)
              {
                  Console.WriteLine("Exception occurred: {0}", exception.Message);
                  AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      UploadId = initResponse.UploadId
                  };
                  await s3Client.AbortMultipartUploadAsync(abortMPURequest);
              }
          }
      }
  }
  ```

------

# Sperren oder Entsperren von SSE-C für einen Allzweck-Bucket
<a name="blocking-unblocking-s3-c-encryption-gpb"></a>

Die meisten modernen Anwendungsfälle in Amazon S3 verwenden keine serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) mehr, da ihr die Flexibilität der serverseitigen Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3) oder der serverseitigen Verschlüsselung mit KMS-Schlüsseln (SSE-KMS) fehlt. AWS Die Anforderung von SSE-C, den Verschlüsselungsschlüssel bei jeder Interaktion mit Ihren SSE-C-verschlüsselten Daten bereitzustellen, macht es unpraktisch, Ihren SSEC-Schlüssel mit anderen Benutzern, Rollen oder AWS Diensten zu teilen, die Daten aus Ihren S3-Buckets lesen, um mit Ihren Daten zu arbeiten.

Um die serverseitigen Verschlüsselungstypen einzuschränken, die Sie in Ihren Allzweck-Buckets verwenden können, können Sie SSE-C-Schreibanforderungen blockieren, indem Sie Ihre Standardverschlüsselungskonfiguration für Ihre Buckets aktualisieren. Diese Konfiguration auf Bucket-Ebene blockiert Anfragen zum Hochladen von Objekten, die SSE-C spezifizieren. Wenn SSE-C für einen Bucket blockiert ist, werden alle`PutObject`,, oder Multipart Upload- oder Replikationsanfragen `CopyObject``PostObject`, die die SSE-C-Verschlüsselung spezifizieren, mit einem HTTP 403-Fehler zurückgewiesen. `AccessDenied`

Diese Einstellung ist ein Parameter in der `PutBucketEncryption` API und kann auch mit der S3-Konsole, der AWS CLI und AWS SDKs, sofern Sie die `s3:PutEncryptionConfiguration` entsprechende Berechtigung haben, aktualisiert werden.

Gültige Werte sind`SSE-C`, was die SSE-C-Verschlüsselung für den Allzweck-Bucket blockiert, und`NONE`, was die Verwendung von SSE-C für Schreibvorgänge in den Bucket ermöglicht.

**Wichtig**  
Wie [am 19. November 2025 angekündigt, stellt](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service eine neue Standardsicherheitseinstellung für Buckets bereit, die automatisch die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) für alle neuen Allzweck-Buckets deaktiviert. Für bestehende Buckets AWS-Konten ohne SSE-C-verschlüsselte Objekte deaktiviert Amazon S3 auch SSE-C für alle neuen Schreibanforderungen. AWS-Konten Bei Verwendung von SSE-C ändert Amazon S3 die Bucket-Verschlüsselungskonfiguration für keinen der vorhandenen Buckets in diesen Konten. Diese Bereitstellung begann am 6. April 2026 und wird in den nächsten Wochen in 37 AWS Regionen, einschließlich der Regionen AWS China und AWS GovCloud (USA), abgeschlossen sein.  
Aufgrund dieser Änderungen müssen Anwendungen, die SSE-C-Verschlüsselung benötigen, SSE-C bewusst aktivieren, indem sie den [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API-Vorgang verwenden, nachdem ein neuer Bucket erstellt wurde. Weitere Informationen zu dieser Änderung finden Sie unter. [Häufig gestellte Fragen zur SSE-C-Standardeinstellung für neue Buckets](default-s3-c-encryption-setting-faq.md)

## Berechtigungen
<a name="bucket-encryption-permissions"></a>

Verwenden Sie die `PutBucketEncryption` API oder die S3-Konsole oder AWS CLI AWS SDKs, um Verschlüsselungstypen für einen Allzweck-Bucket zu blockieren oder zu entsperren. Sie müssen über die folgende Berechtigung verfügen:
+ `s3:PutEncryptionConfiguration`

Verwenden Sie die `GetBucketEncryption` API oder die S3-Konsole oder AWS CLI AWS SDKs, um blockierte Verschlüsselungstypen für einen Allzweck-Bucket anzuzeigen. Sie benötigen die folgende Berechtigung:
+ `s3:GetEncryptionConfiguration`

## Überlegungen vor dem Blockieren der SSE-C-Verschlüsselung
<a name="considerations-before-blocking-sse-c"></a>

Nachdem Sie SSE-C für einen beliebigen Bucket blockiert haben, gilt das folgende Verschlüsselungsverhalten:
+ Es gibt keine Änderung an der Verschlüsselung der Objekte, die im Bucket vorhanden waren, bevor Sie die SSE-C-Verschlüsselung blockiert haben.
+ Nachdem Sie die SSE-C-Verschlüsselung blockiert haben, können Sie weiterhin HeadObject Anfragen für bereits vorhandene, mit SSE-C verschlüsselte Objekte stellen GetObject , sofern Sie die erforderlichen SSEC-Header für die Anfragen angeben.
+ Wenn SSE-C für einen Bucket blockiert ist, werden alle,, oder Multipart Upload-Anfragen `PutObject``CopyObject`, die die SSE-C-Verschlüsselung spezifizieren`PostObject`, mit einem HTTP 403-Fehler zurückgewiesen. `AccessDenied`
+ Wenn in einem Ziel-Bucket für die Replikation SSE-C blockiert ist und die zu replizierenden Quellobjekte mit SSE-C verschlüsselt sind, schlägt die Replikation mit einem HTTP 403-Fehler fehl. `AccessDenied`

Wenn Sie überprüfen möchten, ob Sie in einem Ihrer Buckets SSE-C-Verschlüsselung verwenden, bevor Sie diesen Verschlüsselungstyp blockieren, können Sie Tools wie die Überwachung des Zugriffs auf Ihre Daten verwenden. [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) In diesem [Blogbeitrag](https://aws.amazon.com/blogs/storage/auditing-amazon-s3-server-side-encryption-methods-for-object-uploads/) erfahren Sie, wie Sie Verschlüsselungsmethoden für Objekt-Uploads in Echtzeit überprüfen können. Sie können auch auf diesen [re:POST-Artikel](https://repost.aws/articles/ARhGC12rOiTBCKHcAe9GZXCA/how-to-detect-existing-use-of-sse-c-in-your-amazon-s3-buckets) verweisen, der Sie durch die Abfrage von S3-Inventarberichten führt, um festzustellen, ob Sie über SSE-C-verschlüsselte Objekte verfügen.

### Schritte
<a name="block-sse-c-gpb-steps"></a>

Sie können serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) für einen Allzweck-Bucket blockieren oder entsperren, indem Sie die Amazon S3 S3-Konsole, die AWS Command Line Interface (AWS CLI), die Amazon S3 S3-REST-API und verwenden. AWS SDKs

### Verwenden der S3-Konsole
<a name="block-sse-c-gpb-console"></a>

So blockieren oder entsperren Sie die SSE-C-Verschlüsselung für einen Bucket mithilfe der Amazon S3 S3-Konsole:

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

1. Wählen Sie im linken Navigationsbereich die Option **Allzweck-Buckets** aus.

1. Wählen Sie den Bucket aus, für den Sie die SSE-C-Verschlüsselung blockieren möchten.

1. Wählen Sie die Registerkarte **Eigenschaften** für den Bucket aus.

1. Navigieren Sie zum Eigenschaftenbereich für die **Standardverschlüsselung** für den Bucket und wählen Sie **Bearbeiten** aus.

1. Aktivieren Sie im Abschnitt **Blockierte Verschlüsselungstypen** das Kontrollkästchen neben **Serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C), um die SSE-C-Verschlüsselung** zu blockieren, oder deaktivieren Sie dieses Kästchen, um SSE-C zuzulassen.

1. Wählen Sie **Änderungen speichern** aus.

### Verwenden des AWS CLI
<a name="block-sse-c-gpb-cli"></a>

Informationen zur Installation der AWS CLI finden Sie unter [Installation der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) im *AWS Command Line Interface Benutzerhandbuch*.

Das folgende CLI-Beispiel zeigt Ihnen, wie Sie die SSE-C-Verschlüsselung für einen Allzweck-Bucket mithilfe von blockieren oder entsperren. AWS CLI Um den Befehl zu verwenden, ersetzen Sie den *user input placeholders* durch Ihre eigenen Informationen.

**Anfrage zum Blockieren der SSE-C-Verschlüsselung für einen Allzweck-Bucket:**

```
aws s3api put-bucket-encryption \
  --bucket amzn-s3-demo-bucket \
  --server-side-encryption-configuration '{
    "Rules": [{
      "BlockEncryptionTypes": {
        "EncryptionType": "SSE-C"
      }
    }]
  }'
```

**Anfrage zur Aktivierung der Verwendung der SSE-C-Verschlüsselung in einem Allzweck-Bucket:**

```
aws s3api put-bucket-encryption \
  --bucket amzn-s3-demo-bucket \
  --server-side-encryption-configuration '{
    "Rules": [{
      "BlockEncryptionTypes": {
        "EncryptionType": "NONE"
      }
    }]
  }'
```

## Unter Verwendung der AWS SDKs
<a name="block-sse-c-gpb-sdks"></a>

------
#### [ SDK for Java 2.x ]

Die folgenden Beispiele zeigen Ihnen, wie Sie SSE-C-Verschlüsselungsschreibvorgänge in Ihre Allzweck-Buckets blockieren oder entsperren können, indem Sie AWS SDKs

**Beispiel: PutBucketEncryption Anforderung, die Standardverschlüsselungskonfiguration auf SSE-S3 zu setzen und SSE-C zu blockieren**

```
S3Client s3Client = ...;
ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault
        .builder()
        .sseAlgorithm(ServerSideEncryption.AES256)
        .build();
BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes
        .builder()
        .encryptionType(EncryptionType.SSE_C)
        .build();
ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder()
        .applyServerSideEncryptionByDefault(defaultSse)
        .blockedEncryptionTypes(blockedEncryptionTypes)
        .build();
s3Client.putBucketEncryption(be -> be
        .bucket(bucketName)
        .serverSideEncryptionConfiguration(c -> c.rules(rule)));
```

**Beispiel — PutBucketEncryption Anforderung, die Standardverschlüsselungskonfiguration auf SSE-S3 zu setzen und SSE-C zu entsperren**

```
S3Client s3Client = ...;
ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault
        .builder()
        .sseAlgorithm(ServerSideEncryption.AES256)
        .build();
BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes
        .builder()
        .encryptionType(EncryptionType.NONE)
        .build();
ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder()
        .applyServerSideEncryptionByDefault(defaultSse)
        .blockedEncryptionTypes(blockedEncryptionTypes)
        .build();
s3Client.putBucketEncryption(be -> be
        .bucket(bucketName)
        .serverSideEncryptionConfiguration(c -> c.rules(rule)));
```

------
#### [ SDK for Python Boto3 ]

**Beispiel — PutBucketEncryption Anforderung, die Standardverschlüsselungskonfiguration auf SSE-S3 zu setzen und SSE-C zu blockieren**

```
s3 = boto3.client("s3")
s3.put_bucket_encryption(
    Bucket="amzn-s3-demo-bucket",
    ServerSideEncryptionConfiguration={
        "Rules":[{
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            },
            "BlockedEncryptionTypes": {
                "EncryptionType": ["SSE-C"]
            }
        }]
    }
)
```

**Beispiel — PutBucketEncryption Anforderung, die Standardverschlüsselungskonfiguration auf SSE-S3 zu setzen und SSE-C zu entsperren**

```
s3 = boto3.client("s3")
s3.put_bucket_encryption(
    Bucket="amzn-s3-demo-bucket",
    ServerSideEncryptionConfiguration={
        "Rules":[{
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            },
            "BlockedEncryptionTypes": {
                "EncryptionType": ["NONE"]
            }
        }]
    }
)
```

------

## Verwenden der REST-API
<a name="bucket-tag-add-api"></a>

Informationen zur Amazon S3 S3-REST-API-Unterstützung für das Blockieren oder Entsperren der SSE-C-Verschlüsselung für einen Allzweck-Bucket finden Sie im folgenden Abschnitt in der *Amazon Simple Storage* Service API-Referenz:
+ [BlockedEncryptionTypes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_BlockedEncryptionTypes.html)Datentyp, der im [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html)Datentyp der- und API-Operationen verwendet wird [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html). [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)

# Häufig gestellte Fragen zur SSE-C-Standardeinstellung für neue Buckets
<a name="default-s3-c-encryption-setting-faq"></a>

**Wichtig**  
Wie [am 19. November 2025 angekündigt, stellt](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service eine neue Standardsicherheitseinstellung für Buckets bereit, die automatisch die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) für alle neuen Allzweck-Buckets deaktiviert. Für bestehende Buckets AWS-Konten ohne SSE-C-verschlüsselte Objekte deaktiviert Amazon S3 auch SSE-C für alle neuen Schreibanforderungen. AWS-Konten Bei Verwendung von SSE-C ändert Amazon S3 die Bucket-Verschlüsselungskonfiguration für keinen der vorhandenen Buckets in diesen Konten. Diese Bereitstellung begann am 6. April 2026 und wird in den nächsten Wochen in 37 AWS Regionen, einschließlich der Regionen AWS China und AWS GovCloud (USA), abgeschlossen sein.  
Aufgrund dieser Änderungen müssen Anwendungen, die SSE-C-Verschlüsselung benötigen, SSE-C bewusst aktivieren, indem sie den [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API-Vorgang verwenden, nachdem ein neuer Bucket erstellt wurde.

In den folgenden Abschnitten werden Fragen zu diesem Update beantwortet.

**1. Wird die neue SSE-C-Einstellung im April 2026 für alle neu erstellten Buckets wirksam?**

Ja. Diese Bereitstellung begann am 6. April 2026 und wird in den nächsten Wochen in 37 AWS Regionen, einschließlich der Regionen AWS China und AWS GovCloud (USA), abgeschlossen sein.

**Anmerkung**  
Nach Abschluss der Bereitstellung ist für neu erstellte Buckets in allen AWS Regionen außer dem Mittleren Osten (Bahrain) und dem Mittleren Osten (VAE) standardmäßig SSE-C deaktiviert.

**2. Wie lange wird es dauern, bis dieser Rollout alle AWS Regionen abdeckt?**

Die Bereitstellung begann am 6. April 2026 und wird in wenigen Wochen abgeschlossen sein.

**3. Woher weiß ich, dass das Update abgeschlossen ist?**

Sie können ganz einfach feststellen, ob die Änderung in Ihrer AWS Region abgeschlossen wurde, indem Sie einen neuen Bucket erstellen und den [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)API-Vorgang aufrufen, um festzustellen, ob die SSE-C-Verschlüsselung deaktiviert ist. Nach Abschluss des Updates ist die SSE-C-Verschlüsselung für alle neuen Allzweck-Buckets standardmäßig automatisch deaktiviert. Sie können diese Einstellungen anpassen, nachdem Sie Ihren S3-Bucket erstellt haben, indem Sie den [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API-Vorgang aufrufen.

**4. Wird Amazon S3 meine bestehenden Bucket-Konfigurationen aktualisieren?**

Wenn Ihr AWS Konto keine SSE-C-verschlüsselten Objekte enthält, AWS wird die SSEC-Verschlüsselung für all Ihre vorhandenen Buckets deaktiviert. Wenn ein Bucket in Ihrem AWS Konto SSE-C-verschlüsselte Objekte enthält, AWS werden die Bucket-Konfigurationen in keinem Ihrer Buckets in diesem Konto geändert. Sobald die `CreateBucket` Änderung für Ihre AWS Region abgeschlossen ist, gilt die neue Standardeinstellung für alle neuen Allzweck-Buckets. 

 **5. Kann ich die SSE-C-Verschlüsselung für meine Buckets deaktivieren, bevor das Update abgeschlossen ist?** 

Ja. Sie können die SSE-C-Verschlüsselung für jeden Bucket deaktivieren, indem Sie den [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API-Vorgang aufrufen und den neuen Header angeben. `BlockedEncryptionTypes` 

**6. Kann ich SSE-C verwenden, um Daten in meinen neuen Buckets zu verschlüsseln?**

Ja. In den meisten modernen Anwendungsfällen in Amazon S3 wird SSE-C nicht mehr verwendet, da es nicht über die Flexibilität verfügt, die serverseitige Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3) oder serverseitiger Verschlüsselung mit AWS KMS-Schlüsseln (SSE-KMS) bietet. Wenn Sie die SSE-C-Verschlüsselung in einem neuen Bucket verwenden müssen, können Sie den neuen Bucket erstellen und dann die Verwendung der SSE-C-Verschlüsselung in einer separaten Anfrage aktivieren. `PutBucketEncryption`

 **Beispiel**

```
aws s3api create-bucket \  
bucket amzn-s3-demo-bucket \ 
region us-east-1 \ 
  
aws s3api put-bucket-encryption \  
-- bucket amzn-s3-demo-bucket \
-- server-side-encryption-configuration \
'{ \Rules\: [{   
   {   
   \ApplyServerSideEncryptionByDefault\: {   
     \SSEAlgorithm\: \AES256\,  
    },   
   \BlockedEncryptionTypes\: [  
     \EncryptionType\:\NONE\]   
   }   
   }]   
}'
```

**Anmerkung**  
Sie müssen die `s3:PutEncryptionConfiguration` Erlaubnis haben, die API aufzurufen. `PutBucketEncryption` 

**7. Wie wirkt sich das Blockieren von SSE-C auf Anfragen an meinen Bucket aus?**

Wenn SSE-C für einen Bucket blockiert ist, werden alle`PutObject`,, oder Multipart Upload- oder Replikationsanfragen`PostObject`, die die SSE-C-Verschlüsselung spezifizieren, mit einem HTTP 403-Fehler zurückgewiesen. `CopyObject` `AccessDenied` 