망지로그

JAVA 애플리케이션 AWS S3 버킷 400 error 본문

Public Cloud/AWS

JAVA 애플리케이션 AWS S3 버킷 400 error

망지v 2024. 4. 4. 23:14

java에서 aws s3 SDK를 사용하여 s3 버킷에 업로드를 한다거나 ..하는 api 접근을 할 때 400 에러가 나는 경우 !!

에 대해서 포스팅해보고자 한다.

 

아무래도 어딘가 떠도는 java s3 upload code에 acl = public-read가 박혀있는 것이 분명하다 !

 

애플리케이션 단에서 s3 버킷 api 요청 보낼 때 400 떴다고 acl열지 말아주시라.. 

각 객체에 대해 액세스를 개별적으로 제어해야하는 상황 등 특별 케이스 말고는 AWS에서도 acl 비활성화를 권장하고 있다.

(s3 버킷 생성 시 private, 디폴트로 생성했다면 acl은 비활성화 되어 있다.)

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/acl-overview.html

 

ec2에 role 권한만 잘 들어가 있다면 ! acl open할 필요도, 버킷정책에 무언가를 추가할 필요는 없다.

 

결론 .. = code에 acl 관련된 코드가 있다면 제거해주세요 .

버킷에는 acl이 비활성화 되어있는데 code에 acl=public-read가 있어서 400에러를 뱉는 경우가 잦습니다.

소듕한 버킷 open하지 마시고 우선 코드점검부터!! 해결책은 멀지 않은 곳에 있을 수 있습니다.