某些存储桶文件是完全私有的或完全公开的

时间:2019-09-17 13:26:45

标签: amazon-web-services amazon-s3 permissions

我想发生的事情是我只希望从“ thesite.com”或“ thesite2.com”获得我的存储桶。此设置适用于存储桶中的大多数文件。

我已经对文件进行了交叉检查,以查看它与正在运行的文件是否有任何不同,我找不到与众不同的区别。

这是我的存储桶策略

{
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "Allow get requests originating from www.thesite.com and thesite.com.",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::the-bucket/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "https://www.thesite.com/*",
                        "https://thesite.com/*",
                        "https://www.thesite2.com/*",
                        "https://thesite2.com/*"
                    ]
                }
            }
        }
    ]
}

这是我的Cors配置

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>https://www.thesite.com/</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
    <AllowedOrigin>https://www.thesite2.com/</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

因此,问题在于某些文件似乎没有注册这些更改。我不得不将这些文件设置为“ public”,这不是我想要的,因为现在它对所有人开放,而不仅仅是我的用户。 有人可以提供任何故障排除提示以帮助我解决此问题吗?这些文件很大,因此重新上传它们应该是最后的选择。

1 个答案:

答案 0 :(得分:0)

好吧,在挖了一会儿之后。 我意识到这是一个许可问题。我是与上传文件的其他用户不同的用户,我想它限制了对其的任何更改?

因此,除了我已经在存储桶策略中拥有的内容之外,我还添加了以下内容:

        {
            "Action": "s3:*",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::bucket-name/*",
            "Principal": "*"
        }

现在,文件选择了“ Cors配置”。 *