

# 응답 헤더 정책 생성
<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 참조 설명서를 참조하세요.

------