2015-05-06 43 views
0

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

我也读过,当设置模块中缺少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的。我可以改变什么来使它工作?

+0

只需将访问密钥和密钥添加到生产设置中,您就可以节省很多麻烦。你有没有帮助建立一个配置文件? – jape

回答

-1

原因是AWS将您的文件设置为binary/octet-stream。

检查这个solution来处理它。

+0

我得到403所有的CSS和JS和图像文件。这不是一个CSS问题! –

+0

对不起,只是想帮忙。 –

1

来自浏览器的请求无法发送所需的authz标头,boto在其他地方为您处理。存储桶政策无法确定委托人并正确拒绝该请求。

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