

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.

# 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).

------