【问题标题】:Is there a way to send a message to Amazon SQS 'without' using AWS Credentials?有没有办法在不使用 AWS 凭证的情况下向 Amazon SQS 发送消息?
【发布时间】:2018-11-01 16:31:13
【问题描述】:

我的应用程序需要向 sqs 队列发送消息。我可以使用来自 http://boto.cloudhackers.com/en/latest/sqs_tut.htmlboto.sqs.connect_to_region() 轻松完成所需的操作。这个想法非常简洁[这里没有问题]

最近我意识到需要在不使用 AWS 密码的情况下发送数据。我想知道如何在不提供凭证的情况下将数据发送到 AWS SQS。

我还读到了:https://github.com/chilts/awssum/issues/48

有人能告诉我如何在没有信用的情况下简单地推送到 SQS。最近我认为答案可以围绕 IAM 角色(一些与策略相关或角色)或 SQS 队列创建。

帮助兄弟姐妹:)

【问题讨论】:

    标签: amazon-web-services amazon-sqs


    【解决方案1】:

    答案是使用 IAM 角色。你在哪里运行你的 Python boto 脚本? EC2?使用 Python 的 AWS Lambda?

    您可以在此处了解有关使用角色获取凭据的一些信息:

    http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk-ec2-instances

    您必须创建一个 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 实例将根据其角色生成临时凭证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 2023-03-23
      • 2023-03-19
      • 2022-11-25
      • 1970-01-01
      • 2021-11-12
      相关资源
      最近更新 更多