Direkt zum Inhalt

Wie richte ich die konto- und regionsübergreifende Replikation für meinen Amazon S3-Bucket ein, der mit AWS KMS verschlüsselt ist?

Lesedauer: 5 Minute
0

Ich habe einen Amazon Simple Storage Service (Amazon S3)-Bucket mit AWS Key Management Service (AWS KMS)-Verschlüsselung. Ich möchte die Replikation über mehrere AWS-Regionen und AWS-Konten für Objekte in meinem Bucket einrichten.

Kurzbeschreibung

Um Objekte aus einem Quell-Bucket zu replizieren, der mit AWS KMS verschlüsselt ist, musst du die AWS-KMS-Verschlüsselung im Ziel-Bucket verwenden. Außerdem muss sich der AWS-KMS-Schlüssel für deinen Ziel-Bucket in derselben Region wie der Ziel-Bucket befinden.

Hinweis: Wenn sich dein Quell-Bucket und dein Ziel-Bucket in unterschiedlichen Regionen befinden, müssen sie unterschiedliche AWS-KMS-Schlüssel haben.

Einen S3-Bucket für dein Ziel erstellen

Erstelle einen neuen S3-Ziel-Bucket in derselben Region wie dein AWS-KMS-Schlüssel.

Wenn du den Bucket erstellst, musst du die Versionsverwaltung aktivieren, um die Amazon S3 Replication verwenden zu können.

Hinweis: Es hat sich bewährt, den neuen AWS-KMS-Schlüssel als Standardverschlüsselung zu verwenden, sodass der Bucket nur einen AWS-KMS-Schlüssel verwendet.

Um die Verschlüsselungskosten zu senken, aktiviere S3-Bucket-Schlüssel in deinem Bucket.

(Optional) Bearbeite die Berechtigungen der Replikations-IAM-Rolle

Wenn du die Replikationsregel erstellst, kannst du auch eine AWS Identity and Access Management (IAM)-Rolle erstellen. Die IAM-Rolle muss es Amazon S3 ermöglichen, Objekte abzurufen, zu replizieren, zu verschlüsseln und zu entschlüsseln. Bevor du Objekte in eine andere Region verschiebst, musst du Berechtigungen zum Entschlüsseln der Objekte angeben. Verschlüssle dann die Objekte im Ziel.

Gehe wie folgt vor, um Berechtigungen für Buckets mit vorhandenen Replikationsregeln zu konfigurieren:

  1. Vergewissere dich, dass deine IAM-Rolle die folgende Vertrauensbeziehung zu Amazon S3 hat:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "s3.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
  2. Vergewissere dich, dass die IAM-Rolle über die folgenden Berechtigungen verfügt:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "SourceBucketPermissions",
          "Effect": "Allow",
          "Action": [
            "s3:GetObjectVersionTagging",
            "s3:GetObjectVersionAcl",
            "s3:ListBucket",
            "s3:GetObjectVersionForReplication",
            "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:::DestinationBucketName/*"
          ]
        },
        {
          "Sid": "SourceBucketKMSKey",
          "Action": [
            "kms:Decrypt",
            "kms:GenerateDataKey"
          ],
          "Effect": "Allow",
          "Resource": "SourceBucketKMSKeyARN"
        },
        {
          "Sid": "DestinationBucketKMSKey",
          "Action": [
            "kms:Encrypt",
            "kms:GenerateDataKey"
          ],
          "Effect": "Allow",
          "Resource": "DestinationBucketKMSKeyARN"
        }
      ]
    }

Hinweis: Ersetze SourceBucketName durch den Namen deines Quell-Buckets und DestinationBucketName durch den Namen deines Ziel-Buckets. Ersetze außerdem SourceBucketKMSKeyARN durch den Amazon-Ressourcennamen (ARN) des AWS-KMS-Schlüssels deines Quell-Buckets und DestinationBucketKMSKeyARN durch den ARN des AWS-KMS-Schlüssels deines Ziel-Buckets. Die oben genannten Berechtigungen ermöglichen es der Rolle, auf Objekte im Quell-Bucket zuzugreifen und Objekte in den Ziel-Bucket zu replizieren. Sie ermöglichen es der Rolle auch, Objekte mit den AWS-KMS-Schlüsseln zu entschlüsseln und zu verschlüsseln.

Aktualisiere die Schlüsselrichtlinie, damit die IAM-Rolle beide Schlüssel in Quell- und Ziel-Buckets verwenden kann

Ändere die AWS-KMS-Schlüsselrichtlinie, sodass die IAM-Rolle beide AWS-KMS-Schlüssel im Quell- und Ziel-Bucket verwenden kann.

Ändere die Richtlinie des Ziel-Buckets, um die Replikation auf den Bucket zuzulassen

Ändere die Richtlinie des Ziel-Buckets in die folgende Richtlinie:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DestinationBucketPermissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNTNUMBER:role/IAMROLE"
      },
      "Action": [
        "s3:ReplicateObject",
        "s3:ObjectOwnerOverrideToBucketOwner",
        "s3:GetObjectVersionTagging",
        "s3:ReplicateTags",
        "s3:ReplicateDelete",
        "s3:GetBucketVersioning",  
        "s3:PutBucketVersioning"
      ],
      "Resource": [
        "arn:aws:s3:::DestinationBucketName/*",  
        "arn:aws:s3:::DestinationBucketName"
      ]
    }]
}

Hinweis: Ersetze AccountNumber durch deine Quell-Bucket-Kontonummer, IAMRole durch deine IAM-Rolle und DestinationBucketName durch den Namen des Ziel-Buckets.

Richte die Replikationsregel ein

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. Wähle unter Replikationsregeln die Option Replikationsregel erstellen aus.
  4. Gib einen Namen für die Regel ein. 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.
  5. Wähle unter Ziel die Option Bucket in einem anderen Konto angeben aus und gib dann den Namen des Ziel-Buckets und die Konto-ID ein.
  6. Wähle unter IAM-Rolle die Option Aus vorhandenen IAM-Rollen wählen aus.
  7. Wenn du über eine bestehende IAM-Rolle mit den erforderlichen Berechtigungen verfügst, wähle unter IAM-Rolle die Option Aus vorhandenen IAM-Rollen auswählen oder IAM-Rollen-ARN eingeben aus.
    - oder -
    Wähle Neue Rolle erstellen aus, um eine neue Rolle mit den erforderlichen Berechtigungen zu erstellen.
  8. Wähle unter Verschlüsselung die Option Mit AWS Key Management Service (AWS KMS) verschlüsselte Objekte replizieren aus. Gib dann den ARN deines AWS-KMS-Schlüssels ein.
  9. (Optional) Konfiguriere die Zielspeicherklasse und zusätzliche Replikationsoptionen.
  10. Überprüfe die Konfiguration und wähle dann Speichern aus.
  11. (Optional) Repliziere vorhandene Objekte mit einem einmaligen Auftrag in S3 Batch Operations.

Deine Replikation verifizieren

Wenn du die Replikationsregel erstellst, ermöglichst du die nahtlose Replikation neu hinzugefügter Objekte vom Quell- zum Ziel-Bucket. Gehe wie folgt vor, um deine Replikation zu testen:

  1. Lade ein neues Objekt in den Quell-Bucket hoch.
  2. Zeige die Objektübersicht an und überprüfe dann den Replikationsstatus des Objekts.
  3. Wenn die Replikation erfolgreich ist, wird der Status ABGESCHLOSSEN angezeigt.

Ähnliche Informationen

Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)

Konfiguration der Replikation für Buckets in verschiedenen Konten

AWS OFFICIALAktualisiert vor 8 Monaten