繁体   English   中英

使用带有Boto 2.38的IAM角色连接到AWS SQS的问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM