使用aws cli为SQS添加发送消息权限

问题描述 投票:2回答:2

我正在尝试将现有的SQS队列设置为SNS主题的订阅者。在AWS控制台的“权限”选项卡中,我可以将策略文档设置为

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:us-east-1:7670234568007:stdsourcequeue/SQSDefaultPolicy",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:us-east-1:7670234568007:stdsourcequeue",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:sns:us-east-1:7670234568007:new_posts"
        }
      }
    }
  ]
}

如何使用aws-cli执行此操作

amazon-web-services amazon-sqs amazon-sns
2个回答
0
投票
这是

实际示例,如何使用set-queue-attributes

cat >/tmp/sqs_polcy << EOL { "Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"arn:aws:sqs:us-east-1:7670234568007:stdsourcequeue\/SQSDefaultPolicy\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"sqs:SendMessage\",\"Resource\":\"arn:aws:sqs:us-east-1:7670234568007:stdsourcequeue\",\"Condition\":{\"ArnEquals\":{\"aws:SourceArn\":\"arn:aws:sns:us-east-1:7670234568007:new_posts\"}}}]}" } EOL aws sqs set-queue-attributes \ --queue-url https://<your-queue-url> \ --attributes file:///tmp/sqs_polcy
上面,我使用/tmp/sqs_polcy命令所需的策略创建set-queue-attributes文件。

您的策略

必须字符串化

来自json,然后才能在CLI命令中使用。

0
投票
这些通常通过SQS的add-permission的CLI命令进行管理。

但是,当您使用自己的自定义策略时,AWS文档说明了以下内容

AddPermission为您生成一个策略。您可以使用SetQueueAttributes上传您的政策。

可以通过set-queue-attributes功能访问。

您的策略将需要根据Policy的键值转换为JSON文件。

作为警告,这样做将

替换附加到您的SQS队列的策略,因此请确保事先进行验证。

© www.soinside.com 2019 - 2024. All rights reserved.