Aktualisierung der serverseitigen Verschlüsselung für vorhandene Daten - 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.

Aktualisierung der serverseitigen Verschlüsselung für vorhandene Daten

Für alle Amazon-S3-Buckets ist die Verschlüsselung standardmäßig konfiguriert und Objekte werden automatisch unter Verwendung der serverseitigen Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt. Diese Standardverschlüsselungseinstellung gilt für alle neuen Objekte in Ihren Amazon S3 S3-Buckets.

Mithilfe der UpdateObjectEncryption API-Operation können Sie den serverseitigen Verschlüsselungstyp eines vorhandenen verschlüsselten Objekts in einem Allzweck-Bucket atomar von serverseitiger Verschlüsselung mit Amazon S3 S3-verwalteter Verschlüsselung (SSE-S3) auf serverseitige Verschlüsselung mit () Verschlüsselungsschlüsseln AWS Key Management Service (SSE-KMS AWS KMS) aktualisieren. Der UpdateObjectEncryption API-Vorgang verwendet die Envelope-Verschlüsselung, um den Datenschlüssel, der zum Ver- und Entschlüsseln Ihres Objekts verwendet wurde, mit Ihrem neu angegebenen serverseitigen Verschlüsselungstyp erneut zu verschlüsseln.

Amazon S3 führt dieses Verschlüsselungstyp-Update ohne jegliche Datenbewegung durch. Mit anderen Worten, wenn Sie den UpdateObjectEncryption Vorgang verwenden, werden Ihre Daten nicht kopiert, archivierte Objekte im S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive werden nicht wiederhergestellt und Objekte in der Speicherklasse S3 Intelligent-Tiering werden nicht zwischen den Stufen verschoben. Darüber hinaus behält der UpdateObjectEncryption Vorgang alle Eigenschaften der Objektmetadaten bei, einschließlich der Speicherklasse, des Erstellungsdatums, des Datums der letzten Änderung und der Prüfsummeneigenschaften. ETag

Der UpdateObjectEncryption Vorgang wird für alle S3-Speicherklassen unterstützt, die von Allzweck-Buckets unterstützt werden. Sie können den UpdateObjectEncryption Vorgang verwenden, um Folgendes zu tun:

  • Ändern Sie verschlüsselte Objekte von serverseitiger Verschlüsselung mit verwalteter Amazon S3 S3-Verschlüsselung (SSE-S3) auf serverseitige Verschlüsselung mit AWS Key Management Service () Verschlüsselungsschlüsseln (SSE-KMS AWS KMS).

  • Aktualisieren Sie mit SSE-KMS verschlüsselte Objekte auf Objektebene so, dass sie S3-Bucket Keys verwenden, wodurch der AWS KMS Anforderungsverkehr von Amazon S3 zu verringert wird. AWS KMS Weitere Informationen finden Sie unter Reduzieren des Preises von SSE-KMS mit Amazon-S3-Bucket-Schlüsseln.

  • Ändern Sie den vom Kunden verwalteten KMS-Schlüssel, der zur Verschlüsselung Ihrer Daten verwendet wird, sodass Sie die benutzerdefinierten Schlüsselrotationsstandards einhalten können.

Anmerkung

Quellobjekte, die unverschlüsselt oder entweder mit einer dualen serverseitigen Verschlüsselung mit AWS KMS keys (DSSE-KMS) oder mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt sind, werden von diesem Vorgang nicht unterstützt.

Der UpdateObjectEncryption Vorgang wird normalerweise in Millisekunden abgeschlossen, unabhängig von der Größe des Objekts oder der Speicherklasse, einschließlich S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive. Dieser Vorgang zählt nicht als Zugriff für S3 Intelligent-Tiering, sodass Objekte in der Stufe „Infrequent Access“ oder „Archive Instant Access“ nicht automatisch auf die Stufe „Häufiger Zugriff“ zurückfallen, wenn Sie den serverseitigen Verschlüsselungstyp Ihres Objekts ändern.

UpdateObjectEncryptionist ein API-Vorgang auf Objektebene (Datenebene), der in Amazon S3 S3-Serverzugriffsprotokollen und AWS CloudTrail Datenereignissen protokolliert wird. Weitere Informationen finden Sie unter Protokollierungsoptionen für Amazon S3.

Der UpdateObjectEncryption Vorgang hat den gleichen Preis wiePUT, COPYPOST, und LIST Anfragen (pro 1.000 Anfragen) und wird unabhängig von der Speicherklasse des zugrunde liegenden Objekts immer als Anforderung der Speicherklasse S3 Standard berechnet. Weitere Informationen finden Sie unter Amazon S3 – Preise.

Einschränkungen und Überlegungen

Bei der Verwendung des UpdateObjectEncryption Vorgangs gelten die folgenden Einschränkungen und Überlegungen:

  • Der UpdateObjectEncryption Vorgang unterstützt keine unverschlüsselten Objekte oder Objekte, die entweder mit serverseitiger Dual-Layer-Verschlüsselung AWS KMS keys (DSSE-KMS) oder mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt sind. Darüber hinaus können Sie SSE-S3 nicht als angeforderte neue Verschlüsselungstypanforderung angeben. UpdateObjectEncryption

  • Sie können den UpdateObjectEncryption Vorgang verwenden, um Objekte in Buckets zu aktualisieren, für die S3-Versionierung aktiviert ist. Um den Verschlüsselungstyp einer bestimmten Version zu aktualisieren, müssen Sie in Ihrer UpdateObjectEncryption Anfrage eine Versions-ID angeben. Wenn Sie keine Versions-ID angeben, bezieht sich die UpdateObjectEncryption Anfrage auf die aktuelle Version des Objekts. Weitere Informationen über das S3-Versioning finden Sie unter Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung.

  • Der UpdateObjectEncryption Vorgang schlägt bei jedem Objekt fehl, auf das der Aufbewahrungsmodus S3 Object Lock oder Legal Hold angewendet wurde. Wenn für ein Objekt eine Aufbewahrungsfrist im Governance-Modus oder eine gesetzliche Aufbewahrungsfrist gilt, müssen Sie zuerst den Object Lock-Status für das Objekt entfernen, bevor Sie Ihre UpdateObjectEncryption Anfrage stellen. Sie können den UpdateObjectEncryption Vorgang nicht für Objekte verwenden, auf die eine Aufbewahrungsfrist für den Object Lock-Konformitätsmodus angewendet wurde. Weitere Informationen zur S3-Objektsperre finden Sie unter Sperren von Objekten mit Object Lock.

  • UpdateObjectEncryptionAnfragen für Quell-Buckets mit aktivierter Live-Replikation lösen keine Replikatereignisse im Ziel-Bucket aus. Wenn Sie den Verschlüsselungstyp von Objekten sowohl in Ihren Quell- als auch in Ihren Ziel-Buckets ändern möchten, müssen Sie separate UpdateObjectEncryption Anfragen für die Objekte in den Quell- und Ziel-Buckets initiieren.

  • Standardmäßig sind alle UpdateObjectEncryption Anfragen, die einen vom Kunden verwalteten KMS-Schlüssel angeben, auf KMS-Schlüssel beschränkt, die dem Bucket-Besitzer gehören. AWS-Konto Wenn Sie die Nutzung verwenden AWS Organizations, können Sie die Möglichkeit zur Nutzung AWS KMS keys von Benutzerkonten anderer Mitglieder innerhalb Ihrer Organisation beantragen, indem Sie sich an uns wenden AWS Support.

  • Wenn Sie S3 Batch Replication verwenden, um Datensätze regionsübergreifend zu replizieren und der serverseitige Verschlüsselungstyp Ihrer Objekte zuvor von SSE-S3 auf SSE-KMS aktualisiert wurde, benötigen Sie möglicherweise zusätzliche Berechtigungen. Für den Bucket der Quellregion benötigen Sie Berechtigungen. kms:decrypt Anschließend benötigen Sie die kms:encrypt Berechtigungen kms:decrypt und für den Bucket in der Zielregion.

  • Sie müssen in Ihrer UpdateObjectEncryption Anfrage einen vollständigen KMS-Schlüssel-ARN angeben. Sie können keinen Aliasnamen oder Alias-ARN verwenden. Sie können den vollständigen KMS-Schlüssel-ARN in der AWS-KMS-Konsole oder mithilfe der AWS KMS DescribeKey KMS-API ermitteln.

Erforderliche Berechtigungen

Um den UpdateObjectEncryption Vorgang ausführen zu können, benötigen Sie die folgenden Berechtigungen:

  • s3:PutObject

  • s3:UpdateObjectEncryption

  • kms:Encrypt

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:ReEncrypt*

Wenn Sie diesen Vorgang mit vom Kunden verwalteten KMS-Schlüsseln aus anderen Teilen Ihrer AWS-Konten Organisation verwenden möchten, benötigen Sie die organizations:DescribeAccount entsprechende Genehmigung. AWS Organizations Sie müssen auch die Möglichkeit zur Nutzung AWS KMS keys von Benutzerkonten anderer Mitglieder innerhalb Ihrer Organisation beantragen, indem Sie sich an uns wenden AWS Support.

Um den UpdateObjectEncryption Vorgang durchzuführen, fügen Sie Ihrer IAM-Rolle die folgende AWS Identity and Access Management (IAM-) Richtlinie hinzu. Um diese Richtlinie zu verwenden, amzn-s3-demo-bucket ersetzen Sie sie durch den Namen Ihres Allzweck-Buckets und ersetzen Sie den anderen user input placeholders durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowUpdateObjectEncryption", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:UpdateObjectEncryption", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncrypt*", "organizations:DescribeAccount" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }

Die Verschlüsselung wird in großen Mengen aktualisiert

Um den serverseitigen Verschlüsselungstyp von mehr als einem Amazon S3 S3-Objekt mit einer einzigen Anfrage zu aktualisieren, können Sie S3 Batch Operations verwenden. Sie können S3 Batch Operations eine Liste von Objekten zur Verfügung stellen, mit denen gearbeitet werden soll, oder Sie können Batch Operations anweisen, auf Objektlisten basierende Objektmetadaten zu generieren, einschließlich Präfix, Speicherklasse, Erstellungsdatum, Verschlüsselungstyp, KMS-Schlüssel-ARN oder S3-Bucket-Key-Status. S3-Batchoperationen rufen die entsprechende API-Operation auf, um die angegebene Operation auszuführen. Ein einziger Batch Operations-Job kann den angegebenen Vorgang für Milliarden von Objekten in einem Bucket ausführen, der Petabyte an Daten enthält. Weitere Informationen über Batchoperationen finden Sie unter Ausführen von Objektoperationen in großem Umfang mit Batch Operations.

Die Funktion „S3-Batchoperationen“ verfolgt den Fortschritt, versendet Benachrichtigungen und speichert einen detaillierten Abschlussbericht zu allen Aktionen. Sie profitieren von einer vollständig verwalteten, prüfbaren und serverlosen Umgebung. Sie können S3 Batch Operations über die Amazon S3 S3-Konsole AWS Command Line Interface (AWS CLI) AWS SDKs oder die Amazon S3 S3-REST-API verwenden. Weitere Informationen finden Sie unter Objektverschlüsselung aktualisieren.

Die Verschlüsselung für Objekte wird aktualisiert

Sie können den serverseitigen Verschlüsselungstyp für ein Objekt über die AWS Command Line Interface (AWS CLI) AWS SDKs oder die Amazon S3 S3-REST-API aktualisieren.

Aktualisieren Sie die Verschlüsselung für ein Objekt

Um die folgenden Befehle ausführen zu können, müssen Sie den AWS CLI installiert und konfiguriert haben. Falls Sie das nicht AWS CLI installiert haben, finden Sie weitere Informationen unter Installieren oder Aktualisieren auf die neueste Version von AWS CLI im AWS Command Line Interface Benutzerhandbuch.

Alternativ können Sie AWS CLI Befehle von der Konsole aus ausführen, indem Sie AWS CloudShell AWS CloudShell ist eine browserbasierte, vorab authentifizierte Shell, die Sie direkt von der aus starten können. AWS-ManagementkonsoleWeitere Informationen finden Sie unter Was ist? CloudShell und Erste Schritte mit AWS CloudShell im AWS CloudShell Benutzerhandbuch.

Um die Verschlüsselung für ein Objekt zu aktualisieren, verwenden Sie den AWS CLI

Wenn Sie den folgenden Beispielbefehl verwenden möchten, ersetzen Sie user input placeholders durch Ihre eigenen Informationen.

  1. Verwenden Sie den folgenden Befehl, um die Verschlüsselung für ein einzelnes Objekt (index.html) in Ihrem Allzweck-Bucket zu aktualisieren (z. B.amzn-s3-demo-bucket), um SSE-KMS mit einem S3-Bucket Key zu verwenden:

    aws s3api update-object-encryption \ --bucket amzn-s3-demo-bucket \ --key index.html \ --object-encryption '{"SSEKMS": { "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/f12a345a-678e-9bbb-1025-62e317037583", "BucketKeyEnabled": true }}'
    Anmerkung

    Sie müssen den vollständigen AWS KMS key Amazon-Ressourcennamen (ARN) angeben. Die KMS-Schlüssel-ID und der KMS-Schlüsselalias werden nicht unterstützt.

  2. Führen Sie den head-object Befehl aus, um den aktualisierten Verschlüsselungstyp Ihres Objekts anzuzeigen:

    aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html

Sie können REST-Anfragen senden, um die Verschlüsselung für ein Objekt zu aktualisieren. Weitere Informationen finden Sie unter UpdateObjectEncryption.

Sie können die verwenden AWS SDKs , um die Verschlüsselung für ein Objekt zu aktualisieren. Weitere Informationen finden Sie in der Liste der unterstützten SDKs.

Java
Beispiel

Im folgenden AWS SDK for Java 2.x Beispiel wird der Verschlüsselungstyp für ein Objekt in einem Allzweck-Bucket auf SSE-KMS aktualisiert.

public void updateObjectEncryption(String bucketName, String objectKey, String versionId, String kmsKeyArn, boolean bucketKeyEnabled) { // Create the target object encryption type. ObjectEncryption objectEncryption = ObjectEncryption.builder() .ssekms(SSEKMSEncryption.builder() .kmsKeyArn(kmsKeyArn) .bucketKeyEnabled(bucketKeyEnabled) .build()) .build(); // Create the UpdateObjectEncryption request. UpdateObjectEncryptionRequest request = UpdateObjectEncryptionRequest.builder() .bucket(bucketName) .key(objectKey) .versionId(versionId) .objectEncryption(objectEncryption) .build(); // Update the object encryption. try { getS3Client().updateObjectEncryption(request); logger.info("Object encryption updated to SSE-KMS for {} in bucket {}", objectKey, bucketName); } catch (S3Exception e) { logger.error("Failed to update to object encryption: {} - Error code: {}", e.awsErrorDetails().errorMessage(), e.awsErrorDetails().errorCode()); throw e; } }
Python
Beispiel

Das folgende AWS SDK for Python (Boto3) Beispiel zeigt, wie der Verschlüsselungstyp für ein Objekt in einem Allzweck-Bucket auf SSE-KMS aktualisiert wird.

response = client.update_object_encryption( Bucket='string', Key='string', VersionId='string', ObjectEncryption={ 'SSEKMS': { 'KMSKeyArn': 'string', 'BucketKeyEnabled': True|False } } )