将AWS API Gateway与Cloud Front集成,而不暴露原点

时间:2016-06-27 09:21:53

标签: amazon-web-services amazon-cloudfront aws-api-gateway

我正在开发一个无服务器架构的项目。

我发现虽然AWS表示API网关可以保护您的资源免受DDoS攻击。

但是如果有一个糟糕的用户不断向您的服务发送垃圾邮件,

API网关无法提供处理此类问题的适当方法。

所以我开始弄清楚我能做些什么:

  • AWS WAF显然是一种解决方案。

我在stackoverflow上发现了这篇文章:API gateway with aws waf

然后为了设置WAF,

我将Cloud Front发行版放在API网关前面。

我意识到这可能是一种解决方案,但不是吗?

以下是我发现的问题:

  1. 我有云端分发,其域名为cdn.net

  2. 我将原始路径设置为我的api网关:https://sampleagigw.amazon.com,并将路径设置为其dev阶段。

  3. 当我致电GET http://cdn.net/posts时,它会返回我期望的结果。

  4. 然后,如果您将http://cdn.net/posts放在浏览器上,它会让您感到惊讶,而且还会在浏览器的网址栏上显示API网关的网址:https://sampleagigw.amazon.com/dev/posts

  5. 这意味着WAF和云端的所有工作都毫无意义。

    有什么我误解的吗?

1 个答案:

答案 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网址保留在浏览器的网址栏中。