2017-02-15 23 views
0

У меня возникла проблема с использованием ролей IAM.Не удалось загрузить учетные данные с использованием IAM

Я запустил экземпляры с использованием шаблона Cloudformation, где я определил свою роль и политики для доступа к ведро s3 и другим ресурсам amazon. После запуска скрипта успешно извлекает необходимые ресурсы из s3.

Однако я запустил загруженные сценарии, которые используют boto3 как sdk, и я получил ошибку; Boto failed to load credentials (как я понимаю, он может загрузить учетные данные либо из AWS Полномочия файлов или IAM роли.

Тогда я бегу aws s3 ls, чтобы проверить эту проблему, а также получил ту же проблему. Кроме того, я проверил свою роль, используя policysim (S3ListAllMyBucketsnot, S3ListAllMyBucketsnot) и понял, что все в порядке.

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

следует отметить, что я играл с CloudFormation целый день и начал довольно должны экземпляров (но завершение их). Может ли это быть проблема ограничения?

Любые решения?

+0

У вас есть переменные окружения '' AWS_ACCESS_KEY_ID' и AWS_SECRET_ACCESS_KEY' набор? Проверьте мой ответ в: http://stackoverflow.com/questions/41621353/new-iam-admin-user-sees-you-are-not-authorized-to-perform-this-operation/41621987#41621987 – helloV

ответ

2

Чтобы подтвердить, что роль правильно предоставления учетных данных для экземпляра Amazon EC2, запустите эту команду на экземпляре:

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

Это должно показать имя роли, назначенного экземпляру.

Тогда попробуйте это, вставляя имя роли:

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

Вы должны быть представлены с временными учетными данными, похожими на это:

{ 
    "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" 
} 

Если да, то boto сможет автоматически получить доступ к тем полномочия.

Всякий раз, когда что-то странное происходит с boto, это всегда хорошая идея, чтобы убедиться, что он обновлен до последней версии. Это обновление бото, boto3 и 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