2017-02-15 3 views
0

geladen werden. Ich habe ein Problem mit IAM-Rollen.Die Anmeldeinformationen können nicht mit IAM

Ich startete Instanzen mit Cloudformation Vorlage, wo ich meine Rolle und Richtlinien für den Zugriff auf s3 Bucket und andere Amazon Ressourcen angegeben. Nach dem Start des Skripts erfolgreich holt benötigte Ressourcen von s3.

Allerdings habe ich meine heruntergeladenen Skripte, die Boto3 als SDK verwenden, gestartet und ich habe einen Fehler erhalten; Boto failed to load credentials (wie ich es verstehe kann Anmeldeinformationen laden entweder von aws Credentials Dateien oder von IAM Rolle.

Dann laufe ich aws s3 ls das Problem zu überprüfen und bekam auch das gleiche Problem. Auch testete ich meine Rolle mit policysim (S3ListAllMyBucketsnot, S3ListAllMyBucketsnot) und herausgefunden, dass alles in Ordnung ist.

Amazon S3ListBucketnot required * allowed 1 matching statements. Amazon S3ListAllMyBucketsnot required * allowed 1 matching statements.

es sollte beachtet werden, dass ich spielte mit Cloudformation den ganzen Tag und startete ziemlich muss Instanzen (aber Shutdown ihnen). Könnte es eine Beschränkung Problem sein?

Irgendwelche Lösungen?

+0

Haben Sie Umgebungsvariablen 'AWS_ACCESS_KEY_ID' und' AWS_SECRET_ACCESS_KEY' gesetzt haben? Überprüfen Sie meine Antwort in: http://stackoverflow.com/questions/41621353/new-iam-admin-user-sees-you-are-not-authorized-to-perform-this-operation/41621987#41621987 – helloV

Antwort

2

Um zu bestätigen, dass die Rolle richtig Anmeldeinformationen an die Amazon EC2-Instanz bereitstellt, führen Sie diesen Befehl auf der Instanz:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ 

Es den Namen der zu der Instanz zugewiesene Rolle zeigen.

Dann wird diese versuchen, den Rollennamen einfügen:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<ROLE-NAME>/ 

Sie sollten mit temporären Anmeldeinformationen ähnlich wie diese präsentiert werden:

{ 
    "Code" : "Success", 
    "LastUpdated" : "2017-04-26T16:39:16Z", 
    "Type" : "AWS-HMAC", 
    "AccessKeyId" : "AKIAIOSFODNN7EXAMPLE", 
    "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", 
    "Token" : "token", 
    "Expiration" : "2017-04-27T22:39:16Z" 
} 

Wenn ja, dann wird boto der Lage sein, automatisch diejenigen zugreifen Referenzen.

Immer wenn etwas Seltsames mit boto passiert, ist es immer eine gute Idee, um sicherzustellen, dass es auf die neueste Version aktualisiert wird. Diese Updates Boto, boto3 und die AWS Command-Line Interface (CLI):

sudo /usr/local/bin/pip install boto --upgrade 
sudo /usr/local/bin/pip install boto3 --upgrade 
sudo /usr/local/bin/pip install awscli --upgrade 
Verwandte Themen