通过 IP 限制对 CloudFront 的访问

Posted

技术标签:

【中文标题】通过 IP 限制对 CloudFront 的访问【英文标题】:Restricting access to CloudFront by IP 【发布时间】:2018-02-18 15:49:48 【问题描述】:

我想限制对某些 IP 的存储桶访问。我知道如何从Restricting Access to Specific IP Addresses 创建存储桶策略。

我的问题:这可以与 CloudFront 一起使用吗?如何?我可以只允许某些 IP 访问 CloudFront 吗?

【问题讨论】:

致我未来的自己:WAF 非常昂贵。对于大多数用例来说,lambda@edge 可能是更好的选择。 ips/rules 列表可以存储在 s3 中以允许动态更新。 Lambda@edge 是 0.60 美元/百万次调用。 WAF 约为 0.60 美元/百万请求。所以实际上它们的价格差不多。我相信 WAF 价格最近有所下降。 【参考方案1】:

Web 应用程序防火墙是您的朋友。

http://docs.aws.amazon.com/waf/latest/developerguide/web-acl-ip-conditions.html

使用您的 IP 地址创建您的规则,其余的“WAF”将负责。

您需要将此应用到所需的 CloudFront 分配。

您可以将存储桶策略限制为 CloudFront,并通过 CloudFront 限制为您所需的 IP。

【讨论】:

【参考方案2】:

我已创建自定义规则以将 IP 列入白名单并通过 CloudFront 分配限制应用程序,具体步骤如下。

步骤:

    转到 AWS WAF。

    IP地址下创建以下IP匹配条件。

      staging-appname-whitelist-ips

    规则下创建以下规则。

      staging-appname-ui-stack-whitelisted-ips 有条件(与生产一类似)
    最后创建以下Web ACL
      暂存应用程序名称-acl 请选择正确的 CloudFront Distribution,上面创建的 RuleIP 地址 组。 *。

AWS 资源here.

希望对你有帮助!

【讨论】:

以上是关于通过 IP 限制对 CloudFront 的访问的主要内容,如果未能解决你的问题,请参考以下文章

在CloudFront访问上触发RDS lambda

Cloudfront 限制存储桶策略中的 IP

Cloudfront 访问被拒绝

如何通过 IP 限制对特定重写的访问

如何将 S3 网站的访问限制为 Cloudfront?

限制对 Amazon S3 URL 的全球访问