Passer au contenu

Comment puis-je configurer la réplication intercompte dans mes compartiments Amazon S3 avec le verrouillage d’objet activé ?

Lecture de 4 minute(s)
0

Je souhaite configurer la réplication intercompte dans un compartiment Amazon Simple Storage Service (Amazon S3) dans lequel le verrouillage d’objet est activé.

Résolution

Activer le verrouillage d'objet pour votre compartiment de destination

Pour configurer la réplication pour un compartiment Amazon S3, activez le verrouillage d'objet pour le compartiment de destination.

Remarque : Une fois que vous avez activé le verrouillage d'objet S3, vous ne pouvez pas désactiver le verrouillage d'objet ni suspendre la gestion des versions pour le compartiment.

Créer un rôle IAM pour la réplication avec les autorisations nécessaires

Créez un rôle de réplication dans la console Gestion des identités et des accès AWS (AWS IAM) pour le compte source avec une relation d’approbation pour Amazon S3.

Exemple :


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

Attachez les autorisations suivantes au rôle IAM :


{  "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/*"  
      ]  
    }  
  ]  
}

Si vous utilisez des clés AWS Key Management Service (AWS KMS), attachez également les autorisations suivantes à votre rôle IAM :


{  "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"  
    }  
  ]  
}

Mettre à jour des autorisations pour la clé AWS KMS

Configurez la clé AWS KMS pour le compte de destination afin d’autoriser l'accès au rôle IAM répliqué dans le compte source. Vous pouvez utiliser le chiffrement SSE-S3, mais vous ne pouvez pas utiliser la clé AWS KMS gérée aws/S3 pour la réplication intercompte. Pour plus d'informations, consultez la section Réplication d'objets chiffrés (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

Exemple :


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

Remarque : Si vous utilisez un caractère générique (*) pour Ressource dans la stratégie de clé, celle-ci accorde l'autorisation uniquement au rôle IAM répliqué pour la clé AWS KMS. La politique n'autorise pas le rôle répliqué à élever ses autorisations.

Ajouter la politique de compartiment suivante au compte de destination

Dans la section Principal, ajoutez l’Amazon Resource Name (ARN) du rôle IAM de réplication que vous avez créé.

Exemple :


{  "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"  
      ]  
    }  
  ]  
}

Répliquer votre rôle IAM pour votre compartiment S3

Procédez comme suit :

  1. Ouvrez la console Amazon S3.
  2. Sélectionnez Compartiments, puis sélectionnez votre compartiment.
  3. Choisissez l'onglet Gestion.
  4. Sous Règles de réplication, sélectionnez Créer une règle de réplication.
  5. Saisissez un nom pour votre règle.
  6. Sous Compartiment source, choisissez un champ d’application de règle pour déterminer si la réplication s'applique à un préfixe d'objet spécifique ou à l'intégralité du contenu du compartiment.
  7. Dans la section Destination, sélectionnez Spécifier un compartiment dans un autre compte, puis saisissez le nom du compartiment de destination et l'ID du compte.
  8. Sous Rôle IAM, sélectionnez Sélectionner parmi les rôles IAM existants.
  9. Sélectionnez Créer un nouveau rôle.
    - ou -
    Saisissez l'ARN du rôle IAM pour utiliser un rôle que vous avez déjà créé ou si vous disposez de règles de réplication existantes.
  10. Pour répliquer des objets chiffrés avec AWS KMS, procédez comme suit :
    Sous Chiffrement, sélectionnez Répliquer les objets chiffrés avec AWS Key Management Service (AWS KMS).
    Saisissez l'ARN de votre clé AWS KMS.
  11. (Facultatif) Configurez la classe de stockage de destination et les options de réplication supplémentaires.
  12. Vérifiez la configuration, puis sélectionnez Enregistrer.
  13. (Facultatif) Répliquez des objets existants à l'aide d'une tâche d'opérations par lot Amazon S3 unique.

Vérifier que vous avez répliqué le rôle IAM sur l’ensemble des comptes

Pour tester la règle de réplication, ajoutez de nouveaux objets au compartiment source, puis vérifiez que le compartiment de destination contient des objets répliqués.

Informations connexes

Configuration du verrouillage d’objet S3

Comment fonctionne le verrouillage d’objet S3

AWS OFFICIELA mis à jour il y a 5 mois