我正在修改 AWS CloudFormation 模板,目的是确保SNS 主题 A 是唯一可以发布到 SQS 队列 1 和 SQS 的主题队列 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/