QueuePolicy 中需要什么权限才能允许 SNS 发送到 SQS?
What permissions are needed in QueuePolicy to allow SNS to send to SQS?
IamRoleSNSPublishSQS:
Type: AWS::SQS::QueuePolicy
Properties:
PolicyDocument:
Version: "2012-10-17"
Statement:
- Sid: Allow-SNS-Messages
Effect: Allow
Principal:
AWS: '*'
Action:
- "SQS:*"
Resource: {"Ref": "IncomingEmailSnsTopic"}
Condition:
ArnEquals:
aws:SourceArn: !Ref 'IncomingEmailSnsTopic'
Queues:
- {"Ref": "MyQueue"}
这就是我的政策(不会更新 Cloudformation 堆栈)。
当我有那个时,消息无法发布到队列。
如果我再更新权限:
并选中此框:
然后当消息被发布时,它确实进入了队列。队列策略有什么问题?
在您的队列策略中,资源字段当前指向 SNS 主题的 ARN。
资源字段应指向策略适用的资源。换句话说,队列的 ARN(另一种选择是只使用通配符)。
IamRoleSNSPublishSQS:
Type: AWS::SQS::QueuePolicy
Properties:
PolicyDocument:
Version: "2012-10-17"
Statement:
- Sid: Allow-SNS-Messages
Effect: Allow
Principal:
AWS: '*'
Action:
- "SQS:*"
Resource: {"Ref": "IncomingEmailSnsTopic"}
Condition:
ArnEquals:
aws:SourceArn: !Ref 'IncomingEmailSnsTopic'
Queues:
- {"Ref": "MyQueue"}
这就是我的政策(不会更新 Cloudformation 堆栈)。
当我有那个时,消息无法发布到队列。
如果我再更新权限:
并选中此框:
然后当消息被发布时,它确实进入了队列。队列策略有什么问题?
在您的队列策略中,资源字段当前指向 SNS 主题的 ARN。
资源字段应指向策略适用的资源。换句话说,队列的 ARN(另一种选择是只使用通配符)。