IAM角色的boto问题
我正在尝试使用AWS最近宣布的“
EC2的IAM角色”功能,该功能可让安全凭证自动传递到EC2实例。(请参阅http://aws.amazon.com/about-aws/whats-
new/2012/06/11/Announcing-IAM-Roles-for-
EC2-instances/)。
如上所述,我已经设置了一个具有IAM角色的实例。我还可以通过curl获得(貌似)正确的访问密钥/凭据。
但是,即使我已为该角色打开了ALL S3权限,boto也无法执行“ get_all_buckets”之类的简单调用。
我收到的错误是“您提供的AWS Access Key ID在我们的记录中不存在”
但是,错误中列出的访问密钥与我从curl获得的访问密钥相匹配。
以下是失败的脚本,该脚本在附加了IAM角色且具有所有S3权限的EC2实例上运行:
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()