본문 바로가기
Infra

[AWS] S3 AccessControlListNotSupported

by 지금갑시다 2024. 1. 26.

 

 

개발을 하며 테스트로 AWS S3에 파일 업로드 요청을 보낸 후 마주친 문제이다.

 

에러코드는 아래와 같다

com.amazonaws.services.s3.model.AmazonS3Exception:
The bucket does not allow ACLs 
(Service: Amazon S3; Status Code: 400; 
Error Code: AccessControlListNotSupported; 
Request ID: {requestId}; 
S3 Extended Request 
ID: {id}; 
Proxy: null)

 

 

 

해결 방법

 

 

해결 방법으로는 해당 버킷의 설정에서 ACL을 활성화 해주면 된다!

 

ACL이란, Access Control List로 활성화된 버킷과 객체들의 접근 권한 설정이다.

 

버킷을 생성한 aws 계정 소유주만 접근하게 할 수 있고, 혹은 다른 모든 사람들이 접근가능하도록 만들 수도 있다.

 

버킷과 객체들의 권한은 독립적이다. 즉 버킷에 폴더가 전체 공유 가능한 상태일때, 새로운 파일(객체)이 폴더에 저장되면 상위의 폴더가 전체 공유여서 공유할 수 있는 것이 아니라, 새로운 객체는 해당 객체만의 권한을 갖게 되는 것이다.

 

 

 

문제 이유

 

 

 즉 내 문제는 버킷에 파일을 업로드하며, 파일에 권한을 READONLY로 설정했다.

따라서 s3 버킷에는 해당 권한을 처리해줘야 하는 것이고,

당연하게 READONLY를 체크할 수 있는 설정이 되어 있어야 하는 것이다.

 

 그 설정이 ACL이고, 나는 ACL을 활성화 해두지 않아 not supported 에러가 생겼다.