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, 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.

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.

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 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-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 – 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— 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.

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

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