我有一个附有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。我可以改变什么才能使它发挥作用?
答案 0 :(得分:1)
您的浏览器的请求无法发送所需的authz标头,boto正在其他地方为您处理。存储桶策略无法确定主体并正确拒绝请求。
添加另一个sid以允许原则*访问/ public下的所有内容,例如。
答案 1 :(得分:-1)
原因是AWS正在将您的文件设置为二进制/八位字节流。
选中此solution来处理它。