Fehlerbehebung bei einer Replikation - 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.

Fehlerbehebung bei einer Replikation

In diesem Abschnitt finden Sie Tipps zur Problembehandlung in Amazon S3 Replication und Informationen zu Fehlern in S3 Batch Replication.

Tipps zur Fehlerbehebung in S3 Replication

Wenn Objektreplikate nicht im Ziel-Bucket erscheinen, nachdem Sie die Replikation konfiguriert haben, können Sie mit diesen Tipps zur Fehlerbehebung Probleme identifizieren und beheben.

  • Die meisten Objekte werden innerhalb von 15 Minuten repliziert. Die von Amazon S3 für die Replikation eines Objekts benötigte Zeit hängt von verschiedenen Faktoren ab, einschließlich des Quell- und Ziel-Regionspaars sowie der Größe des Objekts. Bei großen Objekten kann die Replikation mehrere Stunden dauern. Sie können Begrenzung der S3-Replikationszeit (S3 RTC) verwenden, um einen Überblick über die Replikationszeiten zu erhalten.

    Wenn das replizierte Objekt groß ist, warten Sie eine Weile, bevor Sie überprüfen, ob es im Ziel erscheint. Sie können auch den Replikationsstatus des Quellobjekts überprüfen. Wenn der Replikationsstatus des Objekts PENDING lautet, hat Amazon S3 die Replikation noch nicht abgeschlossen. Wenn der Replikationsstatus des Objekts FAILED lautet, überprüfen Sie die Replikationskonfiguration des Quell-Buckets. Wenn Sie Informationen zu Fehlern während der Replikation erhalten möchten, können Sie einrichten, dass Sie über Fehlerereignisse bei der Replikation mit Amazon-S3-Ereignisbenachrichtigungen benachrichtigt werden. Weitere Informationen finden Sie unter Erhalten von Amazon-S3-Ereignisbenachrichtigungen über Replikations-Fehlerereignisse.

  • Sie können die API-Operation HeadObject aufrufen, um den Replikationsstatus eines Objekts zu überprüfen. Die API-Operation HeadObject gibt den Replikationsstatus PENDING, COMPLETED oder FAILED eines Objekts zurück. Als Antwort auf den API-Aufruf HeadObject wird der Replikationsstatus im Element x-amz-replication-status zurückgegeben.

    Anmerkung

    Zum Ausführen von HeadObject müssen Sie über Lesezugriff auf das angeforderte Objekt verfügen. Eine HEAD-Anforderung bietet die gleichen Optionen wie eine GET-Anforderung, ohne eine GET-Operation auszuführen. Um beispielsweise eine HeadObject-Anforderung mit der AWS Command Line Interface (AWS CLI) auszuführen, können Sie den folgenden Befehl ausführen. Ersetzen Sie user input placeholders durch Ihre Informationen.

    aws s3api head-object --bucket my-bucket --key index.html
  • Nachdem HeadObject die Objekte mit dem Replikationsstatus FAILED zurückgegeben hat, können Sie S3 Batch Replication verwenden, um diese fehlgeschlagenen Objekte zu replizieren. Alternativ können Sie die fehlgeschlagenen Objekte erneut in den Quell-Bucket hochladen, wodurch die Replikation für die neuen Objekte initiiert wird.

  • Überprüfen Sie in der Replikations-Konfiguration des Quell-Buckets Folgendes:

    • ob der Amazon-Ressourcennamen (ARN) des Ziel-Buckets korrekt ist.

    • ob das Schlüsselnamenpräfix korrekt ist. Wenn Sie beispielsweise die Konfiguration so einrichten, dass nur Objekte mit dem Präfix Tax repliziert werden, werden nur Objekte mit Schlüsselnamen wie beispielsweise Tax/document1 oder Tax/document2 repliziert. Ein Objekt mit dem Schlüsselnamen document3 wird nicht repliziert.

    • Der Status der Replikationsregel lautet Enabled.

  • Stellen Sie sicher, dass die Versionsverwaltung in der Replikationskonfiguration der Buckets nicht ausgesetzt wurde. Sowohl für die Quell- als auch für die Ziel-Buckets muss die Versionsverwaltung aktiviert sein.

  • Wenn eine Replikationsregel auf Objekteigentümerschaft in Eigentümer des Ziel-Buckets ändern gesetzt ist, muss die für die Replikation verwendete AWS Identity and Access Management (IAM)-Rolle über die Berechtigung s3:ObjectOwnerOverrideToBucketOwner verfügen. Diese Berechtigung wird für die Ressource (in diesem Fall den Ziel-Bucket) erteilt. Die folgende Resource-Anweisung zeigt beispielsweise, wie diese Berechtigung für den Ziel-Bucket erteilt wird:

    { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::DestinationBucket/*" }
  • Wenn sich der Ziel-Bucket im Besitz eines anderen Kontos befindet, muss der Eigentümer des Ziel-Buckets die Berechtigung s3:ObjectOwnerOverrideToBucketOwner über die Ziel-Bucket-Richtlinie auch dem Eigentümer des Quell-Buckets erteilen. Wenn Sie die folgende Bucket-Beispielrichtlinie verwenden möchten, ersetzen Sie die user input placeholders durch Ihre eigenen Informationen:

    { "Version": "2012-10-17", "Id": "Policy1644945280205", "Statement": [ { "Sid": "Stmt1644945277847", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789101:role/s3-replication-role" }, "Action": [ "s3:ReplicateObject", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::DestinationBucket/*" } ] }
    Anmerkung

    Wenn die Einstellungen des Ziel-Buckets zur Objekteigentümerschaft Bucket-Eigentümer erzwungen beinhalten, müssen Sie die Einstellung in der Replikationsregel nicht in Objekteigentümerschaft in Eigentümer des Ziel-Buckets ändern ändern. Die Änderung der Objekteigentümerschaft erfolgt standardmäßig. Weitere Informationen zum Ändern der Replikateigentümerschaft finden Sie unter Ändern des Replikat-Eigentümers.

  • Wenn Sie die Replikationskonfiguration in einem kontoübergreifenden Szenario festlegen, in dem die Quell- und Ziel-Buckets verschiedenen gehörenAWS-Konten, können die Ziel-Buckets nicht als Buckets mit Zahlung durch den Anforderer konfiguriert werden. Weitere Informationen finden Sie unter Nutzen von Buckets mit Zahlung durch den Anforderer für Speicherübertragungen und Nutzung.

  • Wenn die Quellobjekte eines Buckets mit einem AWS Key Management Service (AWS KMS)-Schlüssel verschlüsselt sind, muss die Replikationsregel so konfiguriert werden, dass sie mit AWS KMS verschlüsselte Objekte umfasst. Wählen Sie Mit AWS KMS verschlüsselte Objekte replizieren unter den Einstellungen zu Verschlüsselung in der Amazon-S3-Konsole aus. Wählen Sie dann einen AWS KMS-Schlüssel zum Verschlüsseln der Zielobjekte aus.

    Anmerkung

    Wenn sich der Ziel-Bucket in einem anderen Konto befindet, geben Sie einen vom Kunden verwalteten AWS KMS-Schlüssel an, der dem Zielkonto gehört. Verwenden Sie nicht den von Amazon S3 verwalteten Standardschlüssel (aws/s3). Bei Verwendung des Standardschlüssels werden die Objekte mit dem von Amazon S3 verwalteten Schlüssel verschlüsselt, der dem Quellkonto gehört. Dadurch wird verhindert, dass das Objekt für ein anderes Konto freigegeben wird. Infolgedessen kann das Zielkonto nicht auf die Objekte im Ziel-Bucket zugreifen.

    Um zum Verschlüsseln der Zielobjekte einen AWS KMS-Schlüssel zu verwenden, der zum Zielkonto gehört, muss das Zielkonto der Replikationsrolle in der KMS-Schlüsselrichtlinie die Berechtigungen kms:GenerateDataKey und kms:Encrypt erteilen. Wenn Sie die folgende Beispielanweisung in Ihrer KMS-Schlüsselrichtlinie verwenden möchten, ersetzen Sie die user input placeholders durch Ihre eigenen Informationen:

    { "Sid": "AllowS3ReplicationSourceRoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789101:role/s3-replication-role" }, "Action": ["kms:GenerateDataKey", "kms:Encrypt"], "Resource": "*" }

    Wenn Sie ein Sternchen (*) für die Resource-Anweisung in der AWS KMS-Schlüsselrichtlinie verwenden, erteilt die Richtlinie nur der Replikationsrolle die Berechtigung, den KMS-Schlüssel zu verwenden. Die Richtlinie erlaubt der Replikationsrolle nicht, ihre Berechtigungen zu erweitern.

    Standardmäßig gewährt die KMS-Schlüsselrichtlinie dem Root-Benutzer volle Berechtigungen für den Schlüssel. Diese Berechtigungen können an andere Benutzer in demselben Konto delegiert werden. Sofern die Quell-KMS-Schlüsselrichtlinie keine Deny-Anweisungen enthält, reicht es aus, eine IAM-Richtlinie zu verwenden, um der Replikationsrolle Berechtigungen für den Quell-KMS-Schlüssel zu erteilen.

    Anmerkung

    KMS-Schlüsselrichtlinien, die den Zugriff auf bestimmte CIDR-Bereiche, VPC-Endpunkte oder S3-Zugriffspunkte einschränken, können dazu führen, dass die Replikation fehlschlägt.

    Wenn je nach Verschlüsselungskontext entweder der Quell- oder der Ziel-KMS-Schlüssel Berechtigungen erteilt, vergewissern Sie sich, dass Amazon-S3-Bucket-Schlüssel für die Buckets aktiviert sind. Wenn die S3-Bucket-Schlüssel für die Buckets aktiviert sind, muss der Verschlüsselungskontext die Ressource auf Bucket-Ebene sein, wie im Folgenden veranschaulicht:

    "kms:EncryptionContext:arn:aws:arn": [ "arn:aws:s3:::SOURCE_BUCKET_NAME" ] "kms:EncryptionContext:arn:aws:arn": [ "arn:aws:s3:::DESTINATION_BUCKET_NAME" ]

    Zusätzlich zu den durch die KMS-Schlüsselrichtlinie gewährten Berechtigungen muss das Quellkonto der IAM-Richtlinie der Replikationsrolle die folgenden Mindestberechtigungen hinzufügen:

    { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "SourceKmsKeyArn" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": [ "DestinationKmsKeyArn" ] }

    Weitere Informationen zur Replikation von mit AWS KMS verschlüsselten Objekten finden Sie unter Replizieren verschlüsselter Objekte.

  • Wenn sich der Ziel-Bucket im Besitz eines anderen AWS-Konto befindet, stellen Sie sicher, dass der Bucket-Eigentümer eine Bucket-Richtlinie für den Ziel-Bucket eingerichtet hat, die dem Eigentümer des Quell-Buckets die Replikation von Objekten gestattet. Ein Beispiel finden Sie unter Konfigurieren der Replikation, wenn sich Quell- und Ziel-Buckets im Eigentum verschiedener Konten befinden.

  • Wenn Ihre Objekte auch nach der Bestätigung der Berechtigungen nicht repliziert werden, suchen Sie an den folgenden Stellen nach expliziten Deny-Anweisungen:

    • Deny-Anweisungen in den Richtlinien des Quell- oder Ziel-Buckets. Die Replikation schlägt fehl, wenn die Bucket-Richtlinie den Zugriff auf die Replikationsrolle für eine der folgenden Aktionen verweigert:

      Quell-Bucket

      "s3:GetReplicationConfiguration", "s3:ListBucket", "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging"

      Ziel-Buckets:

      "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags"
    • Deny-Anweisungen oder Berechtigungsgrenzen, die der IAM-Rolle zugeordnet sind, können dazu führen, dass die Replikation fehlschlägt.

    • Deny-Anweisungen in den Service-Kontrollrichtlinien von AWS Organizations, die entweder dem Quell- oder dem Zielkonto zugeordnet sind, können dazu führen, dass die Replikation fehlschlägt.

  • Wenn ein Objektreplikat nicht im Ziel-Bucket angezeigt wird, könnten folgende Probleme die Replikation verhindert haben:

    • Amazon S3 repliziert keine Objekte in einem Quell-Bucket, der ein Replikat ist, das mit einer anderen Replikations-Konfiguration erstellt wurde. Wenn Sie beispielsweise die Replikationskonfiguration von Bucket A zu Bucket B zu Bucket C festlegen, repliziert Amazon S3 keine Objektreplikate von Bucket B zu Bucket C.

    • Ein Quell-Bucket-Eigentümer kann anderen AWS-Konten Berechtigungen für das Hochladen von Objekten erteilen. Standardmäßig besitzt der Quell-Bucket-Eigentümer keine Berechtigungen für die Objekte, die von anderen Konten erstellt wurden. Die Replikations-Konfiguration repliziert nur die Objekte, für die der Quell-Bucket-Eigentümer über Zugriffsberechtigungen verfügt. Der Bucket-Eigentümer kann anderen AWS-Konten Berechtigungen zum bedingten Erstellen von Objekten erteilen. Dabei sind explizite Zugriffsberechtigungen für diese Objekte erforderlich. Eine Beispielrichtlinie finden Sie unter Erteilung von kontoübergreifenden Berechtigungen für das Hochladen von Objekten, wobei sichergestellt wird, dass der Bucket-Eigentümer volle Kontrolle besitzt.

  • Angenommen, Sie fügen einer Replikationskonfiguration eine Regel hinzu, um eine Teilmenge von Objekten mit einem spezifischen Tag zu replizieren. In diesem Fall müssen Sie den spezifischen Tag-Schlüssel und -Wert zum Zeitpunkt der Objekterstellung zuweisen, damit Amazon S3 das Objekt replizieren kann. Wenn Sie zuerst ein Objekt erstellen und dann dem vorhandenen Objekt das Tag hinzufügen, repliziert Amazon S3 das Objekt nicht.

  • Verwenden Sie Amazon-S3-Ereignisbenachrichtigungen, um sich informieren zu lassen, wenn Objekte nicht in ihre Ziel-AWS-Region repliziert wurden. Amazon-S3-Ereignisse sind über Amazon Simple Queue Service (Amazon SQS), Amazon Simple Notification Service (Amazon SNS) oder AWS Lambda verfügbar. Weitere Informationen finden Sie unter Erhalten von Amazon-S3-Ereignisbenachrichtigungen über Replikations-Fehlerereignisse.

    Sie können Amazon-S3-Ereignisbenachrichtigungen auch verwenden, um die Ursachen für fehlgeschlagene Replikationen anzuzeigen. Eine Liste der Ursachen für fehlgeschlagene Replikationen finden Sie unter Gründe für das Fehlschlagen der Replikation in Amazon S3.

Fehler bei der Batchreplikation

Um Fehler bei Objekten zu beheben, die nicht in den Ziel-Bucket repliziert werden, überprüfen Sie die verschiedenen Arten von Berechtigungen für den Bucket, die Replikationsrolle und die IAM-Rolle, die zum Erstellen des Batchreplikationsauftrags verwendet werden. Überprüfen Sie außerdem die Einstellungen für den öffentlichen Zugriff und die Einstellungen für die Bucket-Eigentümerschaft.

Während der Batchreplikation können die folgenden Fehler auftreten:

  • Die Batchoperation ist aus folgendem Grund fehlgeschlagen: Der Auftragsbericht konnte nicht in Ihren Berichts-Bucket geschrieben werden.

    Dieser Fehler tritt auf, wenn die für den Batch-Operations-Auftrag verwendete IAM-Rolle den Abschlussbericht nicht an dem Speicherort speichern kann, der während der Auftragserstellung angegeben wurde. Überprüfen Sie zum Beheben dieses Fehlers, ob die IAM-Rolle über PutObject-Berechtigungen für den Bucket verfügt, in dem der Batch-Operations-Abschlussbericht gespeichert werden soll. Eine bewährte Methode besteht darin, den Bericht in einem anderen Bucket als dem Quell-Bucket bereitzustellen.

  • Die Batchoperation wurde mit Fehlern abgeschlossen und die Gesamtzahl der Fehlschläge ist nicht 0.

    Dieser Fehler tritt auf, wenn bei dem ausgeführten Batchreplikationsauftrag unzureichende Objektberechtigungen vorhanden sind. Wenn Sie eine Replikationsregel für Ihren Batchreplikationsauftrag verwenden, stellen Sie sicher, dass die für die Replikation verwendete IAM-Rolle über die richtigen Berechtigungen für den Zugriff auf Objekte aus dem Quell- oder Ziel-Bucket verfügt. Sie können auch den Abschlussbericht zur Batchreplikation anzeigen, um den spezifischen Grund für das Fehlschlagen der Replikation in Amazon S3 zu überprüfen.

  • Der Batchauftrag wurde erfolgreich ausgeführt, die Anzahl der im Ziel-Bucket erwarteten Objekte stimmt nicht überein.

    Dieser Fehler tritt auf, wenn die im Manifest des Batchreplikationsauftrags aufgeführten Objekte nicht mit den Filtern übereinstimmen, die Sie während der Auftragserstellung ausgewählt haben. Möglicherweise erhalten Sie diese Meldung auch, wenn die Objekte in Ihrem Quell-Bucket keinen Replikationsregeln entsprechen und nicht im generierten Manifest enthalten sind.