SQS 队列需要哪些权限才能通过 SNS 接收来自 SES 的通知?
What permissions are needed on an SQS queue in order to be able to receive notifications from SES over SNS?
我的方案:使用 SES 发送邮件并通过 SNS 将传递信息接收到 SQS 队列中。该队列需要具有什么权限?
我发现如果我不授予任何权限,所有通知都不会到达。当我授予 Everyone
权限时,通知确实会到达,但这是不安全的。
我应该设置什么权限?
您需要授予 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
我的方案:使用 SES 发送邮件并通过 SNS 将传递信息接收到 SQS 队列中。该队列需要具有什么权限?
我发现如果我不授予任何权限,所有通知都不会到达。当我授予 Everyone
权限时,通知确实会到达,但这是不安全的。
我应该设置什么权限?
您需要授予 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