AWS S3의 Cross Domain 해결을 위한 CORS 사용

munilive
munilive

XMLHttpRequest를 통하여 서로 다른 도메인 간에 통신을 해야 하는 경우 브라우저의 보안 정책으로 인하여 통신이 불가능하다. 이런 경우 CORS를 통하여 이를 해결할 수 있다.

CORS(Cross-Origin Resource Sharing)가 무엇인지에 대한 자세한 내용은 아래 링크들을 참고해 주기 바란다.

정리해서 이야기하면 리소스 또는 데이터를 받아와야 하는 쪽 서버에서 응답을 보내는 헤더 아래 내용을 담아서 보내라는 이야기

Access-Control-Allow-Origin: http://api.bob.com
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: FooBar
Access-Control-Allow-Origin: 는 필수 값으로 요청을 보내는 쪽의 도메인주소를 적으면 된다.

AWS의 S3에서는 버킷에서 CORS 세팅을 추가해주면 된다.
추가 방법은 아래 문서 링크를 참고해 주기 바란다.

AWS S3 Bucket CORS 설정에 추가해야 하는 내용은 아래와 같이 작성하면 된다.

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>http://munilive.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>http://*.munilive.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

CORS를 추가하여 허용하게 되면 추가된 버킷의 모든 파일에 적용된다.

중요 포인트

*.munilive.com으로 설정하면 하위 서브도메인은 모두 적용되지만 정작 munilive.com으로 접속하면 Cross Domain 이 해결되지 않는다. 그래서 CORSRule를 하나 더 추가하는데 이는 오직 munilive.com으로 접속했을 때를 위한 것이다.

munilive

munilive

Backend Application Developer

Share

Comments

Related Posts

S3에 적용한 CORS를 CloudFront 에 적용하는 방법

S3에 적용한 CORS를 CloudFront 에 적용하는 방법

S3에 Static한 데이터를 저장해서 사용하다 보면 JS파일 들도 사용하게 되는데, 이 경우 브라우저에서 서로 다른 도메인으로 인하여 문제가 발생 한다. 이런 경우 S3 CO…

munilive munilive ·
AWS에서 NFS 서버 세팅

AWS에서 NFS 서버 세팅

서버로 사용할 인스턴스 생성 Security Group 설정에서 Type을 All traffic 선택 Source를 172.31.0.0/16 입력 172.31.0.0/16 은 서버…

munilive munilive ·
[Mac OS] AWS CLI bad interpreter 에러 발생 시 해결 방법

[Mac OS] AWS CLI bad interpreter 에러 발생 시 해결 방법

MacOS에서 AWS CLI 사용하는데 에러가 발생하였다. 정확한 에러 메시지는 이다. (참고로 나는 을 사용한다.) AWS CLI도 를 이용해서 설치했고, python3는…

munilive munilive ·