AWS의 최근 발표 된 "EC2 용 IAM 역할"기능을 사용하려고합니다.이 기능을 사용하면 보안 자격 증명을 자동으로 EC2 인스턴스에 전달할 수 있습니다. (http://aws.amazon.com/about-aws/whats-new/2012/06/11/Announcing-IAM-Roles-for-EC2-instances/ 참조).BAM 문제가 IAM 역할을 맡습니다.
설명 된대로 IAM 역할로 인스턴스를 설정했습니다. 나는 또한 컬 (curl)을 사용하여 (겉으로보기에) 적절한 액세스 키/자격 증명을 얻을 수 있습니다.
그러나 boto는 "get_all_buckets"와 같은 간단한 호출을 수행하지 못합니다. 비록 내가 그 역할에 대한 모든 S3 권한을 설정 했어도.
는
"당신이 우리의 기록에 존재하지 않는 제공하는 AWS 액세스 키 ID는"그러나 오류에 나와있는 액세스 키는 내가 컬에서 얻는 것과 일치 내가 오류입니다. 당신이 BOTO 2.5.1을 사용하는 경우
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()
수동 접근법에 대해서는 올바른 방법 인 security_token을 추가하십시오. 고맙습니다! 나는 당신을 '대답'으로 표시했습니다. – Nils
게시 한 간소화 된 버전은 2.5.1로 업그레이드 한 후에도 작동합니다. 두 가지를 받아 들일 수 있다면 그렇게 할 수 있습니다! – Nils
좋아, 이제 다행 이네. 새로운 IAM 역할 기능이 마음에 듭니다. 정말 매끄럽습니다. – garnaat