具有IAM角色的Django Storage S3存储桶访问

时间:2015-05-06 19:27:58

标签: django amazon-ec2 amazon-s3 django-storage

我有一个附有IAM角色的EC2实例。该角色具有完整的s3访问权限。 aws cli工作得很好,元数据卷曲检查也可以获得临时的Access和Secret密钥。

我还读到,当设置模块中缺少Access和Secret密钥时,boto将自动从元数据URL获取临时密钥。

但是我无法通过浏览器访问存储在存储桶中的css / js文件。当我添加一个允许*的主体的存储桶策略时,一切正常。

我尝试了以下政策:

{
"Version": "2012-10-17",
"Id": "PolicyNUM",
"Statement": [
    {
        "Sid": "StmtNUM",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::account-id:role/my-role"
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::my-bucket/*"
    }
]

}

但是所有的css / js仍然是403。我可以改变什么才能使它发挥作用?

2 个答案:

答案 0 :(得分:1)

您的浏览器的请求无法发送所需的authz标头,boto正在其他地方为您处理。存储桶策略无法确定主体并正确拒绝请求。

添加另一个sid以允许原则*访问/ public下的所有内容,例如。

答案 1 :(得分:-1)

原因是AWS正在将您的文件设置为二进制/八位字节流。

选中此solution来处理它。