0

어제부터 S3 버킷 중 하나에 파일을 업로드하려고 할 때 액세스 거부 오류가 발생했습니다.S3 액세스가 거부되었습니다.

자바 스크립트 코드 :

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" 
 
}

내가 지난 몇 시간 째 이렇게보고있어,하지만 난 정말 문제가 무엇인지 볼 수 없습니다. this 링크에 따르면 정책을 구성하는 올바른 방법이어야합니다. 그리고 어제는 괜찮 았어.

편집> 방금 ​​"조치": "*"로 시도했지만 동일한 결과가 나타납니다.

+0

분명히 이것이 범인입니다. ACL : 'public-read'. 이유는 모르겠지만, 내가 s3 : PutObjectACL을 부여하면. 내가 아는 한, 당신이 그렇게 할 수 있어야합니다. – Bjorn121

답변

0

이 당황 ...

정책을 읽어 보지 않았 제대로, PubObjectACL 올바른 이름이 아닌, PutObjectACL이다.