我的场景:使用SES发送邮件并通过SNS接收传递信息到SQS队列。该队列需要具有哪些权限?
我发现,如果我没有授予任何权限,则所有通知都不会到达。当我授予Everyone
权限时,通知会到达,但这是不安全的。
我应该设置什么权限?
答案 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