2015-07-27 8 views
6

ich die AWS cli auf einer EC2-Instanz installiert haben, und ich konfiguriert es durch aws configure laufen und es meine AWSAccessKeyId und AWSSecretKey Schlüssel geben also, wenn ich den Befehl ausführen aws s3 ls es den Namen gibt der mein S3-Eimer (nennen Sie es "mybucket").S3 cp von AWS cli mit Root-Schlüssel AccessDenied

Aber wenn ich dann aws s3 cp localfolder/ s3://mybucket/ --recursive versuchen bekomme ich einen Fehler, der wie

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

ich sieht dachte, dass durch aws konfigurieren laufen und es ist mein Stammschlüssel zu geben, dass ich effektiv die aws cli alles was es braucht, um authentifizieren? Gibt es etwas, das mir fehlt, wenn ich in einen S3-Bucket kopiere, anstatt sie aufzulisten?

+1

Ihrem IAM-Benutzer/Ihrer Rolle muss eine Richtlinie zugewiesen werden, mit der sie die Aktion "CreateMultipartUpload" ausführen kann. Sie können Richtlinien über IAM simulieren, um zu überprüfen, ob sie funktioniert. –

+1

root-Zugriffsschlüssel und geheime Schlüssel sollten alle Berechtigungen besitzen. Versuchen Sie die aws configure erneut auszuführen - –

+0

Danke @Naveen Basierend auf Ihrem Kommentar habe ich versucht, einen anderen Satz von Stammschlüsseln zu verwenden, die ich auf einem anderen Computer hatte und es hat funktioniert. Ich bin jetzt verwirrt, warum ein Satz von Grundschlüsseln funktioniert hat, aber der andere nicht. Aber zumindest dein Vorschlag hat mein Problem gelöst. –

Antwort

3

Root Access-Schlüssel und Secret Key haben volle Kontrolle und volle Rechte für die Interaktion mit dem AWS. Versuchen Sie, die aws configure erneut auszuführen, um die Einstellung erneut zu überprüfen, und versuchen Sie es erneut.

PS: Es wird nicht empfohlen, root-Zugriffsschlüssel zu verwenden - bitte denken Sie daran, ein IAM zu erstellen (die Admin-Berechtigungen wie Root nehmen) und diese verwenden.

2

Wenn Sie Umgebungsvariablen AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID und AWS_REGION-Set, gibt AWS CLI höhere Priorität zu ihnen, und nicht auf Anmeldeinformationen geben Sie mit aws configure.

Also, in meinem Fall, bash Befehl unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY löste das Problem.

2

Dachte, ich in einer sehr ähnlichen Problem hinzufügen würde, die ich hatte, wo ich Eimer Liste konnte, konnte aber nicht auf einen bestimmten Eimer schreiben Rücksendung der Fehler

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

Wenn der Eimer serverseitige Verschlüsselung verwendet müssen Sie das Flag --sse hinzufügen, um in diesen Bucket schreiben zu können.

0

Bitte legen Sie die Politik wie unter

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "myPolicy", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "*", 
      "Resource": [ 
       "arn:aws:s3:::YOUR_BUCKET_NAME/*", 
       "arn:aws:s3:::YOUR_BUCKET_NAME" 
      ] 
     } 
    ] 
} 

und versuchen, zu laden. Es hat für mich funktioniert.

Verwandte Themen