Direkt zum Inhalt

Wie kann ich mit Object Lock eine kontoübergreifende Replikation für meine Amazon S3-Buckets einrichten?

Lesedauer: 4 Minute
0

Ich möchte die kontoübergreifende Replikation in einem Amazon Simple Storage Service (Amazon S3) -Bucket einrichten, in dem Object Lock aktiviert ist.

Lösung

Object Lock für den Ziel-Bucket aktivieren

Um die Replikation für einen Amazon S3-Bucket einzurichten, aktiviere Object Lock für den Ziel-Bucket.

Hinweis: Nachdem du S3 Object Lock aktiviert hast, kannst du Object Lock nicht mehr deaktivieren oder die Versionsverwaltung für den Bucket aussetzen.

Eine IAM-Rolle für die Replikation mit den erforderlichen Berechtigungen erstellen

Erstelle eine AWS Identity and Access Management (IAM)-Rolle für die Replikation in der IAM-Konsole für das Quellkonto mit einer Vertrauensbeziehung für Amazon S3.

Beispiel:


{  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Principal": {  
        "Service": "s3.amazonaws.com"  
      },  
      "Action": "sts:AssumeRole"  
    }  
  ]  
}

Stelle sicher, dass du der IAM-Rolle die folgenden Berechtigungen zuweist:


{  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "SourceBucketPermissions",  
      "Effect": "Allow",  
      "Action": [  
        "s3:GetObjectRetention",  
        "s3:GetObjectVersionTagging",  
        "s3:GetObjectVersionAcl",  
        "s3:ListBucket",  
        "s3:GetObjectVersionForReplication",  
        "s3:GetObjectLegalHold",  
        "s3:GetReplicationConfiguration"  
      ],  
      "Resource": [  
        "arn:aws:s3:::SourceBucketName/*",  
        "arn:aws:s3:::SourceBucketName"  
      ]  
    },  
    {  
      "Sid": "DestinationBucketPermissions",  
      "Effect": "Allow",  
      "Action": [  
        "s3:ReplicateObject",  
        "s3:ObjectOwnerOverrideToBucketOwner",  
        "s3:GetObjectVersionTagging",  
        "s3:ReplicateTags",  
        "s3:ReplicateDelete"  
      ],  
      "Resource": [  
        "arn:aws:s3:::DestBucketName/*"  
      ]  
    }  
  ]  
}

Wenn du AWS Key Management Service (AWS KMS)-Schlüssel verwendest, füge der IAM-Rolle auch die folgenden Berechtigungen hinzu:


{  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "SourceBucketPermissions",  
      "Effect": "Allow",  
      "Action": [  
        "s3:GetObjectRetention",  
        "s3:GetObjectVersionTagging",  
        "s3:GetObjectVersionAcl",  
        "s3:ListBucket",  
        "s3:GetObjectVersionForReplication",  
        "s3:GetObjectLegalHold",  
        "s3:GetReplicationConfiguration"  
      ],  
      "Resource": [  
        "arn:aws:s3:::SourceBucketName/*",  
        "arn:aws:s3:::SourceBucketName"  
      ]  
    },  
    {  
      "Sid": "DestinationBucketPermissions",  
      "Effect": "Allow",  
      "Action": [  
        "s3:ReplicateObject",  
        "s3:ObjectOwnerOverrideToBucketOwner",  
        "s3:GetObjectVersionTagging",  
        "s3:ReplicateTags",  
        "s3:ReplicateDelete"  
      ],  
      "Resource": [  
        "arn:aws:s3:::DestBucketName/*"  
      ]  
    },  
    {  
      "Sid": "SourceBucketKMSKey",  
      "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey"  
      ],  
      "Effect": "Allow",  
      "Resource": "SourceBucketKMSKeyARN"  
    },  
    {  
      "Sid": "DestinationBucketKMSKey",  
      "Action": [  
        "kms:Encrypt",  
        "kms:GenerateDataKey"  
      ],  
      "Effect": "Allow",  
      "Resource": "DestinationBucketKMSKeyARN"  
    }  
  ]  
}

AWS KMS-Schlüsselberechtigungen aktualisieren

Konfiguriere den AWS KMS-Schlüssel für das Zielkonto, um den Zugriff auf die replizierte IAM-Rolle im Quellkonto zu ermöglichen. Du kannst die SSE-S3-Verschlüsselung verwenden, aber du kannst den verwalteten AWS KMS-Schlüssel aws/S3 nicht für die kontoübergreifende Replikation verwenden. Weitere Informationen findest du unter Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

Beispiel:


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

Hinweis: Wenn du in der Schlüsselrichtlinie einen Platzhalter (*) für Ressource verwendest, gewährt die Richtlinie nur der replizierten IAM-Rolle die Berechtigung für den AWS-KMS-Schlüssel. Die Richtlinie erlaubt es der replizierten Rolle nicht, ihre Berechtigungen zu erweitern.

Dem Zielkonto die folgende Bucket-Richtlinie hinzufügen

Füge im Abschnitt Prinzipal den Amazon-Ressourcennamen (ARN) der Replikations-IAM-Rolle hinzu, die du erstellt hast.

Beispiel:


{  "Version": "2012-10-17",  
  "Id": "PolicyForDestinationBucket",  
  "Statement": [  
    {  
      "Sid": "ReplicationPermissions",  
      "Effect": "Allow",  
      "Principal": {  
        "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role"  
      },  
      "Action": [  
        "s3:ReplicateDelete",  
        "s3:ReplicateObject",  
        "s3:ObjectOwnerOverrideToBucketOwner",  
        "s3:GetBucketVersioning",  
        "s3:PutBucketVersioning"  
      ],  
      "Resource": [  
        "arn:aws:s3:::DestBucketName/*",  
        "arn:aws:s3:::DestBucketName"  
      ]  
    }  
  ]  
}

Deine IAM-Rolle für den S3-Bucket replizieren

Führe die folgenden Schritte aus:

  1. Öffne die Amazon-S3-Konsole.
  2. Wähle Buckets und anschließend den Quell-Bucket.
  3. Wähle die RegisterkarteVerwaltung.
  4. Wähle unter Replikationsregeln die Option Replikationsregel erstellen.
  5. Gib einen Namen für die Regel ein.
  6. Wähle unter Quell-Bucket einen Regelbereich aus, um zu bestimmen, ob die Replikation für ein bestimmtes Objektpräfix oder den gesamten Inhalt des Buckets gilt.
  7. Wähle im Abschnitt Ziel die Option Bucket in einem anderen Konto angeben aus und gib dann den Namen des Ziel-Buckets und die Konto-ID ein.
  8. Wähle unter IAM-Rolle die Option Aus vorhandenen IAM-Rollen wählen.
  9. Wähle Neue Rolle erstellen.
    - oder -
    Gib den ARN der IAM-Rolle ein, um eine Rolle zu verwenden, die du bereits erstellt hast oder wenn du bereits Replikationsregeln hast.
  10. So replizierst du Objekte, die mit AWS KMS verschlüsselt sind:
    Wähle unter Verschlüsselung die Option Mit AWS Key Management Service (AWS KMS) verschlüsselte Objekte replizieren aus.
    Gib den ARN des AWS KMS-Schlüssels ein.
  11. (Optional) Konfiguriere die Zielspeicherklasse und zusätzliche Replikationsoptionen.
  12. Überprüfen die Konfiguration und wähle dann Speichern.
  13. (Optional) Repliziere vorhandene Objekte mit einem einmaligen Auftrag in Amazon S3 Batch Operations.

Sicherstellen, dass du die IAM-Rolle kontoübergreifend repliziert hast

Um die Replikationsregel zu testen, füge dem Quell-Bucket neue Objekte hinzu und überprüfe dann den Ziel-Bucket auf replizierte Objekte.

Ähnliche Informationen

Konfiguration von S3 Object Lock

So funktioniert S3 Object Lock

AWS OFFICIALAktualisiert vor 8 Monaten