Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene - Amazon Simple Storage Service

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.

Konfigurieren eines S3-Bucket-Schlüssels auf Objektebene

Wenn Sie eine PUT COPY Oder-Operation mit dem RESTAPI,, 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 einem true false Oder-Wert 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 AWS KMS verringern. Weitere Informationen finden Sie unter Senkung der Kosten von SSE — KMS mit Amazon S3 Bucket Keys.

Wenn Sie mithilfe einer COPY Operation PUT oder einen S3-Bucket Key für ein Objekt 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 COPY Oder-Anfrage für ein PUT KMS -verschlüsseltes Objekt an einen Bucket mit aktivierten S3-Bucket-Keys senden, verwendet Ihr Vorgang auf Objektebene automatisch S3-Bucket-Keys, sofern Sie die Schlüssel im Anforderungsheader 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.

Amazon S3 Batchvorgänge

Um Ihre vorhandenen Amazon-S3-Objekte zu verschlüsseln, können Sie Amazon-S3-Batchvorgänge verwenden. Sie stellen S3 Batch Operations eine Liste von Objekten zur Verfügung, mit denen gearbeitet werden soll, und Batch Operations ruft die entsprechenden Objekte aufAPI, 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-Vorgangsauftrag kann die angegebene Operation für Milliarden von Objekten ausführen. Weitere Informationen finden Sie unter Massenausführung von Objektoperationen mit Batch Operations und Encrypting Objects with Amazon S3 Batch Operations (Verschlüsseln von Objekten mit Amazon S3 Batch Operations).

Verwenden von REST API

Wenn Sie SSE - verwendenKMS, können Sie einen S3-Bucket-Key für ein Objekt aktivieren, indem Sie die folgenden API Operationen verwenden:

  • PutObject— 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— Wenn Sie ein Objekt kopieren und SSE - konfigurierenKMS, 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.

  • POSTObjekt — Wenn Sie einen POST Vorgang verwenden, um ein Objekt hochzuladen und SSE - zu konfigurierenKMS, können Sie das x-amz-server-side-encryption-bucket-key-enabled Formularfeld verwenden, um einen S3-Bucket-Key für Ihr Objekt zu aktivieren oder zu deaktivieren.

  • CreateMultipartUpload— Wenn Sie mithilfe der CreateMultipartUpload API Operation und der Konfiguration von SSE - große Objekte hochladenKMS, 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 zu SSE — KMS und dem REST API finden Sie unterMit dem REST API.

Verwenden von AWS SDK for Java (PutObject)

Sie können das folgende Beispiel verwenden, um einen S3-Bucket-Schlüssel auf Objektebene mit AWS SDK for 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)

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