프로젝트를 배포하고, 운영환경에서 여러가지 통합 테스트를 진행하던 과정에서 아래와 같은 에러와 마주하였다. 자세히 살펴보니 AWS S3 burket 에서 문제가 발생한 것으로 보였다. 개발도 힘들지만, 운영 환경을 유지하는 것도 참 어렵다는 것을 깨닫고 있는 요즈음이다. 그래도 좋은 팀원들과 함께 성장하고 있어서 힘들지 않다. (아니 힘들어)
ERROR : java.io.IOException: Server returned HTTP response code: 403 for URL; https://{AWS S3 bucket 주소}
해결 방법
AWS 로그인 - AWS S3 - 사용중인 bucket 접속 - 권한
1. 버킷 정책 설정
{
"Version": "2012-10-17",
"Id": "Policy1713440830284",
"Statement": [
{
"Sid": "Stmt1713440828995",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::{bucket 이름}/*"
}
]
}
2. CORS 설정
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"HEAD",
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
3. Request API의 Controller에 @CrossOrigin 어노테이션 추가 - 해결 완료!
Request 요청이 들어오는 Controller쪽에 @CrossOrigin 어노테이션을 추가해주었다. AWS S3 연결을 하면서 CORS 설정이 제대로 되지 않았던 모양이다. 오늘도 성장했다 ;)