amazon-web-services - AWS CloudFormation 将 SNS 仅限制到特定 SQS 队列

标签 amazon-web-services aws-cloudformation amazon-sqs amazon-sns

我正在修改 AWS CloudFormation 模板,目的是确保SNS 主题 A 是唯一可以发布到 SQS 队列 1SQS 的主题队列 2。 这就是我所拥有的:

SomeOtherQueue:
    Type: AWS::SQS::Queue
InboundQueue:
    Type: AWS::SQS::Queue
InboundCopyQueue:
    Type: AWS::SQS::Queue

InboundTopic:
  Type: AWS::SNS::Topic
  Properties:
    Subscription:
    - Endpoint:
        Fn::GetAtt:
        - InboundQueue
        - Arn
       Protocol: sqs

InboundQueuePolicy:
  Type: AWS::SQS::QueuePolicy
  Properties:
    PolicyDocument:
      Version: '2012-10-17'
      Id: InboundQueuePolicy
      Statement:
      - Sid: Allow-SendMessage-To-Inbound-Queue-Only
        Effect: Allow
        Principal:
          Service:
            - sns.amazonaws.com
        Action:
          - sqs:SendMessage
        Resource: "*"
    Queues:
      - Ref: InboundQueue
      - Ref: InboundCopyQueue

上面定义了一组队列、一个订阅一些相关队列的主题以及一个队列策略,该策略旨在限制哪个主题可以发布到引用的队列。

我想要了解的是如何确保InboundQueuePolicy仅适用于InboundTopic。我似乎找不到引用 InboundTopic 作为 InboundQueuePolicy 资源的正确语法。

任何有关获得正确语法的帮助将不胜感激。

谢谢

最佳答案

我相信您可以向使用 aws:SourceArn 键的策略添加一个条件。 AWS Global Condition Context Keys - Source ARN

关于amazon-web-services - AWS CloudFormation 将 SNS 仅限制到特定 SQS 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60053445/

相关文章:

amazon-web-services - 配置Concourse CI以使用AWS Secrets Manager

java - 新手 : query amazon s3 database in Android client (Java)

amazon-web-services - 从 s3 模板更新 AppSync 架构

amazon-web-services - 如何获取动态创建的 lambda 角色的名称?

amazon-web-services - Amazon SQS,是否可以根据发件人 ID 从 SQS 获取消息

php - 如何使用 PHP AWS SDK 获取实例元数据?

javascript - AWS Lambda NodeJs 无法返回响应

amazon-web-services - 在 AWS EC2 实例上静默安装 Tableau Server 10.2 是否有效?

node.js - aws FIFO 队列返回空队列,即使它有可用消息

javascript - 如何在不发送私钥的情况下获取新消息SQS