Direkt zum Inhalt

Wie behebe ich kontoübergreifende Amazon S3-Replikationsprobleme?

Lesedauer: 3 Minute
0

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)

Warum werden meine Amazon S3-Objekte nicht repliziert, wenn ich die Replikation zwischen meinen Buckets einrichte?

AWS OFFICIALAktualisiert vor einem Jahr