amazon-web-services - 仅通过使用 SQS::QueuePolicy 'principal' 属性的 Lambda 函数来限制对 SQS 的访问
问题描述
我有一个使用此队列策略的 SQS 队列
SQSPolicy:
Type: AWS::SQS::QueuePolicy
Properties:
Queues:
- !Ref myQueue
PolicyDocument:
Statement:
- Effect: 'Allow'
Principal: '*'
Action:
- 'SQS:SendMessage'
- 'SQS:ReceiveMessage'
- 'SQS:DeleteMessage'
- 'SQS:GetQueueAttributes'
Resource: !GetAtt myQueue.Arn
有了这个策略Principal: '*'
,我使用 aws-sdk 从一个 lambda 函数(我提供了 sendMessage 权限)发送消息到队列,我成功地将消息发送到队列中。
但我试图通过我的项目中的 lambda 函数来限制对队列的访问。因此,当我添加条件和策略时,如下所示:
SQSPolicy:
Type: AWS::SQS::QueuePolicy
Properties:
Queues:
- !Ref myQueue
PolicyDocument:
Statement:
- Effect: 'Allow'
Principal: '*'
Action:
- 'SQS:SendMessage'
- 'SQS:ReceiveMessage'
- 'SQS:DeleteMessage'
- 'SQS:GetQueueAttributes'
Resource: !GetAtt myQueue.Arn
Condition:
ArnLike:
aws:SourceArn: arn:aws:*
有了这个,我在 sendMessage 调用期间在我的 lambda 函数中出现错误。
Access to the resource https://sqs.us-east-1.amazonaws.com/ is denied.
有谁知道解决方案?
解决方案
推荐阅读
- kubernetes - 在实时集群中添加 apiserver extraArgs/extraVolumes
- javascript - 未捕获的 ReferenceError:未定义水印
- elasticsearch - logstash 配置文件的 Grok 模式
- javascript - Javascript filter() 函数过滤父元素
- python - 使用变量中的值调用函数
- sapui5 - 如何在 SAP UI5 中对 IconTabBar UI 控件中的选项卡进行排序
- eventhandler - Axon 事件处理程序应该 - 间接 - 发出新事件
- python - 尝试从共享点提取数据时出现错误 400
- c - 如果在 C 中没有预先给出数组的大小,我可以初始化数组中的整数吗?
- reactjs - suneditor-react Typescript getContent 不起作用