Wie behebe ich kontoübergreifende Amazon S3-Replikationsprobleme?
Objekte aus meinem Quell-Bucket von Amazon Simple Storage Service (Amazon S3) in einem AWS-Konto können im Ziel-Bucket eines anderen AWS-Kontos nicht repliziert werden.
Behebung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Überprüfung der IAM-Richtlinie, die der Replikations-IAM-Rolle zugeordnet ist
Um Amazon S3-Replikationsfehler zu beheben, stelle sicher, dass du die richtigen Berechtigungen erteilst.
Wenn das Quell-Bucket-Objekt Tags enthält, stelle sicher, dass die Richtlinien für die AWS Identity and Access Management (IAM, Identitäts und Zugriffsmanagement)-Replikationsrolle und den Ziel-Bucket die Aktion s3:ReplicateTags zulassen.
Wenn du die Replikationsregel auf Change object ownership to the destination bucket owner (Ändern der Objekteigentümerschaft in den Eigentümer des Zielbereichs) festlegst, muss die IAM-Rolle über die Berechtigungen s3:ObjectOwnerOverrideToBucketOwner verfügen.
Die S3-Replikationsregel erstellt automatisch die Replikations-IAM-Rolle mit den erforderlichen Berechtigungen.
Beispiel für eine IAM-Richtlinie für eine Replikations-IAM-Rolle:
{ "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", "s3:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/" } ] }
Wenn du die IAM-Rolle manuell erstellst, erstelle eine Vertrauensrichtlinie, damit Amazon S3 die Rolle übernehmen kann. Verwende dann die IAM-Konsole oder die AWS CLI, um die Richtlinie anzufügen.
Beispiel für eine Vertrauensrichtlinie:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
Der Ziel-Bucket-Richtlinie die erforderlichen Berechtigungen hinzufügen
Stelle sicher, dass die Ziel-Bucket-Richtlinie es der Replikations-IAM-Rolle des Quellkontos ermöglicht, Objekte zu replizieren.
Füge der Bucket-Richtlinie die folgenden Berechtigungen hinzu:
- s3:ReplicateDelete
- s3:ReplicateObject
- s3:ReplicateTags
- s3:ObjectOwnerOverrideToBucketOwner
Beispiel für eine Ziel-Bucket-Richtlinie:
{ "Version":"2012-10-17", "Id":"PolicyForDestinationBucket", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source-bucket-account-ID:role/service-role/source-account-IAM-role" }, "Action":[ "s3:ReplicateDelete", "s3:ReplicateObject", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/" } ] }
Spezifizierung der AWS-KMS-Schlüsselberechtigungen
Um die serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS)-Schlüsseln (SSE-KMS) zu verwenden, musst du den AWS-KMS-Schlüssel des Zielkontos in der Replikationsregel angeben. Außerdem müssen die AWS-KMS-Schlüsselrichtlinien es der Replikations-IAM-Rolle ermöglichen, die Schlüssel für die Verschlüsselung und Entschlüsselung zu verwenden. Weitere Informationen findest du unter Hinzufügen einer Schlüsselrichtlinienanweisung zum lokalen Konto.
Beispiel für eine Replikations-IAM-Rollenrichtlinie für SSE-KMS:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "SourceKmsKeyArn" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": [ "DestinationKmsKeyArn" ] } ] }
Beispiel für eine Ziel-Bucket-Richtlinie für SSE-KMS:
{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/ReplicationIAMRole" }, "Action": [ "kms:Encrypt" ], "Resource": "*" }
Wenn die Quell- oder Ziel-AWS-KMS-Schlüsselrichtlinie die Berechtigung basierend auf dem Verschlüsselungskontext erteilt, überprüfe, ob du Amazon S3-Bucket-Schlüssel verwendest.
Wenn du Amazon S3-Bucket-Schlüssel verwendest, muss der Verschlüsselungskontext für die Ressource auf Bucket-Ebene gelten.
Beispiel für eine Richtlinie:
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ]
Wenn du keine Amazon S3-Bucket-Schlüssel verwendest, muss der Verschlüsselungskontext für die Ressource auf Objekt-Ebene gelten.
Beispiel für eine Richtlinie:
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ]
Hinweis: Ersetze in den vorherigen Beispielrichtlinien amzn-s3-demo-source-bucket und amzn-s3-demo-destination-bucket durch deinen Quell-Bucket-Namen und Ziel-Bucket-Namen.
Überprüfung der SCPs für die Quell- und Zielkonten
Stelle sicher, dass die Service-Kontrollrichtlinien (Service Control Policies, SCPs) in den Quell- und Zielkonten keine Deny (Verweigern)-Anweisungen enthalten.
Ähnliche Informationen
Überwachung der Replikation mithilfe von Metriken, Ereignisbenachrichtigungen und Status
Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)
- Themen
- Storage
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 3 Jahren
AWS OFFICIALAktualisiert vor 8 Monaten