CORS 문제 해결 - Amazon Simple Storage Service

CORS 문제 해결

CORS 구성으로 설정된 버킷에 액세스하는 중에 예상치 못한 동작이 발생할 경우, 다음 단계에 따라 문제를 해결해 보세요.

  1. CORS 구성이 버킷에 설정되어 있는지 확인합니다.

    CORS 구성이 설정된 경우 콘솔에서 속성(Properties) 버킷의 권한(Permissions) 섹션에 Edit CORS Configuration(CORS 구성 편집) 링크가 표시됩니다.

  2. 원하는 도구를 사용하여 완료 요청 및 응답을 캡처합니다. Amazon S3이 받은 각 요청에 대해 다음과 같이 해당 요청의 데이터와 일치하는 CORS 규칙이 있어야 합니다.

    1. 요청에 Origin 헤더가 있는 확인합니다.

      헤더가 없으면 Amazon S3은 요청을 Cross-Origin 요청으로 처리하지 않고, 응답에 CORS 응답 헤더를 보내지 않습니다.

    2. 요청의 Origin 헤더가 지정된 AllowedOriginCORSRule 요소 중 최소 하나와 일치하는지 확인합니다.

      Origin 요청 헤더의 체계, 호스트, 포트 값이 AllowedOriginCORSRule 요소와 일치해야 합니다. 예를 들어 CORSRule을 설정하여 http://www.example.com 오리진을 허용한 경우, 요청의 https://www.example.com 오리진과 http://www.example.com:80 오리진 모두가 해당 구성의 허용되는 오리진과 일치하지 않는 것입니다.

    3. 요청의 메서드(preflight 요청에서는 Access-Control-Request-Method에 지정된 메서드)가 동일한 AllowedMethodCORSRule 요소 중 하나인지 확인합니다.

    4. preflight 요청의 경우 요청에 Access-Control-Request-Headers 헤더가 있을 경우, CORSRule 헤더에 각 값에 대한 AllowedHeader 항목이 Access-Control-Request-Headers에 포함되었는지 확인합니다.