【问题标题】:Integrating AWS API Gateway with Cloud Front without exposing origin在不暴露源的情况下将 AWS API Gateway 与 Cloud Front 集成
【发布时间】:2016-10-29 05:53:02
【问题描述】:

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

我发现虽然 AWS 说 API Gateway 可以保护您的资源免受 DDoS 攻击。

但如果有不良用户不断向您的服务发送垃圾邮件,

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

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

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

我在 stackoverflow 上找到了这篇文章:API gateway with aws waf

然后为了设置WAF,

我在 API 网关前面放置了一个 Cloud Front 分发版。

我意识到这可能是一个变通的解决方案,但它是吗?

这是我发现的问题:

  1. 我有一个云前端分发,它的域名是cdn.net

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

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

  4. 那么如果你把http://cdn.net/posts放到浏览器上,你会比你想象的更惊讶,它还会在浏览器的url栏上暴露API网关的url:https://sampleagigw.amazon.com/dev/posts

这意味着所有使用 WAF 和 Cloud Front 的工作都是毫无意义的。

我有什么误解吗?

【问题讨论】:

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


    【解决方案1】:

    检查您的附加 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 留在浏览器的 URL 栏中。

    【讨论】:

    • 就是这样!!我忘了设置源协议策略,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2020-11-20
    • 1970-01-01
    • 2010-09-14
    • 2019-07-13
    • 1970-01-01
    • 2016-05-02
    相关资源
    最近更新 更多