S3访问被拒绝

时间:2017-09-10 15:01:51

标签: javascript amazon-web-services amazon-s3 amazon-iam policies

从昨天开始,当我尝试将文件上传到我的一个S3存储桶时,我一直收到“拒绝访问”错误。

Javascript代码:

var pass = new stream.PassThrough();

var contentType = (input.fileName.endsWith('.html') ? 'text/html' : 'text/javascript');

var params = {
  Bucket: 'BUCKET_NAME',
  Key: input.fileName,
  Body: pass,
  ACL: 'public-read',
  ContentType: contentType
};

S3.upload(params, function(err, data) {
  if (err) {
    console.error('Error while uploading file: ' + err + '. Uploading file ' + params.Key + ' to Bucket ' + params.Bucket + '.');
    throw err
  }
});

return pass;

我最初的想法是,这是因为IAM政策,虽然我没有改变任何东西而且之前有效。

IAM政策:

{
  "Action": [
    "s3:PutObject",
    "s3:PubObjectACL"
  ],
  "Resource": [
    "arn:aws:s3:::BUCKET_NAME/*"
  ],
  "Effect": "Allow"
}

过去几个小时我一直盯着这个,但我真的看不出问题所在。根据{{​​3}}链接,它应该是配置策略的正确方法。昨天这很好。

编辑> 我只是尝试了“动作”:“*”,我得到了相同的结果。

1 个答案:

答案 0 :(得分:1)

这令人尴尬......

没有正确阅读政策,PubObjectACL的名称不正确,PutObjectACL是。