如何解决AWS API网关:用户:匿名无权执行:execute-api:在资源上调用:arn:aws:execute-api:
我用terraform创建了API网关,然后使用无服务器框架将API附加到它。
我已基于此AWS教程(https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-resource-policy-access/)创建了资源策略,因为我希望能够使用自定义API网关域,但我不希望任何人都可以通过Internet访问我的API,除非其IP地址在我的白名单中。
这是我提供的政策:
DOM
我已经重新部署了我的API,现在无论我的IP地址是否在允许列表中,我都被阻止了,并且根据教程,这应该可以工作。
我还通过删除整个deny部分测试了该策略,因此它仅允许所有流量,并且仍然导致我的呼叫被阻止,当我删除该策略并重新部署无服务器项目时,它可以再次工作,因此有人说允许策略仍然会阻止所有IP地址吗?
我正在寻找有关查找位置的想法,以找出白名单为何不起作用的原因。
解决方法
此问题的答案是我缺少我的允许策略中的许可,需要显式允许才能允许任何随后被拒绝策略排除的内容,但它缺少任何操作,我必须确保存在以下内容在生成该策略的允许部分的地形中:
actions = ["execute-api:Invoke"]
然后在实际的IAM策略中将其翻译为以下内容:
"Action": "execute-api:Invoke"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。