如何解决拒绝访问的AWS S3文件?

mog*_*oli 0 django heroku amazon-s3 amazon-web-services

我正在尝试让在heroku中运行的Django应用程序可以访问s3存储桶中的文件(CSS JS文件)。

我认为我已经正确配置了settings.py。

但是,当我尝试更改S3存储桶中的权限时,访问被拒绝。 访问被拒绝错误

我添加了cors和bucket策略,并将其设置为public。

最终,当我从heroku加载应用程序时,尝试访问静态文件时出现403错误。

铲斗政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::NameOfBucket/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

CORs配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

公共访问设置 我如何获得在s3存储桶中进行更改的权限?

Joh*_*ein 5

如果存储桶具有公共策略,则该选项称为“ 阻止公共和跨帐户访问”。如果为TRUE,则表示存储桶策略仅适用于存储桶所有者。

有关详细信息,请参阅:使用Amazon S3块公共访问-Amazon Simple Storage Service

这四个新设置可能会令人讨厌,因为它们是尝试使内容公开的额外障碍,但它们可能会通过防止意外公开数据而为许多组织节省很多尴尬。