응답 헤더 정책 생성 - Amazon CloudFront

응답 헤더 정책 생성

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

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

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

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

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

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

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

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

      CORS 헤더 설정에 대한 자세한 내용은 CORS 헤더를 참조하십시오.

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

      보안 헤더 설정에 대한 자세한 내용은 보안 헤더를 참조하십시오.

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

      사용자 지정 헤더 설정에 대한 자세한 내용은 사용자 지정 헤더를 참조하십시오.

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

      헤더 제거 설정에 대한 자세한 내용은 헤더 제거를 참조하십시오.

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

      Server-Timing 헤더에 대한 자세한 내용은 Server-Timing 헤더 섹션을 참조하십시오.

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

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

기존 배포에 응답 헤더 정책을 연결하려면(콘솔)
  1. https://console.aws.amazon.com/cloudfront/v4/home#/distributions의 CloudFront 콘솔에서 [Distributions(배포)] 페이지를 엽니다.

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

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

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

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

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

새 배포에 응답 헤더 정책을 연결하려면(콘솔)
  1. https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 엽니다.

  2. 배포 생성을 선택합니다.

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

  4. 배포에 대한 다른 설정을 선택합니다. 자세한 내용은 배포 설정 참조 단원을 참조하십시오.

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

AWS CloudFormation

AWS CloudFormation를 사용하여 응답 헤더 정책을 생성하려면 AWS::CloudFront::ResponseHeadersPolicy 리소스 유형을 사용하십시오. 다음 예는 응답 헤더 정책을 생성하기 위한 YAML 형식의 AWS 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를 참조하십시오.

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
  2. 방금 생성한 response-headers-policy.yaml 파일을 엽니다. 파일을 편집하여 정책 이름과 원하는 응답 헤더 정책 구성을 지정한 다음 파일을 저장합니다.

    응답 헤더 정책 설정에 대한 자세한 내용은 응답 헤더 정책 이해를 참조하세요.

  3. 응답 헤더 정책을 생성하려면 다음 명령을 사용합니다. 생성하는 정책은 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_ID를 배포 ID로 바꿉니다.

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
  2. 방금 생성한 dist-config.yaml이라는 파일을 엽니다. 파일을 편집하여 응답 헤더 정책을 사용하도록 캐시 동작을 다음과 같이 변경합니다.

    • 캐시 동작에서 ResponseHeadersPolicyId라는 필드를 추가합니다. 필드 값에는 정책을 생성한 후 기록해 둔 응답 헤더 정책 ID를 사용합니다.

    • ETag 필드의 이름을 IfMatch로 바꾸지만 필드 값은 변경하지 마세요.

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

  3. 다음 명령을 사용하여 응답 헤더 정책을 사용하도록 배포를 업데이트합니다. distribution_ID를 배포 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
  2. 방금 생성한 distribution.yaml 파일을 엽니다. 기본 캐시 동작의 ResponseHeadersPolicyId 필드에 정책을 생성한 후 기록한 응답 정책 ID를 입력합니다. 파일을 계속 편집하여 원하는 배포 설정을 지정한 다음 완료되면 파일을 저장합니다.

    배포 설정에 대한 자세한 내용은 배포 설정 참조 단원을 참조하세요.

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

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

CloudFront API로 응답 헤더 정책을 생성하려면 CreateResponseHeadersPolicy를 사용하십시오. 이 API 호출에서 지정하는 필드에 대한 자세한 내용은 응답 헤더 정책 이해 및 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

응답 헤더 정책을 생성한 후 다음 API 호출 중 하나를 사용하여 캐시 동작에 연결할 수 있습니다.

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