Amazon S3 对象:是否可以将公共读取策略限制为仅某些 IP 地址?

Dor*_*ian 0 amazon-s3 amazon-web-services amazon-cloudfront amazon-iam

有一个带有公共读取策略的存储桶。现在我想限制对某些对象的访问,以便只能从某些 IP 地址访问。这可能吗?

我还计划添加 CloudFront。我应该怎么做才能在每个对象上保持相同的设置?

谢谢!

Ruc*_*ami 5

您可以使用 S3 存储桶策略。但它不是单个文件,而是应用于存储桶中的单个文件夹。您可以使用如下策略:

  {
        "Version": "2008-10-17",
        "Id": "testPolicy",
        "Statement": [

            {
                "Sid": "1",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::bucketname/subfolder/subfolder2/*",
                "Condition": {
                    "IpAddress": {
                        "aws:SourceIp": [
                            "xxx.xxx.xxx.xxx/xx",
                            "xxx.xxx.xxx.xxx/xx"
                        ]
                    }
                }
            }
        ]
    }
Run Code Online (Sandbox Code Playgroud)

使用您的存储桶名称和文件夹名称以及 IP。

注意:请先在非生产存储桶上尝试。