DevOps

[우당탕탕 AWS] S3 CORS Error 해결하기: 버킷 정책 수정 방법 (7)

ooin 2024. 9. 23. 21:16
반응형

 

S3의 데이터 이전 완료 후 CORS 관련 에러를 해결한 방법을 정리하였습니다.

 

https://threezerosin.tistory.com/27

 

[우당탕탕 AWS] S3 데이터 복사 (계정 간 이전)

S3 를 생성한 이후에는 기존에 업로드해두었던 데이터를 이전해야했습니다. https://velog.io/@unihit/%EA%B3%84%EC%A0%95%EA%B0%84-S3-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%B4%EC%A0%84-%EB%B0%A9%EB%B2%95 계정간 S3 데이터 이전

threezerosin.tistory.com

 


 

AWS S3를 이용할 때, 외부에서 객체를 불러오거나 업로드하는 과정에서 **CORS(Cross-Origin Resource Sharing) 에러**가 발생할 수 있습니다. 이는 외부 도메인에서 S3 버킷 리소스에 접근할 때 보안상의 이유로 발생하는 문제입니다. 이 글에서는 S3 버킷 정책을 수정하여 CORS 에러를 해결하는 방법을 설명합니다.

 

1. CORS 에러란?
CORS 에러는 브라우저에서 다른 도메인의 리소스에 접근할 때 발생하는 보안 문제입니다. 기본적으로 브라우저는 보안상의 이유로 다른 출처(origin)의 리소스 요청을 제한합니다. S3 버킷에 저장된 리소스를 외부에서 요청할 때 이러한 제한이 적용되어 CORS 에러가 발생할 수 있습니다.

2. 버킷 정책을 통한 CORS 에러 해결
S3 버킷 정책을 수정하여 외부 도메인에서도 버킷 리소스에 접근할 수 있도록 허용할 수 있습니다. 아래는 CORS 에러를 해결하기 위한 S3 버킷 정책 예시입니다:

[
    {
        "AllowedHeaders": [
            "Authorization"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "HEAD"
        ],
        "AllowedOrigins": [
            "http://localhost",
            "https://{도메인}"
        ],
        "ExposeHeaders": [
            "Access-Control-Allow-Origin"
        ]
    }
]



 

1. AllowedHeaders

  • Authorization: 클라이언트에서 서버로 보낼 수 있는 허용된 HTTP 헤더입니다. 여기서는 Authorization 헤더가 허용되며, 이를 통해 인증 관련 정보를 포함한 요청을 보낼 수 있습니다.

2. AllowedMethods

  • GET, PUT, HEAD: 서버에서 허용하는 HTTP 메서드입니다.
    • GET: 리소스를 조회하는 요청을 허용합니다.
    • PUT: 리소스를 생성하거나 수정하는 요청을 허용합니다.
    • HEAD: 리소스의 메타데이터를 조회하는 요청을 허용합니다.

3. AllowedOrigins

  • CORS 요청을 허용하는 도메인을 지정합니다. 이 목록에 있는 도메인에서만 S3 버킷에 요청을 보낼 수 있습니다.

4. ExposeHeaders

  • Access-Control-Allow-Origin: 서버가 클라이언트에게 응답할 때 노출하는 헤더입니다. 이 설정은 브라우저가 Access-Control-Allow-Origin 헤더를 클라이언트에 전달하도록 허용합니다.



3. 적용 방법
1. AWS Management Console에 로그인합니다.
2. S3 서비스로 이동한 후, CORS 에러가 발생하는 버킷을 선택합니다.
3. 버킷의 권한 탭으로 이동한 후,Bucket Policy(버킷 정책) 섹션을 찾습니다.
4. 위의 정책을 버킷 정책에 추가하고 저장합니다.

반응형