有没有办法使用 AWS 凭证向 Amazon SQS 'without' 发送消息?
Is there a way to send a message to Amazon SQS 'without' using AWS Credentials?
我的应用程序需要向 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 队列创建。
帮兄弟解决问题:)
答案是使用 IAM 角色。您 运行 您的 Python boto 脚本来自哪里? EC2? Python?
的 AWS Lambda
您可以在此处了解有关使用角色获取凭据的一些信息:
您必须创建一个 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 实例将根据其角色生成临时凭证。
我的应用程序需要向 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 队列创建。
帮兄弟解决问题:)
答案是使用 IAM 角色。您 运行 您的 Python boto 脚本来自哪里? EC2? Python?
的 AWS Lambda您可以在此处了解有关使用角色获取凭据的一些信息:
您必须创建一个 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 实例将根据其角色生成临时凭证。