Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Warum werden meine Amazon S3-Objekte nicht repliziert, wenn ich die Replikation zwischen meinen Buckets einrichte?
Ich habe die Replikation zwischen meinen Allzweck-Buckets von Amazon Simple Storage Service (Amazon S3) eingerichtet. Die Objekte werden jedoch nicht in den Ziel-Bucket repliziert, der sich in derselben AWS-Region oder einer anderen Region befindet.
Kurzbeschreibung
Hinweis: Du kannst die Amazon S3 Replication nur für Allzweck-Buckets verwenden. Du kannst die Replikation nicht für Verzeichnis-Buckets und Tabellen-Buckets verwenden.
Um Fehler bei Amazon S3-Objekten zu beheben, die sich nicht für die regionsübergreifende Replikation (CRR) oder die Replikation derselben Region (SRR) replizieren, überprüfe deine Ziel-Bucket-Berechtigungen. Überprüfe auch die Einstellungen für den öffentlichen Zugriff und die Einstellungen für das Bucket-Eigentum.
Nachdem du die Probleme behoben hast, die zum Fehlschlagen der Replikation geführt haben, befinden sich möglicherweise Objekte im Quell-Bucket, die immer noch nicht repliziert wurden. Standardmäßig repliziert die Amazon S3 Replication keine vorhandenen Objekte oder Objekte mit dem Replikationsstatus FAILED oder REPLICA. Informationen zum Überprüfen des Replikationsstatus der Objekte findest du unter Wie zeige ich Objekte an, bei denen die Replikation von einem Amazon S3-Bucket in einen anderen fehlgeschlagen ist? Verwende für diese Objekte S3 Batch Replication.
Lösung
Probleme beim Einrichten der Replikation identifizieren
Lade ein Objekt in den Quell-Bucket hoch, um die Replikation nach jeder Konfigurationsänderung zu testen. Es hat sich bewährt, eine Konfiguration nach der anderen zu ändern, um etwaige Probleme bei der Replikationseinrichtung zu identifizieren.
Aktiviere außerdem die Benachrichtigung vom Ereignistyp s3:Replication:OperationFailedReplication, um die Ursache des Fehlers zu ermitteln.
Mindestberechtigungen für Amazon S3 gewähren
Vergewissere dich, dass die AWS Identity Access Management (IAM, Identitäts- und Zugriffsmamagement)-Rolle, die du in der Replikationsregel verwendet hast, über die richtigen Berechtigungen verfügt. Wenn sich die Quell- und Ziel-Buckets in unterschiedlichen AWS-Konten befinden, vergewissere dich, dass die Bucket-Richtlinie des Zielkontos auch der Replikationsrolle Berechtigungen gewährt. Das folgende Beispiel einer IAM-Richtlinie verfügt über die erforderlichen Mindestberechtigungen für die Replikation:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::SourceBucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::SourceBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ReplicateTags" ], "Resource": "arn:aws:s3:::DestinationBucket/*" } ] }
Hinweis: Ersetze SourceBucket durch deinen Quell-Bucket und DestinationBucket durch deinen Ziel-Bucket.
Je nach den Optionen für die Replikationsregeln musst du möglicherweise zusätzliche Berechtigungen gewähren.
Die IAM-Rolle muss über eine Vertrauensrichtlinie verfügen, die es Amazon S3 ermöglicht, die Rolle zur Replikation von Objekten zu übernehmen. Beispiel für eine Vertrauensrichtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Zusätzliche Amazon S3-Berechtigungen gewähren
Wenn du die Replikationsregel auf Change object ownership to the destination bucket owner (Ändern der Objekteigentümerschaft in den Eigentümer des Zielbereichs) festlegst, musst du zusätzliche Berechtigungen konfigurieren.
Hinweis: Wenn die Objekteigentűmerschaft des Ziel-Buckets Bucket-Eigentümer erzwungen ist, musst du in der Replikationsregel nicht die Objekteigentűmerschaft in den Eigentümer des Ziel-Buckets ändern. Die Änderung erfolgt standardmäßig.
Um der IAM-Rolle die s3:ObjectOwnerOverrideToBucketOwner-Berechtigungen zu gewähren, füge der Amazon S3-Objektrichtlinie die folgende Berechtigung hinzu:
{ "Effect": "Allow", "Action": [ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
Hinweis: Ersetze DestinationBucket durch deinen Ziel-Bucket.
Füge außerdem die folgende s3:ObjectOwnerOverrideToBucketOwner-Berechtigung in die Bucket-Richtlinie für das Zielkonto hinzu:
{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
Hinweis: Ersetze SourceBucket-account-ID durch das Quell-Bucket-Konto, source-account-IAM-role durch die IAM-Rolle des Quellkontos und DestinationBucket durch den Ziel-Bucket.
Wenn du Replikation der Löschmarkierung in der Replikationsregel aktiviert hast, muss die IAM-Rolle über die folgenden s3:ReplicateDelete-Berechtigungen verfügen:
{ "Effect": "Allow", "Action": [ "s3:ReplicateDelete" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
Hinweis: Ersetze DestinationBucket durch deinen Ziel-Bucket.
Wenn sich der Ziel-Bucket in einem anderen Konto befindet, muss der Eigentümer des Ziel-Buckets die Berechtigung ebenfalls in der Bucket-Richtlinie hinzufügen:
{ "Version": "2012-10-17", "Id": "PolicyForDestinationBucket", "Statement": [ { "Sid": "Permissions on objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:ReplicateObject", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateDelete" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }, { "Sid": "Permissions on bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource": "arn:aws:s3:::DestinationBucket" } ] }
Hinweis: Ersetze arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role durch den Amazon-Ressourcennamen (ARN) deiner Replikationsrolle und DestinationBucket durch deinen Ziel-Bucket.
AWS KMS-Berechtigungen gewähren
Wenn du die Quellobjekte des Buckets mit einem AWS Key Management Service (AWS KMS)-Schlüssel verschlüsselt hast, muss die Replikationsregel AWS-KMS.Verschlüsselung enthalten.
Gehe wie folgt vor, um die erforderlichen Berechtigungen zu konfigurieren:
- Öffne die Amazon-S3-Konsole.
- Wähle den Quell-Bucket aus.
- Wähle die Registerkarte Management und dann unter Replikationsregeln die Replikationsregel aus.
- Wähle Bearbeiten aus.
- Wähle unter Verschlüsselung die Option Mit AWS KMS verschlüsselte Objekte replizieren aus.
- Wähle unter AWS KMS key for encrypting destination objects (AWS-KMS-Schlüssel für die Verschlüsselung von Zielobjekten) einen AWS-KMS-Schlüssel aus. Die Standardoption ist die Verwendung des AWS-KMS-Schlüssels (aws/S3).
Beispiele für Replikationsrichtlinien findest du unter Beispielrichtlinien – Verwenden von SSE-S3 und SSE-KMS mit Replikation.
Hinweis: Wenn sich der Ziel-Bucket in einem anderen Konto befindet, gib einen kundenseitig verwalteten AWS-KMS-Schlüssel an, der dem Zielkonto gehört. Der standardmäßige aws/S3-Schlüssel verschlüsselt die Objekte mit dem von AWS verwalteten Schlüssel, den das Quellkonto besitzt. Du kannst den von AWS verwalteten Schlüssel jedoch nicht mit einem anderen Konto teilen.
Zusätzliche AWS-KMS-Berechtigungen für kontoübergreifende Szenarien gewähren
Um den AWS KMS-Schlüssel des Zielkontos zum Verschlüsseln der Zielobjekte zu verwenden, muss das Zielkonto die Replikationsrolle in der Schlüsselrichtlinie gewähren. Beispiel für eine Richtlinie:
{ "Sid": "AllowS3ReplicationSourceRoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "*" }
Hinweis: Ersetze arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role durch den ARN deiner Replikationsrolle. Wenn du ein Sternchen (*) für Ressource verwendest, gewährt die Richtlinie nur der Replikationsrolle die Berechtigung. Die Richtlinie erlaubt es der Replikationsrolle jedoch nicht, ihre Berechtigungen zu erweitern.
Außerdem musst du der IAM-Richtlinie der Replikationsrolle vom Quellkonto aus die folgenden Mindestberechtigungen hinzufügen:
[ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "SourceKmsKeyArn" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": [ "DestinationKmsKeyArn" ] } ]
Standardmäßig gewährt die AWS-KMS-Schlüsselrichtlinie dem Root-Benutzer vollständige Berechtigungen für den Schlüssel. Du kannst diese Berechtigungen an andere Benutzer im selben Konto delegieren. Du kannst auch eine IAM-Richtlinie verwenden, um der Replikationsrolle Berechtigungen für den KMS-Quellschlüssel zu gewähren. Diese Konfiguration ermöglicht den erforderlichen Zugriff, sofern die Quell-AWS-KMS-Schlüsselrichtlinie keine Deny-Anweisungen enthält.
Auf explizite Verweigerungs- und bedingte Zulassungsanweisungen prüfen
Wichtig: Bevor du explizite Deny-Anweisungen entfernst, überprüfe den Grund für ihre Existenz und ob die Anweisungen die Datensicherheit beeinträchtigen.
Wenn deine Objekte nach der Überprüfung der Berechtigungen immer noch nicht repliziert werden, suche nach expliziten Verweigerungs-Anweisungen, die dazu führen können, dass die Replikation fehlschlägt.
Entferne Deny-Anweisungen in der Ziel-Bucket-Richtlinie oder der AWS-KMS-Schlüsselrichtlinie, die den Zugriff auf folgende Ressourcen einschränken:
- Spezifische CIDR-Bereiche
- Endpunkte der Virtual Private Cloud (VPC)
- Amazon S3 Access Points
Entferne außerdem Deny-Anweisungen oder Berechtigungsgrenzen aus der IAM-Rollenrichtlinie und den Service Control-Richtlinien (SCPs) von AWS Organizations sowohl im Quell- als auch im Zielkonto.
Nach S3-Bucket-Schlüsseln suchen
Wenn die Quell- oder Ziel-AWS-KMS-Schlüssel basierend auf dem Verschlüsselungskontext Berechtigungen gewähren, überprüfe, ob du S3-Bucket-Schlüssel verwendest. Wenn die Buckets S3-Bucket-Schlüssel verwenden, muss der Verschlüsselungskontext für die Ressource auf Bucket-Ebene gelten. Beispiel für einen Verschlüsselungskontext:
"kms:EncryptionContext:aws:s3:arn": ["arn:aws:s3:::SOURCE_BUCKET_NAME"] "kms:EncryptionContext:aws:s3:arn": ["arn:aws:s3:::DESTINATION_BUCKET_NAME"]
Hinweis: Ersetze SOURCE_BUCKET_NAME durch den Quell-Bucket und DESTINATION_BUCKET_NAME durch den Ziel-Bucket.
Wenn du die S3-Bucket-Schlüssel nicht für die Quell- oder Ziel-Buckets verwendest, muss der Verschlüsselungskontext die Ressource auf Objektebene sein. Beispiel für einen Verschlüsselungskontext:
"kms:EncryptionContext:aws:s3:arn": ["arn:aws:s3:::SOURCE_BUCKET_NAME/*"] "kms:EncryptionContext:aws:s3:arn": ["arn:aws:s3:::DESTINATION_BUCKET_NAME/*"]
Hinweis: Ersetze SOURCE_BUCKET_NAME durch den Quell-Bucket und DESTINATION_BUCKET_NAME durch den Ziel-Bucket.
Deine Objekt-ACLs überprüfen
Prüfe, ob die Quell- und Ziel-Buckets Zugriffssteuerungslisten (ACLs) verwenden, die den Zugriff blockieren. Wenn das Objekt eine ACL enthält, die öffentlichen Zugriff zulässt, der Ziel-Bucket aber Öffentlichen S3-Zugriff blockieren verwendet, schlägt die Replikation fehl.
Eigentümerschaft am Quellobjekt bestätigen
Wenn ein anderes Konto die Objekte im Quell-Bucket hochgeladen hat, hat das Quellkonto möglicherweise keinen Zugriff auf diese Objekte. Prüfe, ob im Quell-Bucket ACLs aktiviert sind.
Wenn für den Quell-Bucket ACLs deaktiviert sind, ist das Quellkonto der Eigentümer aller Objekte im Bucket. Wenn ACLs im Quell-Bucket aktiviert sind, überprüfe, ob die Objekteigentümerschaft auf Object owner preferred (Objekteigentümer bevorzugt) oder Bucket-Eigentümer bevorzugt gesetzt ist. Wenn die Eigentümerschaft auf Bucket-Eigentümer bevorzugt gesetzt ist, müssen die Quell-Bucket-Objekte über die ACL-Berechtigung bucket-owner-full-control verfügen.
Das Quellkonto kann ACLs deaktivieren, um das Eigentum an allen Objekten in seinem Bucket zu übernehmen. In den meisten Anwendungsfällen sind ACLs zur Zugriffsverwaltung nicht erforderlich. Stattdessen ist es eine bewährte Methode, IAM- und Bucket-Richtlinien zu verwenden, um den Zugriff auf Amazon S3-Ressourcen zu verwalten. Bevor du ACLs deaktivierst, stelle sicher, dass deine Bucket- und IAM-Richtlinien die erforderlichen Berechtigungen gewähren, um den bestehenden Amazon S3-Zugriff beizubehalten.
Den richtigen Replikationsregelfilter angeben
Stelle sicher, dass du den Replikationsregelfilter richtig angegeben hast.
Wenn du einen Regelfilter mit einer Kombination aus einem Schlüsselpräfix und Objekt-Tags angibst, führt Amazon S3 eine logische UND-Operation aus. Die Regel gilt für eine Teilmenge von Objekten mit einem bestimmten Schlüsselpräfix und bestimmten Tags.
Ähnliche Informationen
- Themen
- Storage
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr