无法为HEAD操作设置S3策略(403-禁止)

时间:2018-11-19 17:05:55

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

我正在将Djangodjango-storages库一起使用,以将我的模型文件上传到S3,并且需要添加一条策略以阻止从存储桶的URL直接下载。

我通过设置下面的策略(选中Referer)实现了这一点,但是当我使用库的自动重命名功能时,这导致了一个问题。我目前的政策:

{
    "Version": "2012-10-17",
    "Id": "Policy1542209806458",
    "Statement": [
        {
            "Sid": "Block access globally except by the indicated referers.",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::my-bucket/subfolder/*",
            "Condition": {
                "StringNotLike": {
                    "aws:Referer": [
                        "http://ref.localhost:8000/*",
                        "http://localhost:8000/*"
                    ]
                }
            }
        }
    ]
}

通过调试,我发现当库尝试执行HEAD请求以获取现有文件信息(这将指示需要重命名)时,响应为HTTP 403错误。我尝试将下面的Action(包括来自其他来源和documentation)包括在内,以获得更宽松的访问权限,但仍然存在相同的问题。

"Action": [
    "s3:GetObject",
    "s3:GetObjectVersion",
    "s3:GetObjectAcl",
    "s3:PutObject",
    "s3:PutObjectAcl",
    "s3:DeleteObject",
    "s3:DeleteObjectVersion"
]

添加具有唯一名称的新文件时,只有在需要重命名时,我才没有这种问题。

0 个答案:

没有答案