

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

# 교차 오리진 리소스 공유 지원 및 Amazon EC2
<a name="cors-support"></a>

Amazon EC2 API는 CORS(Cross-Origin Resource Sharing)를 지원합니다. CORS는 한 도메인에 로드되는 클라이언트 웹 애플리케이션이 다른 도메인의 리소스와 상호 작용하는 방법을 정의합니다. 자세한 내용은 [교차 오리진 리소스 공유 W3C 권장 사항을](http://www.w3.org/TR/cors/) 참조하십시오. 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 요청 서명을](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) 참조하세요.

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

CORS 및 작동 방식에 대한 자세한 내용은 Mozilla 개발자 네트워크의 다음 문서인 [HTTP 액세스 제어(CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)를 참조하십시오.

## 단순 요청
<a name="cors-simple"></a>

다음은 단순 또는 실제 요청을 정의하는 기준입니다.
+ 요청은 `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`.

## 사전 요청
<a name="cors-preflight"></a>

요청 내용이 아래 기준을 충족하는 경우 실제 요청을 보내야 하는지 여부를 확인합니다. 사전 요청은 먼저 `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`, 및 메서드가 허용됩니다`OPTIONS``DELETE``PUT`. 또한 쿼리 API를 사용하거나 REST를 사용하는 등 Amazon EC2 API를 호출하는 방법에 따라 달라집니다.
+ `Access-Control-Allow-Headers`: 실제 요청에 사용할 수 있는 헤더를 나타냅니다. Amazon EC2는 사전 요청의 모든 헤더를 수락합니다. HTTP 헤더가 실제 요청과 관련이 없는 경우 무시됩니다.