我正在开发一个无服务器架构的项目。
我发现虽然AWS说API Gateway可以保护您的资源免受DDoS攻击。
但如果有坏用户不断向您的服务发送垃圾邮件,
API网关无法提供适当的方法来处理此类问题。
所以我开始思考我能做什么:
我在 stackoverflow 上找到了这篇文章:带有 aws waf 的 API 网关
然后为了设置WAF,
我将 Cloud Front 发行版放在 API 网关前面。
我意识到这可能是一个解决方案,但是是吗?
这是我发现的问题:
我有一个cloud front发行版,它的域名是cdn.net
我将原始路径设置为我的 api 网关:https://sampleagigw.amazon.com
,并设置其阶段的路径dev
.
当我调用 GET 时http://cdn.net/posts
,它会返回我期望的结果。
那么如果你把http://cdn.net/posts
在浏览器上,它比你想象的更让你惊讶,它还在浏览器的地址栏上暴露了API网关的url:https://sampleagigw.amazon.com/dev/posts
这意味着WAF和Cloud front的所有工作都是毫无意义的。
我有什么误解吗?
检查其他 CloudFront 分配 (cdn.net) 上的“查看器协议策略”,并确保将其设置为“将 HTTP 重定向到 HTTPS”或“仅 HTTPS”。或者,您可以编辑源并将“源协议策略”设置为“仅 HTTPS”。
如果您将“查看器协议策略”设置为“HTTP 和 HTTPS”,并将“源协议策略”设置为“匹配查看器”,那么我可以看到您将如何获得此结果。你输入http://cdn.net/posts
在浏览器上,然后 cdn.net 发行版尝试连接到http://sampleagigw.amazon.com
(无 https/tls/ssl)。这将转到由 API Gateway 创建的 CloudFront 分配,该分配设置为“将 HTTP 重定向到 HTTPS”。由于它收到了 HTTP 请求,因此它返回 302 重定向到http://sampleagigw.amazon.com
。这是由 cdn.net 分发返回给浏览器的。然后浏览器遵循 302 重定向,留下http://sampleagigw.amazon.com
浏览器地址栏中的 URL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)