Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C) - 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.

Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)

Wichtig

Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüssel (SSE-S3) als Basisverschlüsselung für jeden Bucket in Amazon S3 an. Ab dem 5. Januar 2023 werden alle neuen Objekt-Uploads auf Amazon S3 ohne zusätzliche Kosten und ohne Auswirkungen auf die Leistung automatisch verschlüsselt. Der automatische Verschlüsselungsstatus für die Standardverschlüsselungskonfiguration des S3-Buckets und für das Hochladen neuer Objekte ist in den AWS CloudTrail Protokollen, im S3-Inventar, in der S3-Speicherlinse, in der Amazon S3-Konsole und als zusätzlicher Amazon S3 S3-API-Antwortheader im AWS Command Line Interface und AWS SDKs verfügbar. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Standardverschlüsselung.

Bei der Replikation von Objekten, die mit der serverseitigen Verschlüsselung verschlüsselt wurden, sind einige besondere Punkte zu beachten. Amazon S3 unterstützt die folgenden Arten von serverseitiger Verschlüsselung:

  • Serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)

  • Serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) Schlüsseln (SSE-KMS)

  • Zweischichtige serverseitige Verschlüsselung mit Schlüsseln (DSSE-KMS) AWS KMS

  • Serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)

Weitere Informationen zur serverseitigen Verschlüsselung finden Sie unter Schützen von Daten mit serverseitiger Verschlüsselung.

In diesem Thema werden die Berechtigungen erläutert, die Sie benötigen, um Amazon S3 anzuweisen, Objekte zu replizieren, die mithilfe serverseitiger Verschlüsselung verschlüsselt wurden. Dieses Thema enthält auch zusätzliche Konfigurationselemente, die Sie hinzufügen können, sowie Beispielrichtlinien AWS Identity and Access Management (IAM), die die erforderlichen Berechtigungen für die Replikation verschlüsselter Objekte gewähren.

Ein Beispiel mit step-by-step Anweisungen finden Sie unter. Aktivieren der Replikation für verschlüsselte Objekte Weitere Informationen zum Erstellen einer Replikationskonfiguration finden Sie unter Replizieren von Objekten innerhalb und zwischen Regionen.

Anmerkung

Sie können Multiregion AWS KMS keys in Amazon S3 verwenden. Amazon S3 behandelt jedoch derzeit Multi-Regions-Schlüssel wie Einzel-Regions-Schlüssel und verwendet nicht die Multi-Regions-Funktionen des Schlüssels. Weitere Informationen finden Sie unter Verwenden von multiregionalen Schlüsseln) im AWS Key Management Service -Entwicklerhandbuch.

So wirkt sich die Standard-Bucket-Verschlüsselung auf die Replikation aus

Wenn Sie die Standard-Verschlüsselung für einen Replikations-Ziel-Bucket aktivieren, gilt das folgende Verschlüsselungsverhalten:

  • Wenn Objekte im Quell-Bucket nicht verschlüsselt sind, werden die Replikatobjekte im Ziel-Bucket mithilfe der Einstellungen der Standard-Verschlüsselung des Ziel-Buckets verschlüsselt. Infolgedessen unterscheiden sich die Entity-Tags (ETags) der Quellobjekte von denen ETags der Replikatobjekte. Wenn Sie Anwendungen haben, die dies verwenden ETags, müssen Sie diese Anwendungen aktualisieren, um diesem Unterschied Rechnung zu tragen.

  • Wenn Objekte im Quell-Bucket mit serverseitiger Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3), serverseitiger Verschlüsselung mit () -Schlüsseln AWS Key Management Service (SSE-KMS AWS KMS) oder zweischichtiger serverseitiger Verschlüsselung mit AWS KMS Schlüsseln (DSSE-KMS) verschlüsselt werden, verwenden die Replikatobjekte im Ziel-Bucket dieselbe Art der Verschlüsselung wie die Quellobjekte. Die Einstellungen der Standard-Verschlüsselung des Ziel-Buckets werden nicht verwendet.

Mit SSE-C verschlüsselte Objekte replizieren

Die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) gestattet Ihnen, Ihre eigenen Verschlüsselungsschlüssel zu verwalten. Mit SSE-C verwalten Sie die Schlüssel, während Amazon S3 den Verschlüsselungs- und Entschlüsselungsprozess verwaltet. Sie müssen einen Verschlüsselungsschlüssel als Teil Ihrer Anfrage angeben, brauchen aber keinen Code zu schreiben, um die Objektverschlüsselung oder -entschlüsselung durchzuführen. Wenn Sie ein Objekt hochladen, verschlüsselt Amazon S3 das Objekt mithilfe des von Ihnen angegebenen Schlüssels. Amazon S3 löscht diesen Schlüssel dann aus dem Speicher. Wenn Sie ein Objekt abrufen, müssen Sie denselben Verschlüsselungsschlüssel als Teil Ihrer Anfrage angeben. Weitere Informationen finden Sie unter Verwenden von serverseitiger Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C).

Die S3-Replikation unterstützt Objekte, die mit SSE-C verschlüsselt sind. Sie können die SSE-C-Objektreplikation in der Amazon S3 S3-Konsole oder mit der AWS SDKs auf dieselbe Weise konfigurieren, wie Sie die Replikation für unverschlüsselte Objekte konfigurieren. Es gibt keine zusätzlichen SSE-C-Berechtigungen, die über das hinausgehen, was derzeit für die Replikation erforderlich ist.

Die S3-Replikation repliziert automatisch neu hochgeladene mit SSE-C verschlüsselte Objekte, sofern sie wie in Ihrer S3-Replikationskonfiguration angegeben infrage kommen. Verwenden Sie die S3-Batchreplikation, um vorhandene Objekte in Ihren Buckets zu replizieren. Weitere Informationen zum Replizieren von Objekten finden Sie unter Einrichten einer Live-Replikation – Überblick und Replizieren vorhandener Objekte mit der Batch-Replikation.

Für die Replikation von SSE-C-Objekten fallen keine zusätzlichen Gebühren an. Einzelheiten zu den Replikationspreisen finden Sie unter Amazon S3 – Preise.

Replizieren von mit SSE-S3, SSE-KMS oder DSSE-KMS verschlüsselten Objekten

Standardmäßig repliziert Amazon S3 keine Objekte, die mit SSE-KMS oder DSSE-KMS verschlüsselt sind. In diesem Abschnitt werden die zusätzlichen Konfigurationselemente erörtert, die Sie hinzufügen können, um Amazon S3 anzuweisen, diese Objekte zu replizieren.

Ein Beispiel mit step-by-step Anweisungen finden Sie unter. Aktivieren der Replikation für verschlüsselte Objekte Weitere Informationen zum Erstellen einer Replikationskonfiguration finden Sie unter Replizieren von Objekten innerhalb und zwischen Regionen.

Angeben zusätzlicher Informationen in der Replikations-Konfiguration

In der Replikations-Konfiguration machen Sie Folgendes:

  • Fügen Sie in dem Destination Element in Ihrer Replikationskonfiguration die ID des symmetrischen, vom AWS KMS Kunden verwalteten Schlüssels hinzu, den Amazon S3 zur Verschlüsselung von Objektreplikaten verwenden soll, wie in der folgenden Beispiel-Replikationskonfiguration gezeigt.

  • Melden Sie sich ausdrücklich an, indem Sie die Replikation von Objekten aktivieren, die mit KMS-Schlüsseln (SSE-KMS oder DSSE-KMS) verschlüsselt wurden. Fügen Sie dazu das SourceSelectionCriteria-Element hinzu, wie im folgenden Beispiel einer Replikationskonfiguration dargestellt.

<ReplicationConfiguration> <Rule> ... <SourceSelectionCriteria> <SseKmsEncryptedObjects> <Status>Enabled</Status> </SseKmsEncryptedObjects> </SourceSelectionCriteria> <Destination> ... <EncryptionConfiguration> <ReplicaKmsKeyID>AWS KMS key ARN or Key Alias ARN that's in the same AWS-Region as the destination bucket.</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> ... </Rule> </ReplicationConfiguration>
Wichtig
  • Der KMS-Schlüssel muss im selben Ordner AWS-Region wie der Ziel-Bucket erstellt worden sein.

  • Der KMS-Schlüssel muss gültig sein. Die PutBucketReplication-API-Operation überprüft nicht die Gültigkeit von KMS-Schlüsseln. Wenn Sie einen ungültigen KMS-Schlüssel verwenden, erhalten Sie als Antwort den HTTP-200 OK-Statuscode, aber die Replikation schlägt fehl.

Das folgende Beispiel zeigt eine Replikationskonfiguration, die optionale Konfigurationselemente enthält. Diese Replikations-Konfiguration weist eine Regel auf. Die Regel wird auf alle Objekte mit dem Schlüsselpräfix Tax angewendet. Amazon S3 verwendet die angegebene AWS KMS key ID, um diese Objektreplikate zu verschlüsseln.

<?xml version="1.0" encoding="UTF-8"?> <ReplicationConfiguration> <Role>arn:aws:iam::account-id:role/role-name</Role> <Rule> <ID>Rule-1</ID> <Priority>1</Priority> <Status>Enabled</Status> <DeleteMarkerReplication> <Status>Disabled</Status> </DeleteMarkerReplication> <Filter> <Prefix>Tax</Prefix> </Filter> <Destination> <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket> <EncryptionConfiguration> <ReplicaKmsKeyID>AWS KMS key ARN or Key Alias ARN that's in the same AWS-Region as the destination bucket.</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> <SourceSelectionCriteria> <SseKmsEncryptedObjects> <Status>Enabled</Status> </SseKmsEncryptedObjects> </SourceSelectionCriteria> </Rule> </ReplicationConfiguration>

Erteilen zusätzlicher Berechtigungen für die IAM-Rolle

Um Objekte zu replizieren, die im Ruhezustand mithilfe von SSE-S3, SSE-KMS oder DSSE-KMS verschlüsselt wurden, gewähren Sie der AWS Identity and Access Management (IAM-) Rolle, die Sie in der Replikationskonfiguration angeben, die folgenden zusätzlichen Berechtigungen. Sie erteilen diese Berechtigungen, indem Sie die mit der IAM-Rolle verknüpfte Berechtigungsrichtlinie aktualisieren.

  • s3:GetObjectVersionForReplication-Aktion für Quellobjekte – Diese Aktion ermöglicht Amazon S3, sowohl unverschlüsselte Objekte als auch Objekte, die mit serverseitiger Verschlüsselung mit SSE-S3, SSE-KMS oder DSSE-KMS erstellt wurden, zu replizieren.

    Anmerkung

    Wir empfehlen, dass Sie die Aktion s3:GetObjectVersionForReplication statt der Aktion s3:GetObjectVersion verwenden, da s3:GetObjectVersionForReplication Amazon S3 nur die minimalen Berechtigungen bereitstellt, die für eine Replikation nötig sind. Darüber hinaus ermöglicht die Aktion s3:GetObjectVersion die Replikation von unverschlüsselten und über SSE-S3 verschlüsselten Objekten, nicht aber von Objekten, die mit KMS-Schlüsseln (SSE-KMS oder DSSE-KMS) verschlüsselt wurden.

  • kms:Decryptkms:Encrypt AWS KMS und Aktionen für die KMS-Schlüssel

    • Sie müssen kms:Decrypt-Berechtigungen für den AWS KMS key gewähren, der zum Entschlüsseln des Quellobjekts verwendet wird.

    • Sie müssen kms:Encrypt-Berechtigungen für den AWS KMS key gewähren, der zum Verschlüsseln des Objektreplikats verwendet wird.

  • kms:GenerateDataKey-Aktion zur Replikation von Klartextobjekten – Wenn Sie Klartextobjekte in einen Bucket replizieren, für den die SSE-KMS- oder DSSE-KMS-Verschlüsselung standardmäßig aktiviert ist, müssen Sie die kms:GenerateDataKey-Berechtigung für den Zielverschlüsselungskontext und den KMS-Schlüssel zur IAM-Richtlinie hinzufügen.

Es wird empfohlen, diese Berechtigungen mithilfe von AWS KMS Bedingungsschlüsseln nur auf die Ziel-Buckets und -Objekte zu beschränken. Derjenige AWS-Konto , dem die IAM-Rolle gehört, muss über Berechtigungen für die kms:Encrypt und kms:Decrypt Aktionen für die KMS-Schlüssel verfügen, die in der Richtlinie aufgeführt sind. Wenn die KMS-Schlüssel einer anderen Person gehören AWS-Konto, muss der Besitzer der KMS-Schlüssel diese Berechtigungen demjenigen gewähren AWS-Konto , dem die IAM-Rolle gehört. Weitere Informationen zur Verwaltung des Zugriffs auf diese KMS-Schlüssel finden Sie unter Verwenden von IAM-Richtlinien mit AWS KMS im AWS Key Management Service Entwicklerhandbuch.

S3 Bucket-Schlüssel und Replikation

Um die Replikation mit einem S3-Bucket-Schlüssel zu verwenden, muss die AWS KMS key Richtlinie für den KMS-Schlüssel, der zum Verschlüsseln des Objektreplikats verwendet wird, die kms:Decrypt Berechtigung für den aufrufenden Prinzipal enthalten. Der Aufruf zur kms:Decrypt Überprüfung der Integrität des S3-Bucket-Schlüssels, bevor er verwendet wird. Weitere Informationen finden Sie unter Verwenden eines S3-Bucket-Schlüssels mit Replikation.

Wenn ein S3-Bucket-Schlüssel für den Quell- oder Ziel-Bucket aktiviert ist, ist der Verschlüsselungskontext der Amazon-Ressourcenname (ARN) des Buckets, nicht der Objekt-ARN (z. B. arn:aws:s3:::bucket_ARN). Sie müssen Ihre IAM-Richtlinien aktualisieren, um den Bucket-ARN für den Verschlüsselungskontext verwenden zu können:

"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::bucket_ARN" ]

Weitere Informationen finden Sie unter Verschlüsselungskontext (x-amz-server-side-encryption-context) (im Abschnitt „Verwenden der REST-API“ und unter Änderungen, die Sie vor dem Aktivieren eines S3-Bucket-Schlüssels beachten sollten.

Beispielrichtlinien: Verwenden von SSE-S3 und SSE-KMS bei der Replikation

Die folgenden IAM-Beispielrichtlinien zeigen Anweisungen für die Verwendung von SSE-S3 und SSE-KMS bei der Replikation.

Beispiel – Verwenden von SSE-KMS mit separaten Ziel-Buckets

Die folgende Beispielrichtlinie zeigt Anweisungen zur Verwendung von SSE-KMS mit separaten Ziel-Buckets.

{ "Version":"2012-10-17", "Statement":[ { "Action": ["kms:Decrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*" ] } }, "Resource": [ "List of AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action": ["kms:Encrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.destination-bucket-1-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket1/key-prefix1*" ] } }, "Resource": [ "AWS KMS key ARNs (in the same AWS-Region as destination bucket 1). Used to encrypt object replicas created in destination bucket 1." ] }, { "Action": ["kms:Encrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.destination-bucket-2-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket2/key-prefix1*" ] } }, "Resource": [ "AWS KMS key ARNs (in the same AWS-Region as destination bucket 2). Used to encrypt object replicas created in destination bucket 2." ] } ] }
Beispiel – Replizieren von mit SSE-S3 und SSE-KMS erstellten Objekten

Im Folgenden sehen Sie eine vollständige IAM-Richtlinie, die die erforderlichen Berechtigungen zum Replizieren von unverschlüsselten Objekten, Objekten, die mit SSE-S3 erstellt wurden, und Objekten, die mit SSE-KMS erstellt wurden, gewährt.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/key-prefix1*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*" ] } }, "Resource":[ "List of the AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.destination-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-destination-bucket/prefix1*" ] } }, "Resource":[ "AWS KMS key ARNs (in the same AWS-Region as the destination bucket) to use for encrypting object replicas" ] } ] }
Beispiel – Replizieren von Objekten mit S3-Bucket-Schlüsseln

Im Folgenden sehen Sie eine vollständige IAM-Richtlinie, die die erforderlichen Berechtigungen zum Replizieren von Objekten mit S3-Bucket-Schlüsseln gewährt.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/key-prefix1*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] } }, "Resource":[ "List of the AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.destination-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ] } }, "Resource":[ "AWS KMS key ARNs (in the same AWS-Region as the destination bucket) to use for encrypting object replicas" ] } ] }

Erteilen von zusätzlichen Berechtigungen für kontenübergreifende Szenarien

In einem kontoübergreifenden Szenario, in dem Quell- und Ziel-Bucket unterschiedlichen Besitzern gehören, können Sie einen KMS-Schlüssel verwenden AWS-Konten, um Objektreplikate zu verschlüsseln. Der KMS-Schlüssel-Besitzer muss dem Besitzer des Quell-Buckets jedoch die Berechtigung erteilen, den KMS-Schlüssel zu verwenden.

Anmerkung

Wenn Sie SSE-KMS-Daten kontenübergreifend replizieren müssen, muss Ihre Replikationsregel einen vom Kunden verwalteten Schlüssel für das Zielkonto angeben. AWS KMS Von AWS verwaltete Schlüsselerlauben keine kontoübergreifende Verwendung und können daher nicht für die kontenübergreifende Replikation verwendet werden.

So erteilen Sie dem Quell-Bucket-Eigentümer die Berechtigung zur Verwendung des KMS-Schlüssels (AWS KMS -Konsole)
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS KMS Konsole unter https://console.aws.amazon.com /kms.

  2. Um das zu ändern AWS-Region, verwenden Sie die Regionsauswahl in der oberen rechten Ecke der Seite.

  3. Zum Anzeigen der Schlüssel in Ihrem Konto, die Sie erstellen und verwalten, wählen Sie im Navigationsbereich Customer managed keys (Vom Kunden verwaltete Schlüssel) aus.

  4. Wählen Sie den KMS-Schlüssel aus.

  5. Wählen Sie unter Allgemeine Konfiguration den Tab Schlüsselrichtlinie aus.

  6. Scrollen Sie nach unten zu „Andere“. AWS-Konten

  7. Wählen Sie Andere hinzufügen AWS-Konten.

    Daraufhin wird das Dialogfeld Other AWS-Konten (Andere AWS-Konten) angezeigt.

  8. Wählen Sie im Dialogfeld „Weitere hinzufügen“ aus AWS-Konto. Für arn:aws:iam::In geben Sie die Konto-ID des Quell-Buckets ein.

  9. Wählen Sie Änderungen speichern.

So erteilen Sie dem Quell-Bucket-Eigentümer die Berechtigung zur Verwendung des KMS-Schlüssels (AWS CLI)

AWS KMS Überlegungen zum Transaktionskontingent

Wenn Sie nach der Aktivierung der regionsübergreifenden Replikation (CRR) viele neue Objekte mit AWS KMS Verschlüsselung hinzufügen, kann es zu Drosselungen (HTTP-Fehler) kommen. 503 Service Unavailable Die Drosselung erfolgt, wenn die Anzahl an AWS KMS -Transaktionen pro Sekunde das aktuelle Kontingent überschreitet. Weitere Informationen finden Sie unter Kontingente im AWS Key Management Service -Entwicklerhandbuch.

Zum Anfordern einer Erhöhung für ein Kontingent verwenden Sie Service-Quotas verwenden. Weitere Informationen finden Sie unter Anfordern einer Kontingenterhöhung. Wenn Service Quotas in Ihrer Region nicht unterstützt werden, öffnen Sie einen AWS -Support Fall.

Aktivieren der Replikation für verschlüsselte Objekte

Standardmäßig repliziert Amazon S3 keine Objekte, die mit serverseitiger Verschlüsselung mit () -Schlüsseln AWS Key Management Service (SSE-KMS AWS KMS) oder zweischichtiger serverseitiger Verschlüsselung mit Schlüsseln (DSSE-KMS) verschlüsselt wurden. AWS KMS Um mit SSE-KMS oder DSSE-KMS verschlüsselte Objekte zu replizieren, müssen Sie die Bucket-Replikationskonfiguration ändern und weisen damit Amazon S3 an, diese Objekte zu replizieren. In diesem Beispiel wird erklärt, wie Sie die Amazon S3 S3-Konsole und die AWS Command Line Interface (AWS CLI) verwenden, um die Bucket-Replikationskonfiguration zu ändern, um die Replikation verschlüsselter Objekte zu ermöglichen.

Anmerkung

Wenn ein S3-Bucket-Schlüssel für den Quell- oder Ziel-Bucket aktiviert ist, ist der Verschlüsselungskontext der Amazon-Ressourcenname (ARN) des Buckets, nicht der Objekt-ARN. Sie müssen Ihre IAM-Richtlinien aktualisieren, um den Bucket-ARN für den Verschlüsselungskontext verwenden zu können. Weitere Informationen finden Sie unter S3 Bucket-Schlüssel und Replikation.

Anmerkung

Sie können Multiregion AWS KMS keys in Amazon S3 verwenden. Amazon S3 behandelt jedoch derzeit Multi-Regions-Schlüssel wie Einzel-Regions-Schlüssel und verwendet nicht die Multi-Regions-Funktionen des Schlüssels. Weitere Informationen finden Sie unter Verwenden von multiregionalen Schlüsseln) im AWS Key Management Service -Entwicklerhandbuch.

step-by-stepAnweisungen finden Sie unterKonfigurieren einer Replikation für Buckets im selben Konto. Dieses Thema enthält Anweisungen zum Einrichten einer Replikationskonfiguration, wenn Quell- und Ziel-Buckets denselben und unterschiedlichen AWS-Konten Besitzern gehören.

Um verschlüsselte Objekte mit dem zu replizieren AWS CLI, gehen Sie wie folgt vor:

  • Erstellen Sie Quell- und Ziel-Buckets und aktivieren Sie die Versionsverwaltung für diese Buckets.

  • Erstellen Sie eine AWS Identity and Access Management (IAM) -Servicerolle, die Amazon S3 die Berechtigung erteilt, Objekte zu replizieren. Zu den Berechtigungen für die IAM-Rolle gehören die, die zum Replizieren der verschlüsselten Objekte notwendig sind.

  • Fügen Sie eine Replikationskonfiguration zum Quell-Bucket hinzu. Die Replikationskonfiguration stellt Informationen zur Replizierung von Objekten bereit, die mit KMS-Schlüsseln verschlüsselt wurden.

  • Fügen Sie verschlüsselte Objekte zum Quell-Bucket hinzu.

  • Testen Sie die Einrichtung, um sicherzustellen, dass Ihre verschlüsselten Objekte in den Ziel-Bucket repliziert werden.

Die folgenden Verfahren führen Sie durch diesen Prozess.

Replizieren Sie serverseitig verschlüsselte Objekte (AWS CLI) wie folgt:

Die Beispiele in diesem Verfahren können Sie verwenden, indem Sie die user input placeholders durch Ihre eigenen Informationen ersetzen.

  1. In diesem Beispiel erstellen Sie den Quell-Bucket (amzn-s3-demo-source-bucket) und den Ziel-Bucket (amzn-s3-demo-destination-bucket) im selben AWS-Konto. Sie richten auch das Anmeldeinformationsprofil für die AWS CLI ein. Dieses Beispiel verwendet den Profilnamen acctA.

    Informationen zum Einrichten der Anmeldeinformations-Profile und der Verwendung benannter Profile finden Sie unter Einstellungen der Konfigurations- und Anmeldeinformationsdatei im Benutzerhandbuch zur AWS Command Line Interface .

  2. Verwenden Sie die folgenden Befehle, um den amzn-s3-demo-source-bucket-Bucket zu erstellen und die Versionsverwaltung für diesen zu aktivieren. Mit den folgenden Beispielbefehlen wird der amzn-s3-demo-source-bucket-Bucket in der Region USA Ost (Nord-Virginia) (us-east-1) erstellt.

    aws s3api create-bucket \ --bucket amzn-s3-demo-source-bucket \ --region us-east-1 \ --profile acctA
    aws s3api put-bucket-versioning \ --bucket amzn-s3-demo-source-bucket \ --versioning-configuration Status=Enabled \ --profile acctA
  3. Verwenden Sie die folgenden Befehle, um den amzn-s3-demo-destination-bucket-Bucket zu erstellen und die Versionsverwaltung für diesen zu aktivieren. Mit den folgenden Beispielbefehlen wird der amzn-s3-demo-destination-bucket-Bucket in der Region USA West (Oregon) (us-west-2) erstellt.

    Anmerkung

    Um eine Replikationskonfiguration einzurichten, wenn sich amzn-s3-demo-source-bucket- und amzn-s3-demo-destination-bucket-Bucket im selben AWS-Konto befinden, verwenden Sie dasselbe Profil. Dieses Beispiel verwendet acctA. Um die Replikation zu konfigurieren, wenn die Buckets unterschiedlichen Besitzern gehören AWS-Konten, geben Sie für jeden Bucket unterschiedliche Profile an.

    aws s3api create-bucket \ --bucket amzn-s3-demo-destination-bucket \ --region us-west-2 \ --create-bucket-configuration LocationConstraint=us-west-2 \ --profile acctA
    aws s3api put-bucket-versioning \ --bucket amzn-s3-demo-destination-bucket \ --versioning-configuration Status=Enabled \ --profile acctA
  4. Als Nächstes erstellen Sie eine IAM-Servicerolle. Sie geben diese Rolle in der Replizierungskonfiguration an, die Sie später zum amzn-s3-demo-source-bucket-Bucket hinzufügen. Amazon S3 übernimmt diese Rolle, um Objekte in Ihrem Namen zu replizieren. Sie erstellen eine IAM-Rolle in zwei Schritten:

    • Erstellen Sie eine Servicerolle.

    • Fügen Sie eine Berechtigungsrichtlinie zur Rolle hinzu.

    1. Um eine IAM-Servicerolle zu erstellen, gehen Sie wie folgt vor:

      1. Kopieren Sie die folgende Vertrauensrichtlinie und speichern Sie sie in einer Datei mit dem Namen s3-role-trust-policy-kmsobj.json im aktuellen Verzeichnis auf Ihrem lokalen Computer. Diese Richtlinie erteilt dem Amazon-S3-Service Prinzipal-Berechtigungen zum Übernehmen der Rolle, damit Amazon S3 Aufgaben in Ihrem Namen durchführen kann.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. Verwenden Sie den folgenden Befehl, um die Rolle zu erstellen:

        $ aws iam create-role \ --role-name replicationRolekmsobj \ --assume-role-policy-document file://s3-role-trust-policy-kmsobj.json \ --profile acctA
    2. Als Nächstes fügen Sie eine Berechtigungsrichtlinie zur Rolle hinzu. Diese Zugriffsrichtlinie erteilt Berechtigungen für verschiedene Amazon-S3-Bucket- und -Objektaktionen.

      1. Kopieren Sie die folgende Berechtigungsrichtlinie und speichern Sie sie in einer Datei mit dem Namen s3-role-permissions-policykmsobj.json im aktuellen Verzeichnis auf Ihrem lokalen Computer. Sie werden eine IAM-Rolle erstellen und fügen ihr später die Richtlinie an.

        Wichtig

        In der Berechtigungsrichtlinie geben Sie den AWS KMS Schlüssel an IDs , der für die Verschlüsselung der amzn-s3-demo-destination-bucket Buckets amzn-s3-demo-source-bucket und verwendet wird. Sie müssen zwei separate KMS-Schlüssel für die amzn-s3-demo-destination-bucket Buckets amzn-s3-demo-source-bucket und erstellen. AWS KMS keys werden nicht außerhalb des Bereichs geteilt, AWS-Region in dem sie erstellt wurden.

        { "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration", "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket", "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] }, { "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Effect":"Allow", "Condition":{ "StringLikeIfExists":{ "s3:x-amz-server-side-encryption":[ "aws:kms", "AES256", "aws:kms:dsse" ], "s3:x-amz-server-side-encryption-aws-kms-key-id":[ "AWS KMS key IDs(in ARN format) to use for encrypting object replicas" ] } }, "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] } }, "Resource":[ "AWS KMS key IDs(in ARN format) used to encrypt source objects." ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.us-west-2.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] } }, "Resource":[ "AWS KMS key IDs (in ARN format) to use for encrypting object replicas" ] } ] }
      2. Erstellen Sie eine Richtlinie und hängen Sie sie an die Rolle an.

        $ aws iam put-role-policy \ --role-name replicationRolekmsobj \ --policy-document file://s3-role-permissions-policykmsobj.json \ --policy-name replicationRolechangeownerPolicy \ --profile acctA
  5. Als Nächstes fügen Sie die folgende Replikationskonfiguration zum amzn-s3-demo-source-bucket-Bucket hinzu. Sie weist Amazon S3 an, Objekte mit dem Präfix Tax/ in den amzn-s3-demo-destination-bucket-Bucket zu replizieren.

    Wichtig

    In der Replikationskonfiguration legen Sie die IAM-Rolle fest, die Amazon S3 annehmen kann. Dies können Sie nur tun, wenn Sie über die iam:PassRole-Berechtigung verfügen. Das Profil, das Sie im CLI-Befehl angeben, muss über diese Berechtigung verfügen. Weitere Informationen finden Sie unter Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS-Serviceübergeben kann im IAM-Benutzerhandbuch.

    <ReplicationConfiguration> <Role>IAM-Role-ARN</Role> <Rule> <Priority>1</Priority> <DeleteMarkerReplication> <Status>Disabled</Status> </DeleteMarkerReplication> <Filter> <Prefix>Tax</Prefix> </Filter> <Status>Enabled</Status> <SourceSelectionCriteria> <SseKmsEncryptedObjects> <Status>Enabled</Status> </SseKmsEncryptedObjects> </SourceSelectionCriteria> <Destination> <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket> <EncryptionConfiguration> <ReplicaKmsKeyID>AWS KMS key IDs to use for encrypting object replicas</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> </Rule> </ReplicationConfiguration>

    Um eine Replikationskonfiguration zum amzn-s3-demo-source-bucket-Bucket hinzuzufügen, gehen Sie wie folgt vor:

    1. AWS CLI Dazu müssen Sie die Replikationskonfiguration als JSON angeben. Speichern Sie den folgenden JSON-Code in einer Datei (replication.json) im aktuellen Verzeichnis auf Ihrem lokalen Computer.

      { "Role":"IAM-Role-ARN", "Rules":[ { "Status":"Enabled", "Priority":1, "DeleteMarkerReplication":{ "Status":"Disabled" }, "Filter":{ "Prefix":"Tax" }, "Destination":{ "Bucket":"arn:aws:s3:::amzn-s3-demo-destination-bucket", "EncryptionConfiguration":{ "ReplicaKmsKeyID":"AWS KMS key IDs (in ARN format) to use for encrypting object replicas" } }, "SourceSelectionCriteria":{ "SseKmsEncryptedObjects":{ "Status":"Enabled" } } } ] }
    2. Bearbeiten Sie den JSON-Code, um Werte für den amzn-s3-demo-destination-bucket-Bucket, die AWS KMS key IDs (in ARN format) und den IAM-role-ARN anzugeben. Speichern Sie die Änderungen.

    3. Verwenden Sie den folgenden Befehl, um die Replikationskonfiguration zu Ihrem amzn-s3-demo-source-bucket-Bucket hinzuzufügen. Stellen Sie sicher, dass Sie den Namen für den amzn-s3-demo-source-bucket-Bucket angeben.

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket amzn-s3-demo-source-bucket \ --profile acctA
  6. Testen Sie die Konfiguration, um zu überprüfen, ob die verschlüsselten Objekte repliziert werden. Führen Sie in der Amazon-S3-Konsole die folgenden Schritte aus:

    1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

    2. Erstellen Sie im amzn-s3-demo-source-bucket-Bucket einen Ordner mit dem Namen Tax.

    3. Fügen Sie Beispielobjekte zum Ordner hinzu. Stellen Sie sicher, dass Sie die Verschlüsselungsoption wählen und Ihren KMS-Schlüssel angeben, um die Objekte zu verschlüsseln.

    4. Vergewissern Sie sich, dass der amzn-s3-demo-destination-bucket-Bucket die Objektreplikate enthält und dass sie mithilfe des KMS-Schlüssels verschlüsselt sind, den Sie in der Konfiguration angegeben haben. Weitere Informationen finden Sie unter Abrufen von Replikationsstatusinformationen.

Ein Code-Beispiel, das zeigt, wie eine Replikationskonfiguration hinzugefügt wird, finden Sie unter Verwenden Sie den AWS SDKs. Sie müssen die Replikationskonfiguration entsprechend ändern.