web-dev-qa-db-fra.com

S3 cp AccessDenied from AWS cli with root keys

J'ai installé l'AWS cli sur une instance EC2 et je l'ai configuré en exécutant aws configure et en lui donnant mes clés AWSAccessKeyId et AWSSecretKey, donc si j'exécute la commande aws s3 ls il renvoie le nom de mon compartiment S3 (appelez-le "mybucket").

Mais si j'essaye alors aws s3 cp localfolder/ s3://mybucket/ --recursive J'ai une erreur qui ressemble à

A client error (AccessDenied) occurred when calling the CreateMultipartUpload operation: Anonymous users cannot initiate multipart uploads.  Please authenticate.

Je pensais qu'en exécutant aws configure et en lui donnant ma clé racine, je donnais effectivement à aws cli tout ce dont il avait besoin pour s'authentifier Y a-t-il quelque chose qui me manque concernant la copie dans un compartiment S3 au lieu de les répertorier?

12
not link

Les clés d'accès racine et la clé secrète ont un contrôle total et des privilèges complets pour interagir avec l'AWS. Veuillez essayer d'exécuter le aws configure à nouveau pour revérifier le paramètre et réessayer.

PS: il est fortement déconseillé d'utiliser des clés d'accès root - pensez à créer un IAM (qui prend des privilèges d'administrateur comme root) et utilisez-les.

7
Naveen Vijay

Je pensais que j'ajouterais un problème très similaire que j'avais lorsque je pouvais répertorier les compartiments mais ne pouvais pas écrire dans un compartiment donné renvoyant l'erreur

An error occurred (AccessDenied) when calling the CreateMultipartUpload operation: Access Denied

Si le compartiment utilise chiffrement côté serveur vous devrez ajouter le --sse flag pour pouvoir écrire dans ce compartiment.

19
ScottMcC

Si vous avez des variables d'environnement AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID et AWS_REGION set, AWS CLI leur donne une priorité plus élevée, et non aux informations d'identification que vous spécifiez avec aws configure.

Donc, dans mon cas, la commande bash unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY résolu le problème.

5
Mikhail Vasin