

# 정책을 통해 CloudFront 응답에서 HTTP 헤더 추가 또는 제거
<a name="modifying-response-headers"></a>

뷰어(웹 브라우저 및 기타 클라이언트)에 보내는 응답에 HTTP 헤더를 수정하도록 CloudFront를 구성할 수 있습니다. CloudFront는 최종 사용자에게 응답을 보내기 전에 오리진에서 수신한 헤더를 제거하거나 응답에 헤더를 추가할 수 있습니다. 이러한 변경 시에는 코드를 작성하거나 원본을 변경할 필요가 없습니다.

예를 들어 `X-Powered-By` 및 `Vary` 등의 헤더를 제거하여 CloudFront가 최종 사용자에게 보내는 응답에 이러한 헤더를 포함하지 않도록 할 수 있습니다. 또는 다음과 같은 HTTP 헤더를 추가할 수 있습니다.
+ 브라우저 캐싱을 제어하는 ​​`Cache-Control` 헤더.
+ 교차 원본 리소스 공유(CORS)를 사용 설정하는 `Access-Control-Allow-Origin` 헤더. 또한 기타 CORS 헤더를 추가할 수도 있습니다.
+ `Strict-Transport-Security`, `Content-Security-Policy`, `X-Frame-Options` 등과 같은 공통 보안 헤더 집합.
+ CloudFront를 통한 요청과 응답의 성능 및 라우팅과 관련된 정보를 제공하는 `Server-Timing` 헤더.

CloudFront에서 HTTP 응답에서 추가 또는 제거하는 헤더를 지정하려면 *응답 헤더 정책*을 사용합니다. 응답 헤더 정책을 *캐시 동작*에 연결하면 CloudFront는 캐시 동작과 일치하는 요청에 대해 보내는 HTTP 응답에 정책의 헤더를 추가합니다. CloudFront는 CloudFront가 캐시에서 제공하는 응답과 CloudFront가 원본에서 전달하는 응답에 헤더를 수정합니다. 원본 응답에 응답 헤더 정책에 추가된 헤더가 하나 이상 포함된 경우 정책은 CloudFront가 원본에서 수신한 헤더를 사용할지 아니면 응답 헤더 정책에 있는 헤더로 덮어쓸지 지정할 수 있습니다.

**참고**  
`Cache-Control`과 같이 브라우저 캐싱을 제어하는 헤더를 응답 헤더 정책에 추가하면 CloudFront는 이러한 헤더를 *뷰어 응답에만* 추가합니다. 이러한 헤더는 CloudFront가 요청된 객체를 캐싱하는 방식에 영향을 주지 않습니다.

CloudFront는 일반적인 사용 사례에 대해 *관리형 정책*이라고 하는 사전 정의된 응답 헤더 정책을 제공합니다. [이러한 관리형 정책을 사용](using-managed-response-headers-policies.md)하거나 고유의 정책을 만들 수 있습니다. AWS 계정의 여러 배포에서 여러 캐시 동작에 단일 응답 헤더 정책을 연결할 수 있습니다.

자세한 내용은 다음을 참조하세요.

**Topics**
+ [응답 헤더 정책 이해](understanding-response-headers-policies.md)
+ [응답 헤더 정책 생성](creating-response-headers-policies.md)
+ [관리형 응답 헤더 정책 사용](using-managed-response-headers-policies.md)

# 응답 헤더 정책 이해
<a name="understanding-response-headers-policies"></a>

응답 헤더 정책을 사용하여 Amazon CloudFront가 사용자에게 보내는 응답에서 추가 또는 제거하는 HTTP 헤더를 지정할 수 있습니다. 응답 헤더 정책 및 사용 이유에 대한 자세한 내용은 [정책을 통해 CloudFront 응답에서 HTTP 헤더 추가 또는 제거](modifying-response-headers.md) 단원을 참조하세요.

다음 항목에서는 응답 헤더 정책의 설정에 대해 설명합니다. 설정은 다음 항목에 나와 있는 범주로 그룹화됩니다.

**Topics**
+ [정책 세부 정보(메타데이터)](#understanding-response-headers-policies-details)
+ [CORS 헤더](#understanding-response-headers-policies-cors)
+ [보안 헤더](#understanding-response-headers-policies-security)
+ [사용자 지정 헤더](#understanding-response-headers-policies-custom)
+ [헤더 제거](#understanding-response-headers-policies-remove-headers)
+ [Server-Timing 헤더](#server-timing-header)

## 정책 세부 정보(메타데이터)
<a name="understanding-response-headers-policies-details"></a>

정책 세부 정보 설정에는 응답 헤더 정책에 대한 메타데이터가 포함되어 있습니다.
+ **이름** — 응답 헤더 정책을 식별하는 이름입니다. 콘솔에서 이름을 사용하여 정책을 캐시 동작에 연결합니다.
+ **설명**(선택 사항) — 응답 헤더 정책을 설명하는 설명입니다. 이는 선택 사항이지만 캐시 정책의 용도를 식별하는 데 도움이 될 수 있습니다.

## CORS 헤더
<a name="understanding-response-headers-policies-cors"></a>

교차 원본 리소스 공유(CORS) 설정을 사용하면 응답 헤더 정책에 CORS 헤더를 추가하고 구성할 수 있습니다.

이 목록은 응답 헤더 정책에서 설정 및 유효한 값을 지정하는 방법에 중점을 둡니다. 이러한 각 헤더와 실제 CORS 요청 및 응답에 사용되는 방법에 대한 자세한 내용은 MDN 웹 문서 및 [CORS 프로토콜 사양](https://fetch.spec.whatwg.org/#http-cors-protocol)의 [원본 간 리소스 공유](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)를 참조하세요.

**Access-Control-Allow-Credentials**  
이는 부울 설정(`true` 또는 `false`)으로서 CloudFront에서 CORS 요청에 대한 응답으로 `Access-Control-Allow-Credentials` 헤더를 추가할지 여부를 결정합니다. 이 설정이 `true`로 설정된 경우, CloudFront는 CORS 요청에 대한 응답으로 `Access-Control-Allow-Credentials: true` 헤더를 추가합니다. 그렇지 않으면 CloudFront가 응답에 이 헤더를 추가하지 않습니다.

**Access-Control-Allow-Headers**  
CloudFront가 CORS 실행 전 요청에 대한 응답에서 `Access-Control-Allow-Headers` 헤더 값으로 사용하는 헤더 이름을 지정합니다. 이 설정의 유효한 값으로는 HTTP 헤더 이름 또는 모든 헤더가 허용됨을 나타내는 와일드카드 문자(`*`)가 포함됩니다.  
`Authorization` 헤더는 와일드카드를 사용할 수 없으며 명시적으로 나열되어야 합니다.
    
**유효한 와일드카드 문자 사용의 예시**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/understanding-response-headers-policies.html)

**Access-Control-Allow-Methods**  
CloudFront가 CORS 실행 전 요청에 대한 응답에서 `Access-Control-Allow-Methods` 헤더 값으로 사용하는 HTTP 메서드를 지정합니다. 유효한 값은 `GET`, `DELETE`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` 또는 `ALL`입니다. `ALL`는 나열된 모든 HTTP 메서드를 포함하는 특수 값입니다.

**Access-Control-Allow-Origin**  
CloudFront에서 `Access-Control-Allow-Origin` 응답 헤더에 사용할 수 있는 값을 지정합니다. 이 설정의 유효한 값에는 특정 원본(예: `http://www.example.com`) 또는 모든 원본이 허용됨을 나타내는 와일드카드 문자(`*`)가 포함됩니다.  
**참고**  
+ 와일드카드 문자(`*`)는 하위 도메인의 가장 왼쪽에 사용할 수 있습니다(`*.example.org`).
+ 와일드카드 문자(`*`)는 다음 위치에 사용할 수 **없습니다.
  + 상위 수준 도메인(`example.*`)
  + 하위 도메인 오른쪽(`test.*.example.org`) 또는 원하는 하위 도메인 내(`*test.example.org`)
  + 용어 내부(`exa*mple.org)`
와일드카드 문자를 사용하는 방법의 예는 다음 표를 참조하세요.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/understanding-response-headers-policies.html)

**Access-Control-Expose-Headers**  
CloudFront가 CORS 요청에 대한 응답에서 `Access-Control-Expose-Headers` 헤더 값으로 사용하는 헤더 이름을 지정합니다. 이 설정의 유효한 값으로는 HTTP 헤더 이름 또는 와일드카드 문자(`*`)가 포함됩니다.

**Access-Control-Max-Age**  
CloudFront가 CORS 실행 전 요청에 대한 응답에서 `Access-Control-Max-Age` 헤더 값으로 사용하는 시간(초)입니다.

**원본 재정의**  
오리진의 응답에 정책에도 포함된 CORS 헤더 중 하나가 포함된 경우 CloudFront가 작동하는 방식을 결정하는 부울 설정입니다.  
+ `true`로 설정되고 오리진 응답에 정책에도 있는 CORS 헤더가 포함되어 있으면 CloudFront는 응답에 정책의 CORS 헤더를 추가합니다. 그런 다음 CloudFront는 해당 응답을 최종 사용자에게 보냅니다. CloudFront는 오리진에서 수신한 헤더는 무시합니다.
+ `false`로 설정되고 오리진 응답에 CORS 헤더가 포함되어 있으면(CORS 헤더가 정책에 포함되어 있는지 여부에 상관없이) CloudFront는 응답에 오리진에서 수신한 CORS 헤더를 포함합니다. CloudFront는 최종 사용자에게 보내는 응답에 정책의 CORS 헤더를 추가하지 않습니다.

## 보안 헤더
<a name="understanding-response-headers-policies-security"></a>

보안 헤더 설정을 사용하면 응답 헤더 정책에서 여러 보안 관련 HTTP 응답 헤더를 추가하고 구성할 수 있습니다.

이 목록은 응답 헤더 정책에서 설정 및 유효한 값을 지정하는 방법을 설명합니다. 이러한 각 헤더와 실제 HTTP 응답에서 사용되는 방법에 대한 자세한 내용은 MDN 웹 문서 링크를 참조하세요.

**Content-Security-Policy**  
CloudFront가 `Content-Security-Policy` 응답 헤더의 값으로 사용하는 콘텐츠 보안 정책 지시문을 지정합니다.  
이 헤더 및 유효한 정책 지시문에 대한 자세한 내용은 MDN 웹 문서의 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy)를 참조하십시오.  
`Content-Security-Policy` 헤더 값은 1783자로 제한됩니다.

**참조자 정책**  
CloudFront가 `Referrer-Policy` 응답 헤더의 값으로 사용하는 참조자 정책 지시문을 지정합니다. 이 설정에 유효한 값은 `no-referrer`, `no-referrer-when-downgrade`, `origin`, `origin-when-cross-origin`, `same-origin`, `strict-origin`, `strict-origin-when-cross-origin` 또는 `unsafe-url`입니다.  
이 헤더 및 이러한 지시문에 대한 자세한 내용은 MDN 웹 문서의 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy)를 참조하십시오.

**Strict-Transport-Security**  
CloudFront가 `Strict-Transport-Security` 응답 헤더의 값으로 사용하는 지시문 및 설정을 지정합니다. 이 설정의 경우 다음을 별도로 지정합니다.  
+ CloudFront가 이 헤더의 `max-age` 지시문에 대한 값으로 사용하는 시간(초)
+ CloudFront가 이 헤더 값에 `preload` 지시문을 포함하는지 여부를 결정하는 `preload`에 대한 부울 설정(`true` 또는 `false`)
+ CloudFront가 이 헤더 값에 `includeSubDomains` 지시문을 포함하는지 여부를 결정하는 `includeSubDomains`에 대한 부울 설정(`true` 또는 `false`)
이 헤더 및 이러한 지시문에 대한 자세한 내용은 MDN 웹 문서의 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security)를 참조하십시오.

**X-Content-Type-Options**  
이는 부울 설정(`true` 또는 `false`)으로서 CloudFront에서 응답으로 `X-Content-Type-Options` 헤더를 추가할지 여부를 결정합니다. 이 설정이 `true`인 경우, CloudFront는 응답에 `X-Content-Type-Options: nosniff` 헤더를 추가합니다. 그렇지 않으면 CloudFront는 이 헤더를 추가하지 않습니다.  
이 헤더에 대한 자세한 내용은 MDN 웹 문서의 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options)를 참조하십시오.

**X-Frame-Options**  
CloudFront가 `X-Frame-Options` 응답 헤더의 값으로 사용하는 지시문을 지정합니다. 이 설정에 유효한 값은 `DENY` 또는 `SAMEORIGIN`입니다.  
이 헤더 및 이러한 지시문에 대한 자세한 내용은 MDN 웹 문서의 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options)를 참조하십시오.

**X-XSS-Protection**  
CloudFront가 `X-XSS-Protection` 응답 헤더의 값으로 사용하는 지시문 및 설정을 지정합니다. 이 설정의 경우 다음을 별도로 지정합니다.  
+ `0`(XSS 필터링 비활성화) 또는 `1`(XSS 필터링 활성화) `X-XSS-Protection` 설정
+ CloudFront가 이 헤더 값에 `mode=block` 지시문을 포함하는지 여부를 결정하는 `block`에 대한 부울 설정(`true` 또는 `false`)
+ CloudFront가 이 헤더 값에 `report=reporting URI` 지시문을 포함하는지 여부를 결정하는 보고 URI
`block`에 대해 `true`를 지정하거나 보고 URI를 지정할 수 있지만 둘 다 함께 지정할 수는 없습니다. 이 헤더 및 이러한 지시문에 대한 자세한 내용은 MDN 웹 문서의 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection)를 참조하십시오.

**원본 재정의**  
이러한 각 보안 헤더 설정에는 원본의 응답에 해당 헤더가 포함되어 있을 때 CloudFront가 작동하는 방식을 결정하는 부울 설정(`true` 또는 `false`)이 포함되어 있습니다.  
이 설정이 `true`로 설정되고 원본 응답에 헤더가 포함되어 있으면 CloudFront는 뷰어에게 보내는 응답에 정책의 헤더를 추가합니다. 그리고 원본에서 수신한 헤더는 무시합니다.  
이 설정이 `false`로 설정되고 원본 응답에 헤더가 포함된 경우 CloudFront는 뷰어에게 보내는 응답에 원본에서 수신한 헤더를 포함합니다.  
원본 응답에 헤더가 포함되어 있지 않으면 CloudFront는 뷰어에게 보내는 응답에 정책의 헤더를 추가합니다. 이 설정이 `true`이든 `false`이든 관계없이 CloudFront는 이 작업을 수행합니다.

## 사용자 지정 헤더
<a name="understanding-response-headers-policies-custom"></a>

사용자 지정 헤더 설정을 사용하면 응답 헤더 정책에 사용자 지정 HTTP 헤더를 추가하고 구성할 수 있습니다. CloudFront는 이러한 헤더를 뷰어에게 반환하는 모든 응답에 추가합니다. 값을 지정하는 것은 선택 사항이지만 각 사용자 지정 헤더에 헤더 값도 지정합니다. CloudFront가 값 없이 응답 헤더를 추가할 수 있기 때문입니다.

각 사용자 정의 헤더에는 고유한 **원본 재정의** 설정도 있습니다.
+ 이 설정이 `true`로 설정되고 원본 응답에 정책에 있는 사용자 지정 헤더가 포함되어 있으면 CloudFront는 뷰어에게 보내는 응답에 정책의 사용자 지정 헤더를 추가합니다. 그리고 원본에서 수신한 헤더는 무시합니다.
+ 이 설정이 `false`이고 원본 응답에 정책에 있는 사용자 지정 헤더가 포함되어 있으면 CloudFront는 뷰어에게 보내는 응답에 원본에서 수신한 사용자 지정 헤더를 포함합니다.
+ 원본 응답에 정책에 있는 사용자 지정 헤더가 포함되어 있지 않으면 CloudFront는 뷰어에게 보내는 응답에 정책의 사용자 지정 헤더를 추가합니다. 이 설정이 `true`이든 `false`이든 관계없이 CloudFront는 이 작업을 수행합니다.

## 헤더 제거
<a name="understanding-response-headers-policies-remove-headers"></a>

CloudFront가 오리진으로부터 받는 응답에서 제거할 헤더를 지정하여 CloudFront가 최종 사용자에게 보내는 응답에 헤더가 포함되지 않도록 할 수 있습니다. CloudFront는 객체가 CloudFront의 캐시에서 제공되든 오리진에서 제공되든 관계없이 최종 사용자에게 보내는 모든 응답에서 헤더를 제거합니다. 예를 들어 `X-Powered-By` 또는 `Vary` 같이 브라우저에 사용되지 않는 헤더를 제거하여 CloudFront가 최종 사용자에게 보내는 응답에서 이러한 헤더를 제거하도록 할 수 있습니다.

응답 헤더 정책을 사용하여 제거할 헤더를 지정하면 CloudFront는 먼저 헤더를 제거한 다음 응답 헤더 정책의 다른 섹션(CORS 헤더, 보안 헤더, 사용자 지정 헤더 등)에 지정된 헤더를 추가합니다. 제거할 헤더를 지정하고 정책의 다른 섹션에 동일한 헤더를 추가하는 경우 CloudFront는 최종 사용자에게 보내는 응답에 해당 헤더를 포함합니다.

**참고**  
응답 헤더 정책을 사용하여 CloudFront가 오리진에서 수신한 `Server` 및 `Date` 헤더를 제거하여 이러한 헤더(오리진에서 수신됨)가 CloudFront가 최종 사용자에게 보내는 응답에 포함되지 않도록 할 수 있습니다. 하지만 이렇게 하면 CloudFront가 최종 사용자에게 보내는 응답에 해당 버전을 추가합니다. CloudFront가 추가하는 `Server` 헤더의 헤더 값은 `CloudFront`입니다.

### 제거할 수 없는 헤더
<a name="remove-headers-disallowed"></a>

응답 헤더 정책을 사용하여 다음 헤더를 제거할 수 없습니다. 응답 헤더 정책(API `ResponseHeadersPolicyRemoveHeadersConfig`)의 **Remove headers**(헤더 제거) 섹션에서 이러한 헤더를 지정하면 오류가 발생합니다.
+ `Connection`
+ `Content-Encoding`
+ `Content-Length`
+ `Expect`
+ `Host`
+ `Keep-Alive`
+ `Proxy-Authenticate`
+ `Proxy-Authorization`
+ `Proxy-Connection`
+ `Trailer`
+ `Transfer-Encoding`
+ `Upgrade`
+ `Via`
+ `Warning`
+ `X-Accel-Buffering`
+ `X-Accel-Charset`
+ `X-Accel-Limit-Rate`
+ `X-Accel-Redirect`
+ `X-Amz-Cf-.*`
+ `X-Amzn-Auth`
+ `X-Amzn-Cf-Billing`
+ `X-Amzn-Cf-Id`
+ `X-Amzn-Cf-Xff`
+ `X-Amzn-ErrorType`
+ `X-Amzn-Fle-Profile`
+ `X-Amzn-Header-Count`
+ `X-Amzn-Header-Order`
+ `X-Amzn-Lambda-Integration-Tag`
+ `X-Amzn-RequestId`
+ `X-Cache`
+ `X-Edge-.*`
+ `X-Forwarded-Proto`
+ `X-Real-Ip`

## Server-Timing 헤더
<a name="server-timing-header"></a>

`Server-Timing` 헤더 설정을 사용하여 CloudFront에서 보낸 HTTP 응답에서 `Server-Timing` 헤더를 사용 설정합니다. 이 헤더를 사용하여 CloudFront 및 원본의 동작 및 성능에 대한 인사이트를 제공하는 지표를 볼 수 있습니다. 예를 들어 캐시 적중률을 제공한 캐시 계층을 확인할 수 있습니다. 또는 캐시 누락이 발생한 경우 원본에서 첫 번째 바이트 대기 시간을 확인할 수 있습니다. `Server-Timing` 헤더의 지표는 문제를 해결하거나 CloudFront 또는 원본 구성의 효율성을 테스트하는 데 도움이 될 수 있습니다.

CloudFront에서 `Server-Timing` 헤더 사용에 대한 자세한 내용은 다음 주제를 참조하세요.

`Server-Timing` 헤더를 사용 설정하려면 [응답 헤더 정책을 생성(또는 편집)](creating-response-headers-policies.md)합니다.

**Topics**
+ [샘플링 속도 및 Pragma 요청 헤더](#server-timing-header-sampling-rate)
+ [원본에서 수신한 Server-Timing 헤더](#server-timing-header-origin)
+ [Server-Timing 헤더 지표](#server-timing-header-metrics)
+ [Server-Timing 헤더 예시](#server-timing-header-examples)

### 샘플링 속도 및 Pragma 요청 헤더
<a name="server-timing-header-sampling-rate"></a>

응답 헤더 정책에서 `Server-Timing` 헤더를 사용 설정할 때 *샘플링 속도*도 지정합니다. 샘플링 속도는 CloudFront가 `Server-Timing` 헤더를 추가할 응답의 비율을 지정하는 0\$1100(포함)의 숫자입니다. 샘플링 속도를 100으로 설정하면 CloudFront는 응답 헤더 정책이 연결된 캐시 동작과 일치하는 모든 요청에 대한 HTTP 응답에 `Server-Timing` 헤더를 추가합니다. 이 값을 50으로 설정하면 CloudFront가 캐시 동작과 일치하는 요청에 대한 응답의 50%에 헤더를 추가합니다. 샘플링 속도는 소수점 이하 4자리까지 0\$1100의 숫자로 설정할 수 있습니다.

샘플링 속도가 100보다 낮은 숫자로 설정되면 CloudFront가 `Server-Timing` 헤더를 추가하는 응답을 제어할 수 없고 비율만 제어할 수 있습니다. 그러나 HTTP 요청에서 값이 `server-timing`으로 설정된 `Pragma` 헤더를 추가하여 해당 요청에 대한 응답에서 `Server-Timing` 헤더를 수신할 수 있습니다. 이는 샘플링 속도가 무엇으로 설정되어 있든 상관없이 작동합니다. 샘플링 속도가 0으로 설정된 경우에도 요청에 `Pragma: server-timing` 헤더가 포함된 경우 CloudFront는 `Server-Timing` 헤더를 응답에 추가합니다.

### 원본에서 수신한 Server-Timing 헤더
<a name="server-timing-header-origin"></a>

캐시 누락이 있고 CloudFront가 요청을 원본에 전달할 때 원본은 CloudFront에 대한 응답에 `Server-Timing` 헤더를 포함할 수 있습니다. 이 경우 CloudFront는 원본에서 수신한 `Server-Timing` 헤더에 [지표](#server-timing-header-metrics)를 추가합니다. CloudFront가 뷰어에게 보내는 응답은 원본에서 온 값과 CloudFront가 추가한 지표를 포함하는 하나의 `Server-Timing` 헤더를 포함합니다. 원본에서 수신한 헤더 값은 끝에 있거나 CloudFront가 헤더에 추가하는 두 지표 세트 사이에 있을 수 있습니다.

캐시 적중이 있는 경우 CloudFront가 뷰어에게 보내는 응답은 헤더 값에 CloudFront 지표만 포함하는 하나의 `Server-Timing` 헤더를 포함합니다(원본에서 수신한 값은 포함되지 않음).

### Server-Timing 헤더 지표
<a name="server-timing-header-metrics"></a>

CloudFront가 HTTP 응답에 `Server-Timing` 헤더를 추가할 때 헤더 값에는 CloudFront 및 원본의 동작 및 성능에 대한 인사이트를 제공하는 하나 이상의 지표가 포함됩니다. 다음 목록에는 모든 지표와 해당 잠재적 값이 나와 있습니다. `Server-Timing` 헤더에는 CloudFront를 통한 요청 및 응답의 특성에 따라 이러한 지표 중 일부만 포함됩니다.

이러한 지표 중 일부는 이름만 있는(값은 없음) `Server-Timing` 헤더에 포함됩니다. 나머지에는 이름과 값이 있습니다. 지표에 값이 있으면 이름과 값이 세미콜론(`;`)으로 구분됩니다. 헤더에 둘 이상의 지표가 포함된 경우 지표는 쉼표(`,`)로 구분됩니다.

**cdn-cache-hit**  
CloudFront가 원본에 요청하지 않고 캐시에서 응답을 제공했습니다.

**cdn-cache-refresh**  
CloudFront가 캐시된 객체가 여전히 유효한지 확인하기 위해 원본에 요청을 보낸 후 캐시에서 응답을 제공했습니다. 이 경우 CloudFront는 원본에서 전체 객체를 검색하지 않았습니다.

**cdn-cache-miss**  
CloudFront가 캐시에서 응답을 제공하지 않았습니다. 이 경우 CloudFront는 응답을 반환하기 전에 원본에서 전체 객체를 요청했습니다.

**cdn-pop**  
요청을 처리한 CloudFront 접속 지점(POP)을 설명하는 값이 포함되어 있습니다.

**cdn-rid**  
요청에 대한 CloudFront 고유 식별자가 있는 값이 포함되어 있습니다. 지원를 통해 문제를 해결할 때 이 요청 식별자(RID)를 사용할 수 있습니다.

**cdn-hit-layer**  
CloudFront가 원본에 요청하지 않고 캐시에서 응답을 제공하는 경우 이 지표가 표시됩니다. 다음 값 중 하나를 포함합니다.  
+ **EDGE** – CloudFront가 POP 위치에서 캐시된 응답을 제공했습니다.
+ **REC** - CloudFront가 [리전 엣지 캐시](HowCloudFrontWorks.md#CloudFrontRegionaledgecaches)(REC) 위치에서 캐시된 응답을 제공했습니다.
+ **Origin Shield** – CloudFront가 [Origin Shield](origin-shield.md) 역할을 하는 REC에서 캐시된 응답을 제공했습니다.

**cdn-upstream-layer**  
CloudFront가 원본에서 전체 객체를 요청하는 경우 이 지표가 표시되며 이 지표에는 다음 값 중 하나가 포함됩니다.  
+ **EDGE** – POP 위치에서 요청을 원본으로 직접 보냈습니다.
+ **REC** – REC 위치에서 요청을 원본으로 직접 보냈습니다.
+ **Origin Shield** – [Origin Shield](origin-shield.md) 역할을 하는 REC가 요청을 원본으로 직접 보냈습니다.

**cdn-upstream-dns**  
원본에 대한 DNS 레코드를 검색하는 데 소요된 시간(밀리초) 값이 포함됩니다. 값이 0이면 CloudFront에서 캐시된 DNS 결과를 사용했거나 기존 연결을 재사용했음을 나타냅니다.

**cdn-upstream-connect**  
원본 DNS 요청이 완료된 시점과 원본에 대한 TCP(및 해당하는 경우 TLS) 연결이 완료된 시점 사이의 시간(밀리초) 값이 포함됩니다. 값이 0이면 CloudFront에서 기존 연결을 재사용했음을 나타냅니다.

**cdn-upstream-fbl**  
원본 HTTP 요청이 완료된 시점과 원본의 응답에서 첫 번째 바이트가 수신된 시점(첫 번째 바이트 대기 시간) 사이의 밀리초 값이 포함됩니다.

**cdn-downstream-fbl**  
엣지 로케이션에서 요청 수신이 완료된 시점과 사용자에게 응답의 첫 번째 바이트가 전송된 시점 사이의 밀리초 값이 포함됩니다.

### Server-Timing 헤더 예시
<a name="server-timing-header-examples"></a>

다음은 `Server-Timing` 헤더 설정이 사용 설정된 경우 뷰어가 CloudFront에서 수신할 수 있는 `Server-Timing` 헤더의 예입니다.

**Example - 캐시 누락**  
다음 예제는 요청된 객체가 CloudFront 캐시에 없을 때 뷰어가 수신할 수 있는 `Server-Timing` 헤더를 보여줍니다.  

```
Server-Timing: cdn-upstream-layer;desc="EDGE",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=114,cdn-upstream-fbl;dur=177,cdn-cache-miss,cdn-pop;desc="PHX50-C2",cdn-rid;desc="yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg==",cdn-downstream-fbl;dur=436
```
이 `Server-Timing` 헤더는 다음을 나타냅니다.  
+ 원본 요청이 CloudFront 접속 지점 (POP) 위치(`cdn-upstream-layer;desc="EDGE"`)에서 전송되었습니다.
+ CloudFront가 원본에 대해 캐시된 DNS 결과를 사용했습니다(`cdn-upstream-dns;dur=0`).
+ CloudFront가 원본에 대한 TCP(및 해당하는 경우 TLS) 연결을 완료하는 데 114밀리초가 소요되었습니다(`cdn-upstream-connect;dur=114`).
+ 요청을 완료한 후 CloudFront가 원본에서 응답의 첫 번째 바이트를 수신하는 데 177밀리초가 소요되었습니다(`cdn-upstream-fbl;dur=177`).
+ 요청된 객체가 CloudFront의 캐시에 없었습니다(`cdn-cache-miss`).
+ 요청이 코드 `PHX50-C2`(`cdn-pop;desc="PHX50-C2"`)로 식별된 엣지 로케이션에서 수신되었습니다.
+ 이 요청에 대한 CloudFront 고유 ID는 `yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg==`(`cdn-rid;desc="yNPsyYn7skvTzwWkq3Wcc8Nj_foxUjQUe9H1ifslzWhb0w7aLbFvGg=="`)이었습니다.
+ 최종 뷰어 요청을 받은 후 CloudFront가 뷰어에게 응답의 첫 번째 바이트를 보내는 데 436밀리초가 소요되었습니다(`cdn-downstream-fbl;dur=436`).

**Example - 캐시 적중률**  
다음 예제는 요청된 객체가 CloudFront 캐시에 있을 때 뷰어가 수신할 수 있는 `Server-Timing` 헤더를 보여줍니다.  

```
Server-Timing: cdn-cache-hit,cdn-pop;desc="SEA19-C1",cdn-rid;desc="nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g==",cdn-hit-layer;desc="REC",cdn-downstream-fbl;dur=137
```
이 `Server-Timing` 헤더는 다음을 나타냅니다.  
+ 요청된 객체가 캐시에 있었습니다(`cdn-cache-hit`).
+ 요청이 코드 `SEA19-C1`(`cdn-pop;desc="SEA19-C1"`)로 식별된 엣지 로케이션에서 수신되었습니다.
+ 이 요청에 대한 CloudFront 고유 ID는 `nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g==`(`cdn-rid;desc="nQBz4aJU2kP9iC3KHEq7vFxfMozu-VYBwGzkW9diOpeVc7xsrLKj-g=="`)이었습니다.
+ 요청된 객체가 리전 엣지 캐시(REC) 위치에 캐시되었습니다(`cdn-hit-layer;desc="REC"`).
+ 최종 뷰어 요청을 받은 후 CloudFront가 뷰어에게 응답의 첫 번째 바이트를 보내는 데 137밀리초가 소요되었습니다(`cdn-downstream-fbl;dur=137`).

# 응답 헤더 정책 생성
<a name="creating-response-headers-policies"></a>

응답 헤더 정책을 사용하여 Amazon CloudFront가 HTTP 응답에서 추가 또는 제거하는 HTTP 헤더를 지정할 수 있습니다. 응답 헤더 정책 및 사용 이유에 대한 자세한 내용은 [정책을 통해 CloudFront 응답에서 HTTP 헤더 추가 또는 제거](modifying-response-headers.md) 단원을 참조하세요.

CloudFront 콘솔에서 응답 헤더 정책을 생성할 수 있습니다. 다른 방법으로 AWS CloudFormation, AWS Command Line Interface(AWS CLI) 또는 CloudFront API를 사용하여 정책을 생성할 수 있습니다. 응답 헤더 정책을 생성한 후 CloudFront 배포의 하나 이상의 캐시 동작에 연결합니다.

사용자 지정 응답 헤더 정책을 생성하기 전에 [관리형 응답 헤더 정책](using-managed-response-headers-policies.md) 중 하나가 사용 사례에 맞는지 확인합니다. 사용 사례에 맞는 경우 캐시 동작에 연결할 수 있습니다. 이렇게 하면 자체 응답 헤더 정책을 생성하거나 관리할 필요가 없습니다.

------
#### [ Console ]

**응답 헤더 정책을 생성하려면(콘솔)**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders](https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders)에서 CloudFront 콘솔의 **정책** 페이지의 **응답 헤더(Response headers)** 탭으로 이동합니다.

1. **응답 헤더 정책 생성(Create response headers policy)**을 선택합니다.

1. **응답 헤더 정책 생성(Create response headers policy)** 양식에서 다음을 수행합니다.

   1. **세부 정보(Details)** 패널에서 응답 헤더 정책의 **이름**과 정책의 목적을 설명하는 **설명**(선택 사항)을 입력합니다.

   1. **교차 원본 리소스 공유(CORS)** 패널에서 **CORS 구성(Configure CORS)** 토글을 선택하고 정책에 추가할 CORS 헤더를 구성합니다. 구성된 헤더가 CloudFront가 원본서 수신하는 헤더를 재정의하도록 하려면 **원본 재정의(Origin override)** 확인란을 선택합니다.

      CORS 헤더 설정에 대한 자세한 내용은 [CORS 헤더](understanding-response-headers-policies.md#understanding-response-headers-policies-cors)를 참조하십시오.

   1. **보안 헤더(Security headers)** 패널에서 토글을 선택하고 정책에 추가할 각 보안 헤더를 구성합니다.

      보안 헤더 설정에 대한 자세한 내용은 [보안 헤더](understanding-response-headers-policies.md#understanding-response-headers-policies-security)를 참조하십시오.

   1. **사용자 지정 헤더(Custom headers)** 패널에서 정책에 포함할 사용자 지정 헤더를 추가합니다.

      사용자 지정 헤더 설정에 대한 자세한 내용은 [사용자 지정 헤더](understanding-response-headers-policies.md#understanding-response-headers-policies-custom)를 참조하십시오.

   1. **헤더 제거** 패널에서 CloudFront로 하여금 오리진 응답에서 제거하고 최종 사용자에게 보내는 응답에는 포함하지 않게 하려는 헤더의 이름을 추가합니다.

      헤더 제거 설정에 대한 자세한 내용은 [헤더 제거](understanding-response-headers-policies.md#understanding-response-headers-policies-remove-headers)를 참조하십시오.

   1. **Server-Timing 헤더** 패널에서 **활성화** 토글을 선택하고 샘플링 속도(0\$1100의 숫자)를 입력합니다.

      `Server-Timing` 헤더에 대한 자세한 내용은 [Server-Timing 헤더](understanding-response-headers-policies.md#server-timing-header) 섹션을 참조하십시오.

1. **생성(Create)**을 선택하여 정책을 생성합니다.

응답 헤더 정책을 생성한 후 CloudFront 배포의 하나의 캐시 동작에 연결할 수 있습니다.

**기존 배포에 응답 헤더 정책을 연결하려면(콘솔)**

1. [https://console.aws.amazon.com/cloudfront/v4/home#/distributions](https://console.aws.amazon.com/cloudfront/v4/home#/distributions)의 CloudFront 콘솔에서 [**Distributions(배포)**] 페이지를 엽니다.

1. 업데이트할 배포를 선택한 다음 **Behaviors(동작)** 탭을 선택합니다.

1. 업데이트할 캐시 동작을 선택한 다음 **편집(Edit)**을 선택합니다.

   또는 새 캐시 동작을 생성하려면 **Create Behavior(동작 생성)**를 선택합니다.

1. **응답 헤더 정책(Response headers policy)**에서 캐시 동작에 추가할 정책을 선택합니다.

1. **변경 사항 저장(Save changes)**을 선택하여 캐시 동작을 업데이트합니다. 새 캐시 동작을 생성하는 경우 **동작 생성(Create behavior)**을 선택합니다.

**새 배포에 응답 헤더 정책을 연결하려면(콘솔)**

1. [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. **배포 생성**을 선택합니다.

1. **응답 헤더 정책(Response headers policy)**에서 캐시 동작에 추가할 정책을 선택합니다.

1. 배포에 대한 다른 설정을 선택합니다. 자세한 내용은 [모든 배포 설정 참조](distribution-web-values-specify.md) 섹션을 참조하세요.

1. **배포 생성(Create distribution)**을 선택하여 배포를 생성합니다.

------
#### [ CloudFormation ]

CloudFormation를 사용하여 응답 헤더 정책을 생성하려면 `AWS::CloudFront::ResponseHeadersPolicy` 리소스 유형을 사용하십시오. 다음 예는 응답 헤더 정책을 생성하기 위한 YAML 형식의 CloudFormation 템플릿 구문을 보여줍니다.

```
Type: AWS::CloudFront::ResponseHeadersPolicy
Properties: 
  ResponseHeadersPolicyConfig: 
    Name: EXAMPLE-Response-Headers-Policy
    Comment: Example response headers policy for the documentation
    CorsConfig: 
      AccessControlAllowCredentials: false
      AccessControlAllowHeaders: 
        Items: 
          - '*'
      AccessControlAllowMethods: 
        Items: 
          - GET
          - OPTIONS
      AccessControlAllowOrigins: 
        Items: 
          - https://example.com
          - https://docs.example.com
      AccessControlExposeHeaders: 
        Items: 
          - '*'
      AccessControlMaxAgeSec: 600
      OriginOverride: false
    CustomHeadersConfig: 
      Items: 
        - Header: Example-Custom-Header-1
          Value: value-1
          Override: true
        - Header: Example-Custom-Header-2
          Value: value-2
          Override: true
    SecurityHeadersConfig: 
      ContentSecurityPolicy: 
        ContentSecurityPolicy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'; frame-ancestors 'none'
        Override: false
      ContentTypeOptions: # You don't need to specify a value for 'X-Content-Type-Options'.
                          # Simply including it in the template sets its value to 'nosniff'.
        Override: false
      FrameOptions: 
        FrameOption: DENY
        Override: false
      ReferrerPolicy: 
        ReferrerPolicy: same-origin
        Override: false
      StrictTransportSecurity: 
        AccessControlMaxAgeSec: 63072000
        IncludeSubdomains: true
        Preload: true
        Override: false
      XSSProtection: 
        ModeBlock: true # You can set ModeBlock to 'true' OR set a value for ReportUri, but not both
        Protection: true
        Override: false
    ServerTimingHeadersConfig:
      Enabled: true
      SamplingRate: 50
    RemoveHeadersConfig:
      Items:
        - Header: Vary
        - Header: X-Powered-By
```

자세한 내용은 *AWS CloudFormation 사용 설명서*의 [AWS::CloudFront::ResponseHeadersPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html)를 참조하십시오.

------
#### [ CLI ]

AWS Command Line Interface(AWS CLI)를 사용하여 응답 헤더 정책을 생성하려면 **aws cloudfront create-response-headers-policy** 명령을 사용합니다. 각 개별 파라미터를 명령줄 입력으로 지정하는 대신 입력 파일을 사용하여 명령의 입력 파라미터를 제공할 수 있습니다.

**응답 헤더 정책을 생성하려면(입력 파일이 있는 CLI)**

1. 다음 명령을 사용하여 이름이 `response-headers-policy.yaml`인 파일을 생성합니다. 이 파일에는 **create-response-headers-policy** 명령에 대한 모든 입력 파라미터가 들어 있습니다.

   ```
   aws cloudfront create-response-headers-policy --generate-cli-skeleton yaml-input > response-headers-policy.yaml
   ```

1. 방금 생성한 `response-headers-policy.yaml` 파일을 엽니다. 파일을 편집하여 정책 이름과 원하는 응답 헤더 정책 구성을 지정한 다음 파일을 저장합니다.

   응답 헤더 정책 설정에 대한 자세한 내용은 [응답 헤더 정책 이해](understanding-response-headers-policies.md)를 참조하세요.

1. 응답 헤더 정책을 생성하려면 다음 명령을 사용합니다. 생성하는 정책은 `response-headers-policy.yaml` 파일의 입력 파라미터를 사용합니다.

   ```
   aws cloudfront create-response-headers-policy --cli-input-yaml file://response-headers-policy.yaml
   ```

   명령 출력에 있는 `Id` 값을 기록해 둡니다. 이는 응답 헤더 정책 ID입니다. CloudFront 배포의 캐시 동작에 정책을 연결하는 데 필요합니다.

**기존 배포에 응답 헤더 정책을 연결하려면(입력 파일이 있는 CLI)**

1. 다음 명령을 사용하여 업데이트할 CloudFront 배포에 대한 배포 구성을 저장합니다. *distribution\$1ID*를 배포 ID로 바꿉니다.

   ```
   aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
   ```

1. 방금 생성한 `dist-config.yaml`이라는 파일을 엽니다. 파일을 편집하여 응답 헤더 정책을 사용하도록 캐시 동작을 다음과 같이 변경합니다.
   + 캐시 동작에서 `ResponseHeadersPolicyId`라는 필드를 추가합니다. 필드 값에는 정책을 생성한 후 기록해 둔 응답 헤더 정책 ID를 사용합니다.
   + `ETag` 필드의 이름을 `IfMatch`로 바꾸지만 필드 값은 변경하지 마세요.

   완료되면 파일을 저장합니다.

1. 다음 명령을 사용하여 응답 헤더 정책을 사용하도록 배포를 업데이트합니다. *distribution\$1ID*를 배포 ID로 바꿉니다.

   ```
   aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
   ```

**새로운 배포에 응답 헤더 정책을 연결하려면(입력 파일이 있는 CLI)**

1. 다음 명령을 사용하여 이름이 `distribution.yaml`인 파일을 생성합니다. 이 파일에는 **create-distribution** 명령에 대한 모든 입력 파라미터가 들어 있습니다.

   ```
   aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
   ```

1. 방금 생성한 `distribution.yaml` 파일을 엽니다. 기본 캐시 동작의 `ResponseHeadersPolicyId` 필드에 정책을 생성한 후 기록한 응답 정책 ID를 입력합니다. 파일을 계속 편집하여 원하는 배포 설정을 지정한 다음 완료되면 파일을 저장합니다.

   배포 설정에 대한 자세한 내용은 [모든 배포 설정 참조](distribution-web-values-specify.md) 단원을 참조하세요.

1. 다음 명령을 사용하여 `distribution.yaml` 파일의 입력 파라미터로 배포를 만듭니다.

   ```
   aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
   ```

------
#### [ API ]

CloudFront API로 응답 헤더 정책을 생성하려면 [CreateResponseHeadersPolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateResponseHeadersPolicy.html)를 사용하십시오. 이 API 호출에서 지정하는 필드에 대한 자세한 내용은 AWS SDK 또는 기타 API 클라이언트에 대한 [응답 헤더 정책 이해](understanding-response-headers-policies.md) 및 API 참조 설명서를 참조하세요.

응답 헤더 정책을 생성한 후 다음 API 호출 중 하나를 사용하여 캐시 동작에 연결할 수 있습니다.
+ 기존 배포의 캐시 동작에 연결하려면 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)을 사용합니다.
+ 새 배포의 캐시 동작에 연결하려면 [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)을 사용합니다.

이 두 API 호출 모두에 대해 캐시 동작 내부의 `ResponseHeadersPolicyId` 필드에 요청 헤더 정책 ID를 제공합니다. 이러한 API 호출에서 지정하는 다른 필드에 대한 자세한 내용은 [모든 배포 설정 참조](distribution-web-values-specify.md)와 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

------

# 관리형 응답 헤더 정책 사용
<a name="using-managed-response-headers-policies"></a>

CloudFront 응답 헤더 정책을 사용하면 Amazon CloudFront가 사용자에게 보내는 응답에서 제거하거나 추가하는 HTTP 헤더를 지정할 수 있습니다. 응답 헤더 정책 및 사용 이유에 대한 자세한 내용은 [정책을 통해 CloudFront 응답에서 HTTP 헤더 추가 또는 제거](modifying-response-headers.md) 단원을 참조하세요.

CloudFront는 CloudFront 배포의 캐시 동작에 연결할 수 있는 관리형 응답 헤더 정책을 제공합니다. 관리형 응답 헤더 정책을 사용하면 자체 정책을 작성하거나 유지 관리할 필요가 없습니다. 관리형 정책은 일반 사용 사례에 대한 HTTP 응답 헤더 집합을 포함합니다.

관리 응답 헤더 정책을 사용하려면 배포의 캐시 동작에 연결합니다. 이 프로세스는 사용자 지정 응답 헤더 정책을 생성할 때와 동일합니다. 그러나 새 정책을 만드는 대신 관리형 정책 중 하나를 연결합니다. 이름(콘솔 사용) 또는 ID(CloudFormation, AWS CLI 또는 AWS SDK 사용)로 정책을 연결합니다. 이름과 ID는 다음 섹션에 나열되어 있습니다.

자세한 내용은 [응답 헤더 정책 생성](creating-response-headers-policies.md) 섹션을 참조하세요.

다음 항목에서는 사용할 수 있는 관리형 응답 헤더 정책에 대해 설명합니다.

**Topics**
+ [CORS-and-SecurityHeadersPolicy](#managed-response-headers-policies-cors-security)
+ [CORS-With-Preflight](#managed-response-headers-policies-cors-preflight)
+ [CORS-with-preflight-and-SecurityHeadersPolicy](#managed-response-headers-policies-cors-preflight-security)
+ [SecurityHeadersPolicy](#managed-response-headers-policies-security)
+ [SimpleCORS](#managed-response-headers-policies-cors)

## CORS-and-SecurityHeadersPolicy
<a name="managed-response-headers-policies-cors-security"></a>

[CloudFront 콘솔에서 이 정책 보기](https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders/e61eb60c-9c35-4d20-a928-2b84e02af89c)

이 관리형 정책을 사용하여 모든 원본의 간단한 CORS 요청을 허용합니다. 또한 이 정책은 CloudFront가 뷰어에게 보내는 모든 응답에 보안 헤더 집합을 추가합니다. 이 정책은 [SimpleCORS](#managed-response-headers-policies-cors)과 [SecurityHeadersPolicy](#managed-response-headers-policies-security) 정책을 하나로 묶습니다.

CloudFormation, AWS CLI 또는 CloudFront API를 사용할 때 이 정책의 ID는 다음과 같습니다.

`e61eb60c-9c35-4d20-a928-2b84e02af89c`


**정책 설정**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html)

## CORS-With-Preflight
<a name="managed-response-headers-policies-cors-preflight"></a>

[CloudFront 콘솔에서 이 정책 보기](https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders/5cc3b908-e619-4b99-88e5-2cf7f45965bd)

이 관리형 정책을 사용하여 사전 요청을 포함하여 모든 원본의 CORS 요청을 허용합니다. 사전 요청(HTTP `OPTIONS` 메서드 사용)의 경우 CloudFront는 다음 세 가지 헤더를 모두 응답에 추가합니다. 긴단한 CORS 요청의 경우 CloudFront는 `Access-Control-Allow-Origin` 헤더만 추가합니다.

CloudFront가 원본에서 수신하는 응답에 이러한 헤더가 포함된 경우 CloudFront는 뷰어에 대한 응답에서 수신된 헤더(및 해당 값)를 사용합니다. 이 경우 CloudFront는 이 정책의 헤더를 사용하지 않습니다.

CloudFormation, AWS CLI 또는 CloudFront API를 사용할 때 이 정책의 ID는 다음과 같습니다.

`5cc3b908-e619-4b99-88e5-2cf7f45965bd`


**정책 설정**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html)

## CORS-with-preflight-and-SecurityHeadersPolicy
<a name="managed-response-headers-policies-cors-preflight-security"></a>

[CloudFront 콘솔에서 이 정책 보기](https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders/eaab4381-ed33-4a86-88ca-d9558dc6cd63)

이 관리형 정책을 사용하여 모든 원본의 CORS 요청을 허용합니다. 여기에는 사전 요청이 포함됩니다. 또한 이 정책은 CloudFront가 뷰어에게 보내는 모든 응답에 보안 헤더 집합을 추가합니다. 이 정책은 [CORS-With-Preflight](#managed-response-headers-policies-cors-preflight)과 [SecurityHeadersPolicy](#managed-response-headers-policies-security) 정책을 하나로 묶습니다.

CloudFormation, AWS CLI 또는 CloudFront API를 사용할 때 이 정책의 ID는 다음과 같습니다.

`eaab4381-ed33-4a86-88ca-d9558dc6cd63`


**정책 설정**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html)

## SecurityHeadersPolicy
<a name="managed-response-headers-policies-security"></a>

[CloudFront 콘솔에서 이 정책 보기](https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders/67f7725c-6f97-4210-82d7-5512b31e9d03)

이 관리형 정책을 사용하여 CloudFront가 뷰어에게 보내는 모든 응답에 보안 헤더 집합을 추가할 수 있습니다. 이러한 보안 헤더에 대한 자세한 내용은 [Mozilla의 웹 보안 가이드라인](https://infosec.mozilla.org/guidelines/web_security)을 참조하십시오.

이 응답 헤더 정책에서 CloudFront는 모든 응답에 `X-Content-Type-Options: nosniff`를 추가합니다. CloudFront가 원본에서 받은 응답에 이 헤더가 포함되어 있는지 여부와 상관 없습니다. 이 정책의 다른 모든 헤더에 대해 CloudFront가 원본에서 수신하는 응답에 해당 헤더가 포함된 경우 CloudFront는 뷰어에 대한 응답에서 수신된 헤더(및 해당 값)를 사용합니다. 이 경우 CloudFront는 이 정책의 헤더를 사용하지 않습니다.

CloudFormation, AWS CLI 또는 CloudFront API를 사용할 때 이 정책의 ID는 다음과 같습니다.

`67f7725c-6f97-4210-82d7-5512b31e9d03`


**정책 설정**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html)

## SimpleCORS
<a name="managed-response-headers-policies-cors"></a>

[CloudFront 콘솔에서 이 정책 보기](https://console.aws.amazon.com/cloudfront/v4/home#/policies/responseHeaders/60669652-455b-4ae9-85a4-c4c02393f86c)

이 관리형 정책을 사용하여 모든 원본의 [간단한 CORS 요청](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests)을 허용합니다. 이 정책을 사용하면 CloudFront에서 단순 CORS 요청에 대한 모든 응답에 헤더 `Access-Control-Allow-Origin: *`를 추가합니다.

CloudFront가 원본에서 수신하는 응답에 `Access-Control-Allow-Origin` 헤더가 포함된 경우 CloudFront는 뷰어에 대한 응답에서 해당 헤더(및 해당 값)를 사용합니다. 이 경우 CloudFront는 이 정책의 헤더를 사용하지 않습니다.

CloudFormation, AWS CLI 또는 CloudFront API를 사용할 때 이 정책의 ID는 다음과 같습니다.

`60669652-455b-4ae9-85a4-c4c02393f86c`


**정책 설정**  

|  | 헤더 이름 | 헤더 값 | 원본을 재정의할까요? | 
| --- | --- | --- | --- | 
| CORS 헤더: | Access-Control-Allow-Origin | \$1 | 아니요 | 