在cloudflare后面使用aws s3

时间:2017-10-18 09:13:51

标签: amazon-s3 cloudflare

我为自己的域创建了一个AWS s3存储桶。我的域名使用CloudFlare。所以我在CloudFlare的DNS面板上添加了我的存储桶地址作为cname。有用。但我不希望用户使用其URL直接访问我的存储桶,只能通过我的域访问(使用CloudFlare代理)我认为我应该拒绝默认访问并将CloudFlare的IP范围列入白名单。我有那些IP范围。如何默认限制对所有IP地址的访问,并且只允许特定的IP范围?

1 个答案:

答案 0 :(得分:0)

您必须通过S3存储桶策略执行此操作。这是在"权限"你的桶中的标签。我在下面列出了我的存储桶政策。

此存储桶策略针对Cloudflare的最新IP地址(包括IPv6)进行了更新,并且还拒绝所有来自Cloudflare IP地址的访问权限。

{
"Id": "Policy1517260196123",
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "A string ID here",
        "Action": "s3:*",
        "Effect": "Deny",
        "Resource": "arn:aws:s3:::yourbucket.example.com/*",
        "Condition": {
            "NotIpAddress": {
                "aws:SourceIp": [
                    "103.21.244.0/22",
                    "103.22.200.0/22",
                    "103.31.4.0/22",
                    "104.16.0.0/12",
                    "108.162.192.0/18",
                    "131.0.72.0/22",
                    "141.101.64.0/18",
                    "162.158.0.0/15",
                    "172.64.0.0/13",
                    "173.245.48.0/20",
                    "188.114.96.0/20",
                    "190.93.240.0/20",
                    "197.234.240.0/22",
                    "198.41.128.0/17",
                    "2400:cb00::/32",
                    "2405:8100::/32",
                    "2405:b500::/32",
                    "2606:4700::/32",
                    "2803:f800::/32",
                    "2c0f:f248::/32",
                    "2a06:98c0::/29"
                ]
            }
        },
        "Principal": {
            "AWS": "*"
        }
    }
]

}