【问题标题】:How do I restrict S3 + Cloudfront staging server to specific IP?如何将 S3 + Cloudfront 登台服务器限制为特定 IP?
【发布时间】:2020-04-28 04:08:26
【问题描述】:

我正在尝试将我的登台服务器设置为通过 S3 和云端提供服务。下面是我的存储桶策略。

a) 如果我直接访问 S3 url,一切正常。

b) 如果我访问云端根域 www.staging.example.com,一切正常。

但是,一旦我访问 www.staging.example.com/login(或任何非 root 网址),我就会收到 403 Forbidden AccessDenied 错误。我该如何解决这个问题?

{
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::staging-server/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "XXX",
                        "XXX",
                    ]
                }
            }
        }
    ]
}

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudfront


    【解决方案1】:

    如果您打算仅通过 CloudFront 为站点提供服务,那么您应该重新配置 S3 存储桶策略以允许访问您的 CloudFront 分配的 CloudFront 原始访问身份,并从存储桶策略中删除所有 IP 地址条件。

    要将对分发的访问限制为 IP 白名单,请配置 AWS WAFIPSet。使用 WAF v2,而不是原来的 WAF。

    关于非root url的问题,你真的有一个名为login的文档吗?

    【讨论】:

    • 是的,我确实有一个名为 login 的文档。但是,我认为这是一个缓存问题,因为我删除并重新制作了分发,现在我在每个页面上都得到了 AccessDenied。
    • 知道了。您还可以使分发无效以节省时间。
    猜你喜欢
    • 2019-09-11
    • 1970-01-01
    • 2021-08-21
    • 2011-09-18
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多