Replikation verschlüsselter Objekte (SSE-S3, SSE -, DSSE - KMSKMS, 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.

Replikation verschlüsselter Objekte (SSE-S3, SSE -, DSSE - KMSKMS, SSE -C)

Wichtig

Amazon S3 wendet jetzt serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) als Basisverschlüsselungsebene 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 S3-Konsole und als zusätzlicher Amazon S3 API S3-Antwort-Header im AWS Command Line Interface und AWS SDKs verfügbar. Weitere Informationen finden Sie unter Standardverschlüsselung FAQ.

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 verwalteten Amazon S3 S3-Schlüsseln (SSE-S3)

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

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

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

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 unterReplikation für verschlüsselte Objekte aktivieren. Weitere Informationen zum Erstellen einer Replikationskonfiguration finden Sie unter Objekte innerhalb und zwischen Regionen replizieren.

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 Schlüsseln für mehrere Regionen 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 verwendenETags, müssen Sie diese Anwendungen aktualisieren, um diesen Unterschied zu berücksichtigen.

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

Replizieren von Objekten, die mit -C verschlüsselt wurden SSE

Durch die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) können Sie Ihre eigenen proprietären Verschlüsselungsschlüssel 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 Sie serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (-C) SSE.

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 dem auf die AWS SDKs gleiche 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.

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

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

Replizieren von Objekten, die mit SSE -S3KMS, SSE - oder - verschlüsselt wurden DSSE KMS

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 unterReplikation für verschlüsselte Objekte aktivieren. Weitere Informationen zum Erstellen einer Replikationskonfiguration finden Sie unter Objekte innerhalb und zwischen Regionen replizieren.

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.

  • Entscheiden Sie sich ausdrücklich dafür, indem Sie die Replikation von Objekten aktivieren, die mithilfe von KMS Schlüsseln (SSE- KMS oder DSSE -) verschlüsselt wurden. KMS 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 Rolle IAM

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

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

    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 s3:GetObjectVersion Aktion die Replikation von unverschlüsselten und SSE -S3-verschlüsselten Objekten, jedoch nicht von Objekten, die mithilfe von Schlüsseln (- oder -) verschlüsselt wurden. KMS SSE KMS DSSE KMS

  • kms:Decryptund kms:Encrypt AWS KMS Aktionen für die Schlüssel KMS

    • 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:GenerateDataKeyAktion zum Replizieren von Klartextobjekten — Wenn Sie Klartextobjekte in einen Bucket replizieren, bei dem SSE die KMS Verschlüsselung standardmäßig aktiviert KMS oder DSSE aktiviert ist, müssen Sie die kms:GenerateDataKey Berechtigung für den Zielverschlüsselungskontext und den KMS Schlüssel in die Richtlinie aufnehmen. IAM

Wir empfehlen, diese Berechtigungen mithilfe von Bedingungsschlüsseln nur auf die Ziel-Buckets und -Objekte zu beschränken. AWS KMS Derjenige, dem die IAM Rolle gehört AWS-Konto , muss über Berechtigungen für die Schlüssel 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 IAM Richtlinien verwenden 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 Key für den Quell- oder Ziel-Bucket aktiviert ist, ist der Verschlüsselungskontext der Amazon-Ressourcenname (ARN) des Buckets, nicht der des Objekts ARN (zum Beispielarn:aws:s3:::bucket_ARN). Sie müssen Ihre IAM Richtlinien aktualisieren, um den Bucket ARN für den Verschlüsselungskontext zu verwenden:

"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 von RESTAPI“) undÄnderungen, die Sie vor dem Aktivieren eines S3-Bucket-Schlüssels beachten sollten.

Beispielrichtlinien: Verwendung von SSE -S3 und SSE - KMS mit Replikation

Die folgenden IAM Beispielrichtlinien zeigen Anweisungen für die Verwendung von SSE -S3 und SSE - KMS bei 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 Objekten, die mit SSE -S3 und - erstellt wurden SSE KMS

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

{ "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 finden Sie eine vollständige IAM Richtlinie, die die erforderlichen Berechtigungen zum Replizieren von Objekten mit S3-Bucket-Keys 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 die Quell- und Ziel-Buckets unterschiedlichen Besitzern gehören, können Sie einen KMS Schlüssel verwenden AWS-Konten, um Objektreplikate zu verschlüsseln. Der KMS Schlüsselbesitzer muss dem Besitzer des Quell-Buckets jedoch die Erlaubnis zur Verwendung des Schlüssels erteilen. KMS

Anmerkung

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

Um dem Besitzer des Quell-Buckets die Erlaubnis zur Verwendung des KMS Schlüssels zu erteilen (Konsole)AWS KMS
  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.

    Das AWS-Konten Dialogfeld „Andere“ wird 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.

Um dem Besitzer des Quell-Buckets die Erlaubnis zur Verwendung des KMS Schlüssels (AWS CLI) zu erteilen

AWS KMS Überlegungen zu Transaktionsquoten

Wenn Sie nach der Aktivierung der regionsübergreifenden Replikation (CRR) viele neue Objekte mit AWS KMS Verschlüsselung hinzufügen, kann es zu Drosselungen (HTTP503 Service UnavailableFehlern) kommen. 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.

Replikation für verschlüsselte Objekte aktivieren

Standardmäßig repliziert Amazon S3 keine Objekte, die mit serverseitiger Verschlüsselung mit AWS Key Management Service (AWS KMS) Schlüsseln (SSE-) oder zweischichtiger serverseitiger Verschlüsselung mit AWS KMS Schlüsseln (-KMS) verschlüsselt wurden. DSSE KMS Um Objekte zu replizieren, die mit SSE - KMS oder DSS - verschlüsselt wurdenKMS, müssen Sie die Bucket-Replikationskonfiguration so ändern, dass Amazon S3 diese Objekte replizieren soll. 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 Key für den Quell- oder Ziel-Bucket aktiviert ist, ist der Verschlüsselungskontext der Amazon-Ressourcenname (ARN) des Buckets, nicht der des ObjektsARN. 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 Schlüsseln für mehrere Regionen im AWS Key Management Service Entwicklerhandbuch.

step-by-stepAnweisungen finden Sie unterKonfiguration der 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. Die Berechtigungen der IAM Rolle beinhalten die erforderlichen Berechtigungen, um die verschlüsselten Objekte zu replizieren.

  • Fügen Sie eine Replikationskonfiguration zum Quell-Bucket hinzu. Die Replikationskonfiguration enthält Informationen zur Replikation von Objekten, die mithilfe KMS von 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:

Wenn Sie die Beispiele in diesem Verfahren verwenden möchten, ersetzen Sie sie durch Ihre eigenen Informationen. user input placeholders

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

    Informationen zum Einrichten von Anmeldeinformationsprofilen und zur Verwendung benannter Profile finden Sie im Benutzerhandbuch unter Konfiguration und Einstellungen für Anmeldeinformationsdateien.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 Replikationskonfiguration an, die Sie dem amzn-s3-demo-source-bucket Bucket später 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. Gehen Sie wie folgt vor, um eine IAM Servicerolle zu erstellen:

      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 gewährt dem Amazon S3-Serviceprinzipal die Erlaubnis, die Rolle zu übernehmen, sodass Amazon S3 Aufgaben in Ihrem Namen ausfü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 ihr die Richtlinie später hinzufügen.

        Wichtig

        In der Berechtigungsrichtlinie geben Sie den AWS KMS Schlüssel anIDs, 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 geben Sie die IAM Rolle an, die Amazon S3 übernehmen 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 im Benutzerhandbuch unter Erteilen von Benutzerberechtigungen zur Übergabe einer Rolle AWS-Service an einen. IAM

    <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 Für das müssen Sie die Replikationskonfiguration als angebenJSON. Speichern Sie Folgendes JSON 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 denJSON, um Werte für den amzn-s3-demo-destination-bucket BucketAWS KMS key IDs (in ARN format), und anzugebenIAM-role-ARN. 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 zum Verschlüsseln der Objekte angeben.

    4. Stellen Sie sicher, dass der amzn-s3-demo-destination-bucket Bucket die Objektreplikate enthält und dass sie mit dem KMS Schlüssel 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 Mit dem AWS SDKs. Sie müssen die Replikationskonfiguration entsprechend ändern.