Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene
Wenn Sie einen PUT- oder COPY-Vorgang über die REST-API, AWS SDKs oder AWS CLI ausführen, können Sie einen S3-Bucket-Schlüssel auf Objektebene aktivieren oder deaktivieren, indem Sie den Anforderungs-Header x-amz-server-side-encryption-bucket-key-enabled
mit dem Wert true
oder false
hinzufügen. S3 Bucket Keys reduzieren die Kosten für serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) (SSE-KMS), indem der Anforderungsverkehr von Amazon S3 auf verringert wird AWS KMS. Weitere Informationen finden Sie unter Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln.
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.
Themen
Amazon S3 Batchvorgänge
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 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 und Encrypting Objects with Amazon S3 Batch Operations (Verschlüsseln von Objekten mit Amazon S3 Batch Operations)
Verwenden der REST-API
Wenn Sie SSE-KMS verwenden, können Sie einen S3-Bucket-Schlüssel für ein Objekt mithilfe der folgenden API-Operationen aktivieren:
-
PutObject – Wenn Sie ein Objekt hochladen, können Sie den Anforderungs-Header
x-amz-server-side-encryption-bucket-key-enabled
angeben, um einen S3-Bucket-Schlüssel auf Objektebene zu aktivieren oder zu deaktivieren. -
CopyObject – Wenn Sie ein Objekt kopieren und SSE-KMS konfigurieren, können Sie den Anforderungs-Header
x-amz-server-side-encryption-bucket-key-enabled
angeben, um einen S3-Bucket-Schlüssel für Ihr Objekt zu aktivieren oder zu deaktivieren. -
Post Object – Wenn Sie eine
POST
-Operation verwenden, um ein Objekt hochzuladen, und SSE-KMS konfigurieren, können Sie das Formularfeldx-amz-server-side-encryption-bucket-key-enabled
verwenden, um einen S3-Bucket-Schlüssel für das Objekt zu aktivieren oder zu deaktivieren. -
CreateMultipartUpload – Wenn Sie große Objekte mit der API-Operation
CreateMultipartUpload
hochladen und SSE-KMS konfigurieren, können Sie den Anforderungs-Headerx-amz-server-side-encryption-bucket-key-enabled
verwenden, um einen S3-Bucket-Schlüssel für das 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.
Verwenden des AWS-SDK für Java (PutObject)
Sie können das folgende Beispiel verwenden, um einen S3-Bucket-Schlüssel auf Objektebene mit AWS SDK for Java zu konfigurieren.
Verwendung der AWS CLI (PutObject)
Sie können das folgende AWS CLI-Beispiel verwenden, um einen S3-Bucket-Schlüssel auf Objektebene als Teil einer PutObject
-Anforderung zu konfigurieren.
aws s3api put-object --bucket
amzn-s3-demo-bucket
--keyobject key name
--server-side-encryption aws:kms --bucket-key-enabled --bodyfilepath