View a markdown version of this page

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 einen PUT- oder COPY-Vorgang mithilfe der REST-API, der AWS SDKs oder AWS CLI ausführen, 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 Wert true oder false hinzufügen. S3-Bucket-Keys reduzieren die Kosten der serverseitigen 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 SSE-KMS mit Amazon S3 Bucket Keys.

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-Anfrage für ein KMS-encrypted 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-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 verwenden SSE-KMS, 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 konfigurieren SSE-KMS, 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-Objekt — Wenn Sie einen POST Vorgang verwenden, um ein Objekt hochzuladen und zu konfigurieren SSE-KMS, 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 des CreateMultipartUpload API-Vorgangs und der Konfiguration große Objekte hochladen SSE-KMS, 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 zur REST-API SSE-KMS und zur REST-API finden Sie unterVerwenden der REST-API.

Verwendung der AWS SDK for Java (PutObject)

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);

Verwendung der 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