2016-02-05 46 views
0

我的應用程序需要發送消息到sqs隊列。我能夠使用http://boto.cloudhackers.com/en/latest/sqs_tut.htmlboto.sqs.connect_to_region()輕鬆完成所需的操作。這個想法非常簡潔[這裏沒有問題]有沒有辦法在沒有使用AWS Credentials的情況下向Amazon SQS發送消息?

最近我意識到需要發送數據而不使用AWS密碼。我想知道如何在不提供憑據的情況下將數據發送到AWS SQS。

我也讀到:https://github.com/chilts/awssum/issues/48

有人點我就如何在不creds執行一個簡單的推SQS。最近我認爲答案可以圍繞IAM角色(某些與策略有關的角色)或SQS隊列創建。

幫助兄弟姐妹們:)

回答

2

答案是使用AIM角色。你在哪裏運行你的python boto腳本?一個EC2? AWS Lambda與Python?

你可以學到一些關於使用角色在這裏獲得證書:http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk-ec2-instances

您必須創建具有的權限與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實例將根據其角色生成臨時憑證。

相關問題