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(另一种选择是只使用通配符)。