[英]Boto3 not assuming IAM role from credentials where aws-cli does without problem
[英]Issue connecting to AWS SQS using IAM Role with Boto 2.38
我無法使用其與Boto 2.38庫(和Python 3 )關聯的IAM角色從EC2實例向AWS Simple Queue Service (SQS)進行身份驗證。
我找不到關於它的文檔的任何具體信息,但是據我從示例和周圍的其他問題可以理解的是,它應該可以像這樣打開連接。
conn = boto.sqs.connect_to_region('us-east-1')
queue = conn.get_queue('my_queue')
取而代之的是,除非從我的環境中或顯式地向該方法提供憑據,否則我將從connect方法獲得一個空對象。
我很確定自己的角色還可以,因為它可以透明地用於S3等其他服務,描述EC2標簽,將指標發送到CloudWatch等。 我的SQS政策是這樣的:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SQSFullAccess",
"Effect": "Allow",
"Action": [
"sqs:*"
],
"Resource": [
"arn:aws:sqs:us-east-1:<account_id>:<queue_name1>",
"arn:aws:sqs:us-east-1:<account_id>:<queue_name2>"
]
}
]
}
為了消除對我的策略的懷疑,我什至暫時將FullAdmin策略與我的角色相關聯,但沒有成功。
我還驗證了它也不能與AWS CLI一起使用(據我所知,它也使用Boto )。 因此,我唯一能得出的結論是,這是SQS客戶端的Boto問題。
會有人有不同的經歷嗎? 我知道切換到Boto 3可能會解決它,但是我現在不考慮這樣做,如果它確實是個錯誤,我認為應該在git上進行報告。
謝謝。
回答我自己。
寶途的2.38 SQS客戶端不與IAM角色的工作。 我的應用程序中有一個錯誤。
對於AWS CLI,我的本地帳戶中存在一個憑證文件( 〜/ .aws / credentials ),並且該憑證文件代替了實例的角色,因為該角色是CLI所要查找的最后一個文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.