我的应用程序需要将消息发送到sqs队列。我可以使用http://boto.cloudhackers.com/en/latest/sqs_tut.html中的boto.sqs.connect_to_region()
轻松完成所需操作。这个想法非常简洁[没有问题]
最近我意识到需要在不使用AWS密码的情况下发送数据。我想知道如何在没有提供和凭据的情况下将数据发送到AWS SQS。
我也读过:https://github.com/chilts/awssum/issues/48
有人能指出我如何在没有信誉的情况下对SQS进行简单的推送。最近我认为答案可能是围绕IAM角色(某些策略相关或角色)或SQS队列创建。
帮助兄弟们:)
答案 0 :(得分:4)
答案是使用IAM角色。你在哪里运行Python boto脚本? EC2? AWS Lambda with Python?
您可以在此处了解如何使用角色获取凭据:
您必须创建一个IAM策略,该策略具有执行SQS所需操作的权限。示例:
http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html)。
{
"Version": "2012-10-17",
"Id": "Queue1_Policy_UUID",
"Statement":
{
"Sid":"Queue1_Send_Receive",
"Effect": "Allow",
"Principal": {
"AWS": "111122223333"
},
"Action": ["sqs:SendMessage","sqs:ReceiveMessage"],
"Resource": "arn:aws:sqs:*:444455556666:queue1"
}
}
并且您将为您的角色附加您创建的策略。然后,您将角色分配给正在运行脚本的EC2,因此在运行时,EC2实例将根据其角色生成临时凭证。