Amazon S3存储桶策略 - 按用户代理过滤

时间:2014-12-12 05:32:20

标签: amazon-web-services amazon-s3

所以..我有一个Amazon S3存储桶,我想通过http向应用服务器提供一些文件。为了确保这一点,设置特定的用户代理集以及IP限制。

这是我做过的事情

a)创建了一个名为“my-test-bucket”的新桶

b)将存储桶设置为“启用网站托管”

c)在桶中添加了一个简单的index.html

d)设置以下存储桶策略以测试连接(对zee Internet开放)

{
"Version": "2008-10-17",
"Id": "S3PolicyId1",
"Statement": [
    {
        "Sid": "Public",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::my-test-bucket/*"
    }
]
}

d)经过测试,确实有效!

e)设置存储桶策略以限制用户代理

{
"Version": "2008-10-17",
"Id": "S3PolicyId1",
"Statement": [
    {
        "Sid": "Public",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::my-test-bucket/*",
        "Condition": {
            "StringEquals": {
                "aws:UserAgent": "test"
            }
        }
    }
]
}

f)使用Postman进行测试,在标题中设置User-Agent,不进行

现在奇怪的是......我在另一个桶上使用了类似的存储桶策略,效果很好!关于我在这里做错了什么想法?

PS ..还没有添加到IP地址检查,一旦这个工作将来到下一个

1 个答案:

答案 0 :(得分:0)

问题是由于浏览器缓存..因此,对于每个新测试,我需要添加一个时间戳,以确保它不被浏览器缓存。

http://my-test-bucket.s3.amazonaws.com/test.html?t=123321