Cloudfront限制存储桶策略中的IP

时间:2017-11-10 22:28:22

标签: amazon-s3 amazon-cloudfront

我正在使用AWS S3开发一个演示网站,并且使用存储桶策略限制使用一定数量的IP(例如)。

{
"Id": "S3PolicyId1",
"Statement": [
    {
        "Sid": "IPDeny",
        "Effect": "Deny",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::my-wicked-awesome-bucket/*",
        "Condition": {
            "NotIpAddress": {
                "aws:SourceIp": "XX.XX.XX.XX/XX"
            }
        }
    }
]

}

这很好用。现在,我想使用CloudFront在自定义域上通过HTTPS为网站提供服务。我已经创建了分发,并且已经修改了存储桶策略(允许CloudFront访问)但是当我尝试访问CloudFront URL时,我一直收到拒绝访问的错误。

是否仍然可以使用CloudFront使用存储桶策略IP访问列表?如果是这样,我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以从S3存储桶策略中删除IP黑名单/白名单,并将具有所需访问规则的AWS WAF附加到CloudFront分配。

注意:确保在将S3存储桶设为私有时,在CloudFront和S3中正确设置Origin Access Identity User。此外,如果存储桶位于与北弗吉尼亚州不同的区域,则DNS传播可能需要一些时间。

答案 1 :(得分:1)

一个lambda函数,它根据已发布的IP列表Here

中的更改来更改Bucket策略

可以通过SNS主题监控IP列表来调用该功能。 Here is the documentation on that.

以下是SNS主题。

arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged