我正在开发一个无服务器架构的项目。
我发现虽然AWS表示API网关可以保护您的资源免受DDoS攻击。
但是如果有一个糟糕的用户不断向您的服务发送垃圾邮件,
API网关无法提供处理此类问题的适当方法。
所以我开始弄清楚我能做些什么:
我在stackoverflow上发现了这篇文章:API gateway with aws waf
然后为了设置WAF,
我将Cloud Front发行版放在API网关前面。
我意识到这可能是一种解决方案,但不是吗?
以下是我发现的问题:
我有云端分发,其域名为cdn.net
我将原始路径设置为我的api网关:https://sampleagigw.amazon.com
,并将路径设置为其dev
阶段。
当我致电GET http://cdn.net/posts
时,它会返回我期望的结果。
然后,如果您将http://cdn.net/posts
放在浏览器上,它会让您感到惊讶,而且还会在浏览器的网址栏上显示API网关的网址:https://sampleagigw.amazon.com/dev/posts
这意味着WAF和云端的所有工作都毫无意义。
有什么我误解的吗?
答案 0 :(得分:4)
检查"查看器协议策略"在您的其他CloudFront分配(cdn.net)上,并确保将其设置为"将HTTP重定向到HTTPS"或"仅限HTTPS;#34;。或者,您可以编辑您的来源并设置"原始协议政策"到"仅限HTTPS;#34;。
如果您有"查看器协议政策"设置为" 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
网址保留在浏览器的网址栏中。