我正试图通过python boto库连接到Amazon SQS。
import boto3
sqs= boto3.resource('sqs')
for queue in sqs.queues.all():
print(queue.url)
我已将凭据存储在~/.aws/credentials文件中
[default]
aws_access_key_id=XXX
aws_secret_access_key=YYY
region=us-west-2
但是当我执行代码时,我得到一个错误
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ListQueues operation: Access to the resource https://us-west-2.queue.amazonaws.com/ is denied.
我试着直接连接到队列。 LCqueue=sqs.get_queue_by_name(QueueName='myQueue')
但它告诉我没有这样的队伍。即使我可以在AWS管理控制台上看到它。有什么想法吗?
我的IAS管理控制台也出现错误。我不能列出任何用户。
我最终使用了以前版本的Boto(2)
我知道这是旧的,但如果有人先这么做:这可能是因为你试图连接的地区。
我可以通过aws web控制台访问us-east-1中的SQS,但是尝试从us-east-1中的队列检索消息时,python客户端拒绝了访问。
谢天谢地,在github的讨论中:https://github.com/aws/aws-sdk-php/issues/188#issuecomment-258880267,我尝试将区域更改为应该具有权限的区域,并且能够从该区域中创建的队列接收消息。
您确定您的用户已被授予
SQS
权限吗?转到IAM服务,选择您的用户(您在CLI中使用的用户)并检查附加到您的用户的组/权限。
如果没有,可以在“搜索IAM”框(左上角)中搜索
SQS
选择“将实体附加到AmazonSQSReadOnlyAccess(或AmazonSQSFullAccess)”并将预定义的策略附加到用户上
相关问题 更多 >
编程相关推荐