View a markdown version of this page

교차 오리진 리소스 공유 지원 및 Amazon EC2 - - Amazon Elastic Compute Cloud

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

교차 오리진 리소스 공유 지원 및 Amazon EC2

Amazon EC2 API는 CORS(Cross-Origin Resource Sharing)를 지원합니다. CORS는 한 도메인에 로드되는 클라이언트 웹 애플리케이션이 다른 도메인의 리소스와 상호 작용하는 방법을 정의합니다. 자세한 내용은 교차 오리진 리소스 공유 W3C 권장 사항을 참조하십시오. Amazon EC2에 대한 CORS 지원을 통해 Amazon EC2 API를 사용하는 풍부한 클라이언트 측 웹 애플리케이션을 구축할 수 있습니다. 예를 들어 웹 사이트를 호스팅mywebsite.example.com하고 웹 페이지에서 JavaScript를 사용하여 Amazon EC2 API를 요청한다고 가정해 보겠습니다. 일반적으로 브라우저는 JavaScript가 이러한 요청을 허용하지 못하도록 차단하지만 CORS를 사용하면에서 교차 오리진 Amazon EC2 API를 호출할 수 있습니다mywebsite.example.com.

CORS는 Amazon EC2 API에 대해 이미 활성화되어 있으며 사용할 준비가 되었습니다. 이 기능을 사용하기 위해 추가 구성 단계를 수행할 필요가 없습니다. Amazon EC2 API를 호출하는 방식에는 변경 사항이 없습니다.가 요청자를 AWS 인증할 수 있도록 유효한 AWS 자격 증명으로 여전히 서명해야 합니다. 자세한 내용은 IAM 사용 설명서AWS API 요청 서명을 참조하세요.

Amazon EC2 API의 CORS 구현은 표준화되어 있습니다. 애플리케이션은 Amazon EC2 API로 간단한 요청을 보내거나 요청 내용에 따라 사전 요청과 실제 요청을 보낼 수 있습니다. Amazon EC2는 모든 오리진에서 요청을 허용합니다.

CORS 및 작동 방식에 대한 자세한 내용은 Mozilla 개발자 네트워크의 다음 문서인 HTTP 액세스 제어(CORS)를 참조하십시오.

단순 요청

다음은 단순 또는 실제 요청을 정의하는 기준입니다.

  • 요청은 GET 또는 POST HTTP 메서드만 사용합니다. POST 메서드를 사용하는 경우는 , application/x-www-form-urlencoded multipart/form-data또는 중 하나일 Content-Type 수 있습니다text/plain.

  • 요청은와 같은 사용자 지정 헤더를 설정하지 않습니다X-Other-Header.

Amazon EC2는 모든 오리진에서 요청을 허용합니다. Access-Control-Allow-Credentials 값을 true (여기서 XMLHttpRequest.withCredentials = true)로 설정하여 브라우저 자격 증명을 사용하려고 시도하는 GET 또는 POST 요청은 실패합니다.

다음 정보는 Amazon EC2에 대한 요청 헤더를 설명합니다.

단순 요청 헤더 값
  • Origin: 리소스에 액세스할 도메인을 지정합니다(이 경우 리소스는 Amazon EC2임). 이는 브라우저에서 교차 오리진 요청으로 삽입됩니다.

다음 정보는 Amazon EC2가 단순 또는 실제 요청 후 반환하는(또는 반환하지 않는) 응답 헤더를 설명합니다.

단순 응답 헤더 값
  • Access-Control-Allow-Origin: 리소스에 액세스할 수 있는 도메인을 지정합니다(이 경우 리소스는 Amazon EC2임). 이 값은 항상 * 값으로 반환됩니다. 따라서 Amazon EC2는 도메인 간 오리진을 허용하며 쿠키와 같은 브라우저 자격 증명을 허용하지 않습니다.

  • Access-Control-Allow-Credentials: 브라우저 자격 증명을 사용하여 실제 요청을 수행할 수 있는지 여부를 나타냅니다. 이는 반환되지 않습니다. 따라서 브라우저는 값을 로 해석해야 합니다Access-Control-Allow-Credentials: false.

사전 요청

요청 내용이 아래 기준을 충족하는 경우 실제 요청을 보내야 하는지 여부를 확인합니다. 사전 요청은 먼저 OPTIONS 메서드를 사용하여 리소스(이 경우 Amazon EC2)에 HTTP 요청을 보냅니다.

다음은 사전 요청을 정의하는 기준입니다.

  • 요청은 GET 또는 이외의 HTTP 메서드를 사용합니다POST. 그러나 POST 메서드를 사용하는 경우 Content-Type는 , application/x-www-form-urlencoded multipart/form-data또는 중 하나가 아닙니다text/plain.

  • 요청은 사용자 지정 헤더를 설정합니다. 예: X-Other-Header.

Amazon EC2 CORS 구현은 모든 헤더를 허용하고 실제 요청의 모든 오리진을 허용합니다.

다음 정보는 Amazon EC2에 대한 사전 요청의 요청 헤더를 설명합니다.

Preflight 요청 헤더 값
  • Origin: 리소스에 액세스할 도메인을 지정합니다(이 경우 리소스는 Amazon EC2임). 이는 브라우저에서 교차 오리진 요청으로 삽입됩니다.

  • Access-Control-Request-Method: 브라우저의 실제 요청에 사용할 HTTP 메서드입니다.

  • Access-Control-Request-Headers: 실제 교차 오리진 요청에서 전송할 사용자 지정 헤더입니다.

다음은 사전 요청 후 Amazon EC2가 반환하는(또는 반환하지 않는) 응답 헤더에 대한 정보입니다.

Preflight 응답 헤더 값
  • Access-Control-Allow-Origin: 리소스에 액세스할 수 있는 도메인을 지정합니다(이 경우 리소스는 Amazon EC2임). 이 값은 항상 * 값으로 반환됩니다. 따라서 Amazon EC2는 도메인 간 오리진을 허용하며 쿠키와 같은 브라우저 자격 증명을 허용하지 않습니다.

  • Access-Control-Allow-Credentials: 브라우저 자격 증명을 사용하여 실제 요청을 수행할 수 있는지 여부를 나타냅니다. 이는 Amazon EC2에서 반환되지 않습니다. 따라서 브라우저는 값을 로 해석해야 합니다Access-Control-Allow-Credentials: false.

  • Access-Control-Expose-Headers: 헤더를 브라우저에 노출할 수 있습니다. 이는 Amazon EC2에서 반환되지 않습니다. 따라서 Amazon EC2의 반환 헤더는 요청 도메인에서 읽을 수 없습니다.

  • Access-Control-Max-Age: 사전 요청 결과를 캐시할 수 있는 기간을 지정합니다. 값은 1800초(30분)로 설정됩니다.

  • Access-Control-Allow-Methods: 실제 요청 시 허용되는 메서드를 나타냅니다. GET, , POST, 및 메서드가 허용됩니다OPTIONSDELETEPUT. 또한 쿼리 API를 사용하거나 REST를 사용하는 등 Amazon EC2 API를 호출하는 방법에 따라 달라집니다.

  • Access-Control-Allow-Headers: 실제 요청에 사용할 수 있는 헤더를 나타냅니다. Amazon EC2는 사전 요청의 모든 헤더를 수락합니다. HTTP 헤더가 실제 요청과 관련이 없는 경우 무시됩니다.