DevOps/AWS

AWS S3 403 에러 해결하기

kimdozzi 2024. 5. 23. 10:59

프로젝트를 배포하고, 운영환경에서 여러가지 통합 테스트를 진행하던 과정에서 아래와 같은 에러와 마주하였다. 자세히 살펴보니 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 설정이 제대로 되지 않았던 모양이다. 오늘도 성장했다 ;)