J'ai lu plusieurs messages comme this one sur la façon de transférer des données avec aws cli d'un seau S3 à l'autre en utilisant des comptes différents, mais je suis toujours incapable de le faire. Je suis sûr que c'est parce que je n'ai pas encore complètement saisi les concepts des paramètres de compte + autorisation dans AWS (par exemple, compte iam vs clé d'accès).S3 à S3 transfert en utilisant différents comptes?
J'ai un vendeur qui m'a donné un utilisateur appelé « Foo » et numéro de compte « 123456789012 » avec 2 touches d'accès pour accéder à leur seau S3 « SourceBucket » dans l'UE-centre-1. J'ai créé un profil sur ma machine avec la clé d'accès fournie par le fournisseur appelée "sourceProfile". J'ai mon S3 appelé "DestinationBucket" dans us-east-1 et j'ai mis la politique de compartiment à la suivante.
{ "Version": "2012-10-17", "Id": "Policy123456789", "Statement": [ { "Sid": "Stmt1487222222222", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Foo" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DestinationBucket/", "arn:aws:s3:::DestinationBucket/*" ] } ] }
vient ici la partie bizarre. Je suis en mesure de lister les fichiers et même de télécharger des fichiers à partir du "DestinationBucket" en utilisant les lignes de commande suivantes.
aws s3 ls s3://DestinationBucket --profile sourceProfile aws s3 cp s3://DestinationBucket/test ./ --profile sourceProfile
Mais lorsque je tente de mettre copier quoi que ce soit à la « DestinationBucket » en utilisant le profil, je suis erreur d'accès refusé.
aws s3 cp test s3://DestinationBucket --profile sourceProfile --region us-east-1 upload failed: ./test to s3://DestinationBucket/test An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
Ai-je mis en place la politique de seau en particulier la liste des droit d'action? Comment ls et cp peuvent-ils aller de la destination au travail local mais cp du seau local au seau de destination ne fonctionne pas?
Pouvez-vous changer temporairement l'action à '" s3: * "' pour tester si cela fonctionne? Si c'est le cas, il y a probablement des actions supplémentaires dont la commande 'aws s3 cp' a besoin dans le compartiment de destination. –
Oui, j'ai essayé s3: * et obtenu le même résultat –
Ensuite, il devrait certainement fonctionner! Je suggère de le changer temporairement en un Principal de '*' pour voir si cela fonctionne. Cela aidera à affiner ce qui pourrait être faux. –