如何限制S3+Cloudfront暂存服务器到特定IP?

我正试图将我的暂存服务器设置为通过S3和Cloudfront提供服务。下面是我的桶策略。

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

b) 如果我访问Cloudfront的根域www.staging.example.com,一切都能正常工作。

然而,一旦我访问www.staging.example.comlogin(或任何非根目录),我就会得到一个 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",
                    ]
                }
            }
        }
    ]
}

解决方案:

如果您的意图是仅通过 CloudFront 服务网站,那么您应该重新配置 S3 bucket 策略,以允许访问 CloudFront 分发的 CloudFront Origin Access Identity,并从 bucket 策略中删除所有 IP 地址条件。

要将对分发的访问限制在 IP 白名单上,请配置 AWS WAF 和一个 IPSet. 使用WAF v2,而不是原来的WAF。

关于非root url的问题,你是否真的有一个名为 login?

给TA打赏
共{{data.count}}人
人已打赏
未分类

从Ansible的docker_image_info中获取变量。

2022-9-13 15:02:16

未分类

如何只在数据与之前的值发生变化时存储数据?

2022-9-13 15:02:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索