проблема boto с ролью IAM

Я пытаюсь использовать недавно анонсированную функцию AWS «Роли IAM для EC2», которая позволяет автоматически получать учетные данные безопасности. доставлены в инстансы EC2 (см. http://aws.amazon.com/about-aws/whats-new/2012/06/11/Announcing-IAM-Roles-for-EC2-instances/).

Я настроил экземпляр с ролью IAM, как описано. Я также могу получить (на первый взгляд) правильный ключ доступа / учетные данные с помощью curl.

Однако boto не может выполнить простой вызов, например "get_all_buckets", хотя я включил ВСЕ разрешения S3 для роли

Ошибка, которую я получаю: «Предоставленный вами идентификатор ключа доступа AWS не существует в наших записях»

Однако ключ доступа, указанный в ошибке, совпадает тот, который я получаю от curl.

Вот неудачный сценарий, запущенный на экземпляре EC2 с прикрепленной ролью IAM, которая дает все разрешения S3:

import urllib2
import ast
from boto.s3.connection import S3Connection

resp=urllib2.urlopen('http://169.254.169.254/latest/meta-data/iam/security-credentials/DatabaseApp').read()
resp=ast.literal_eval(resp)
print "access:" + resp['AccessKeyId']
print "secret:" + resp['SecretAccessKey']
conn = S3Connection(resp['AccessKeyId'], resp['SecretAccessKey'])
rs= conn.get_all_buckets()

23
задан Nils 21 June 2012 в 00:20
поделиться