SQS队列需要什么权限才能通过SNS从SES接收通知?

时间:2016-02-03 18:08:19

标签: amazon-web-services amazon-sqs amazon-sns amazon-ses

我的场景:使用SES发送邮件并通过SNS接收传递信息到SQS队列。该队列需要具有哪些权限?

我发现,如果我没有授予任何权限,则所有通知都不会到达。当我授予Everyone权限时,通知会到达,但这是不安全的。

我应该设置什么权限?

1 个答案:

答案 0 :(得分:3)

您需要授予SNS队列调用sqs:SendMessage API调用

的权限

为此,您需要向SQS队列添加一个策略,该策略允许所有主体在其ARN是您的SNS的ARN的情况下,有效地锁定来自您的SNS主题的特定呼叫。

您可以在下面找到一个示例 - 根据需要替换Resource和SourceArn。

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"MySQSPolicy001",
      "Effect":"Allow",
      "Principal":"*",
      "Action":"sqs:SendMessage",
      "Resource":"arn:aws:sqs:us-east-1:123456789012:MyQueue",
      "Condition":{
        "ArnEquals":{
          "aws:SourceArn":"arn:aws:sns:us-east-1:123456789012:MyTopic"
        }
      }
    }
  ]
}

来源:http://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html