Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Comment copier des objets Amazon S3 depuis un autre compte AWS ?
Je souhaite copier des objets Amazon Simple Storage Service (Amazon S3) sur plusieurs comptes AWS et m'assurer que le compte de destination est propriétaire des objets copiés.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
Le compte AWS qui charge les objets n’est pas automatiquement propriétaires des objets dans Amazon S3. Lorsque vous modifiez le paramètre Propriété des objets S3, il est recommandé d'utiliser le paramètre Propriétaire du compartiment appliqué. Le paramètre Propriétaire du compartiment appliqué simplifie la gestion de l'accès aux données stockées dans Amazon S3. Toutefois, cette option désactive toutes les listes de contrôle d'accès (ACL) des compartiments, ainsi que les ACL de tous les objets de votre compartiment.
Si vous utilisez le paramètre Propriétaire du compartiment appliqué dans le cadre de la propriété des objets S3, le même propriétaire du compartiment devient automatiquement propriétaire de tous les objets d'un compartiment Amazon S3. Pour les compartiments existants, le compte qui charge l'objet S3 est propriétaire de l'objet, sauf si vous désactivez explicitement les ACL.
Si votre méthode actuelle repose sur des ACL pour le partage d’objets, vous devez identifier les principaux qui utilisent les ACL pour accéder aux objets. Pour plus d'informations, consultez la section Prérequis pour désactiver les ACL.
Si vous ne parvenez pas à désactiver vos ACL, procédez comme suit pour devenir propriétaire des objets jusqu'à ce que vous puissiez ajuster votre politique de compartiment :
-
Dans le compte source, créez une politique gérée par le client AWS Identity and Access Management (IAM) qui accorde à une identité IAM l’accès intercompte. L'utilisateur IAM doit être autorisé à récupérer des objets du compartiment source et à les placer dans le compartiment de destination.
Exemple de politique :{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::source-DOC-EXAMPLE-BUCKET", "arn:aws:s3:::source-DOC-EXAMPLE-BUCKET/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET", "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*" ] } ] }Remarque : L’exemple de politique IAM précédent inclut uniquement les autorisations minimales requises pour répertorier des objets et les copier dans des compartiments de différents comptes. Personnalisez les actions S3 autorisées en fonction de votre cas d'utilisation. Par exemple, si l'utilisateur doit copier des objets dotés de balises d'objet, vous devez également accorder des autorisations pour s3:GetObjectTagging. Si vous rencontrez des erreurs d'autorisation, isolez les problèmes liés à IAM en tant qu'utilisateur administrateur.
-
Dans le compte source, attachez la politique gérée par le client à l'identité IAM.
-
Dans le compte de destination, définissez la propriété des objets S3 du compartiment de destination sur Propriétaire du compartiment préféré. Le compte de destination est à présent automatiquement propriétaire des nouveaux objets que vous chargez avec l'ACL définie sur bucket-owner-full-control.
-
Dans le compte de destination, modifiez la stratégie du compartiment de destination pour accorder au compte source les autorisations nécessaires pour charger des objets. Vous devez également inclure une condition dans la politique de compartiment selon laquelle le chargement d'objets doit définir l'ACL sur bucket-owner-full-control.
Exemple de politique :{ "Version": "2012-10-17", "Id": "Policy1611277539797", "Statement": [ { "Sid": "Stmt1611277535086", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:user/Jane" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }, { "Sid": "Stmt1611277877767", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:user/Jane" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET" } ] }Remarque : Remplacez destination-DOC-EXAMPLE-BUCKET par le nom du compartiment de destination et arn:aws:iam::222222222222:user/Jane par l’ARN de l’identité IAM du compte source.
L'exemple de politique de compartiment présenté ci-dessus inclut uniquement les autorisations minimales requises pour charger un objet avec l'ACL requise. Personnalisez les actions S3 autorisées en fonction de votre cas d'utilisation. -
Vérifiez que l'ACL est définie sur bucket-owner-full-control afin que l'identité IAM du compte source puisse charger des objets vers le compartiment de destination. Par exemple, l'identité IAM source doit exécuter la commande cp de l’AWS CLI avec l'option —acl :
aws s3 cp s3://source-DOC-EXAMPLE-BUCKET/object.txt s3://destination-DOC-EXAMPLE-BUCKET/object.txt --acl bucket-owner-full-controlDans l'exemple précédent, la commande copie le fichier object.txt. Pour copier un dossier entier, exécutez la commande suivante :
aws s3 cp directory/ s3://bucketname/directory --recursive --acl bucket-owner-full-controlRemarque : Si vous obtenez une erreur AccessDenied, consultez la section Résoudre les erreurs d'accès refusé (403 Interdit) dans Amazon S3.
Important : Si votre compartiment S3 est chiffré par défaut avec AWS Key Management Service (AWS KMS), vous devez également modifier les autorisations relatives aux clés AWS KMS. Pour obtenir des instructions, consultez la section Mon compartiment Amazon S3 utilise un chiffrement par défaut avec une clé AWS KMS personnalisée. Comment puis-je autoriser les utilisateurs à effectuer des chargements depuis et vers le compartiment ?
Pour copier de grandes quantités de données entre des compartiments S3, consultez la section Quel est le meilleur moyen de transférer de grandes quantités de données d'un compartiment Amazon S3 à un autre ? Aussi, consultez la section Comment puis-je optimiser les performances lorsque je charge de grandes quantités de données vers Amazon S3 ?
Informations connexes
Exemples de politiques relatives aux compartiments Amazon S3
- Sujets
- Storage
- Langue
- Français
Vidéos associées


Contenus pertinents
- demandé il y a un an
- demandé il y a 3 ans
- demandé il y a un an
- demandé il y a 3 ans
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 3 mois