CloudFront 요청 헤더 추가 - 아마존 CloudFront

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

CloudFront 요청 헤더 추가

최종 사용자로부터 CloudFront 수신하고 오리진 또는 에지 함수로 전달하는 요청에 특정 HTTP 헤더를 CloudFront 추가하도록 구성할 수 있습니다. 이러한 HTTP 헤더의 값은 최종 사용자 또는 최종 사용자 요청의 특성을 기반으로 합니다. 헤더는 최종 사용자의 디바이스 유형, IP 주소, 지리적 위치, 요청 프로토콜(HTTP 또는 HTTPS), HTTP 버전 및 TLS 연결 세부 정보, JA3 핑거프린트를 제공할 수 있습니다.

이러한 헤더를 사용하면 정보를 확인하기 위해 직접 코드를 작성할 필요 없이 오리진 또는 엣지 함수에서 최종 사용자에 대한 정보를 수신할 수 있습니다. 오리진이 이러한 헤더의 정보를 기반으로 서로 다른 응답을 반환하는 경우, 응답을 개별적으로 CloudFront 캐시하도록 캐시 키에 포함시킬 수 있습니다. 예를 들어, 오리진에서는 최종 사용자가 거주하는 국가에 따라 특정 언어로 된 콘텐츠나 특정 디바이스 유형에 맞춘 콘텐츠로 응답할 수 있습니다. 오리진에서 로그 파일에 이러한 헤더를 쓸 수도 있습니다. 이 헤더를 사용하여 최종 사용자의 위치, 사용 중인 디바이스 유형 등에 대한 정보를 확인할 수 있습니다.

캐시 키에 헤더를 포함하려면 캐시 정책을 사용합니다. 자세한 내용은 캐시 키 제어캐시 키 이해 섹션을 참조하세요.

원본에서 이러한 헤더를 수신하지만 캐시 키에는 포함하지 않으려면 원본 요청 정책을 사용하십시오. 자세한 설명은 오리진 요청 제어 섹션을 참조하세요.

최종 사용자의 디바이스 유형을 확인하기 위한 헤더

다음 헤더를 추가하여 최종 사용자의 디바이스 유형을 확인할 수 있습니다. User-Agent헤더 값에 따라 이러한 헤더의 값을 또는 로 CloudFront 설정합니다. true false 디바이스가 둘 이상의 범주에 속하는 경우 둘 이상의 값이 true일 수 있습니다. 예를 들어 일부 태블릿 장치의 경우 CloudFront-Is-Mobile-ViewerCloudFront-Is-Tablet-Viewertrue 모두 CloudFront 설정합니다.

  • CloudFront-Is-Android-Viewer— 뷰어가 Android 운영 체제를 사용하는 장치라고 CloudFront 판단되는 시점으로 설정합니다. true

  • CloudFront-Is-Desktop-Viewer— 뷰어가 데스크톱 장치라고 CloudFront 판단되는 시점으로 설정합니다. true

  • CloudFront-Is-IOS-Viewer— 뷰어가 iPhone, iPod touch 및 일부 iPad 장치와 같은 Apple 모바일 운영 체제가 설치된 장치라고 CloudFront 판단되는 시점으로 설정합니다. true

  • CloudFront-Is-Mobile-Viewer— 뷰어가 모바일 장치라고 CloudFront 판단되는 시점을 설정합니다. true

  • CloudFront-Is-SmartTV-Viewer— 시청자가 스마트 TV라고 CloudFront 판단되는 시점을 설정합니다. true

  • CloudFront-Is-Tablet-Viewer— 시청자가 태블릿이라고 CloudFront 판단되는 시점을 설정합니다. true

최종 사용자 위치를 확인하기 위한 헤더

다음 헤더를 추가하여 시청자의 위치를 파악할 수 있습니다. CloudFront 뷰어의 IP 주소를 기반으로 이러한 헤더의 값을 결정합니다. 이러한 헤더 값에 ASCII가 아닌 문자의 경우 RFC 3986의 섹션 1.2에 따라 문자를 CloudFront 퍼센트 인코딩합니다.

  • CloudFront-Viewer-Address - 최종 사용자의 IP 주소와 요청의 소스 포트를 포함합니다. 예를 들어, 헤더 값 198.51.100.10:46532는 최종 사용자의 IP 주소가 198.51.100.10이고 요청 소스 포트가 46532임을 의미합니다.

  • CloudFront-Viewer-ASN - 최종 사용자의 Autonomous System Number(ASN)를 포함합니다.

    참고

    CloudFront-Viewer-AddressCloudFront-Viewer-ASN을 오리진 요청 정책에는 추가할 수 있지만 캐시 정책에는 추가할 수 없습니다.

  • CloudFront-Viewer-Country – 최종 사용자 국가의 두 자로 된 국가 코드가 들어 있습니다. 국가 코드 목록은 ISO 3166-1 alpha-2 단원을 참조하세요.

다음 헤더를 추가하면 네트워크에서 시작된 요청을 제외한 모든 요청에 해당 헤더가 CloudFront 적용됩니다. AWS

  • CloudFront-Viewer-City – 최종 사용자의 도시 이름을 포함합니다.

  • CloudFront-Viewer-Country-Name – 최종 사용자 국가의 이름을 포함합니다.

  • CloudFront-Viewer-Country-Region – 최종 사용자 리전을 나타내는 코드(최대 3자)를 포함합니다. 리전은 ISO 3166-2코드의 첫 번째 수준의 하위 항목(가장 폭넓거나 가장 덜 구체적)입니다.

  • CloudFront-Viewer-Country-Region-Name – 최종 사용자 리전의 이름을 포함합니다. 리전은 ISO 3166-2코드의 첫 번째 수준의 하위 항목(가장 폭넓거나 가장 덜 구체적)입니다.

  • CloudFront-Viewer-Latitude – 최종 사용자의 대략적인 위도를 포함합니다.

  • CloudFront-Viewer-Longitude – 최종 사용자의 대략적인 경도를 포함합니다.

  • CloudFront-Viewer-Metro-Code – 최종 사용자의 메트로 코드를 포함합니다. 이는 최종 사용자가 미국에 있을 때만 표시됩니다.

  • CloudFront-Viewer-Postal-Code – 최종 사용자의 우편 번호를 포함합니다.

  • CloudFront-Viewer-Time-Zone IANA 표준 시간대 데이터베이스 형식(예: America/Los_Angeles)으로 최종 사용자의 표준 시간대를 포함합니다.

최종 사용자의 헤더 구조를 결정하기 위한 헤더

다음 헤더를 추가하여 전송한 헤더를 기반으로 최종 사용자를 식별할 수 있습니다. 예를 들어, 다양한 브라우저가 특정 순서로 HTTP 헤더를 전송할 수 있습니다. User-Agent 헤더에 지정된 브라우저가 해당 브라우저의 예상 헤더 순서와 일치하지 않는 경우 요청을 거부할 수 있습니다. 또한 CloudFront-Viewer-Header-Count 값이 CloudFront-Viewer-Header-Order의 헤더 수와 일치하지 않는 경우 요청을 거부할 수 있습니다.

  • CloudFront-Viewer-Header-Order — 최종 사용자의 헤더 이름을 요청된 순서대로 콜론으로 구분하여 포함합니다. 예를 들면 CloudFront-Viewer-Header-Order: Host:User-Agent:Accept:Accept-Encoding입니다. 7,680자 제한을 초과하는 헤더는 잘립니다.

  • CloudFront-Viewer-Header-Count — 최종 사용자 헤더의 총 수를 포함합니다.

기타 헤더 CloudFront

다음 헤더를 추가하여 최종 사용자의 프로토콜, 버전, JA3 지문 및 TLS 연결 세부 정보를 확인할 수 있습니다.

  • CloudFront-Forwarded-Proto – 최종 사용자의 요청 프로토콜(HTTP 또는 HTTPS)을 포함합니다.

  • CloudFront-Viewer-Http-Version – 최종 사용자 요청의 HTTP 버전을 포함합니다.

  • CloudFront-Viewer-JA3-Fingerprint — 최종 사용자의 JA3 지문을 포함합니다. JA3 지문은 해당 요청이 알려진 클라이언트에서 온 것인지, 맬웨어인지 악성 봇인지 또는 예상되는(허용 목록에 있는) 응용 프로그램에서 온 것인지 판단하는 데 도움이 됩니다. 이 헤더는 최종 사용자의 SSL/TLS Client Hello 패킷을 사용하며 HTTPS 요청에만 존재합니다.

    참고

    CloudFront-Viewer-JA3-Fingerprint원본 요청 정책에는 추가할 수 있지만 캐시 정책에는 추가할 수 없습니다.

  • CloudFront-Viewer-TLS— SSL/TLS 버전, 암호 및 뷰어와 간 연결에 사용된 SSL/TLS 핸드셰이크에 대한 정보가 들어 있습니다. CloudFront 헤더 값은 다음 형식입니다.

    SSL/TLS_version:cipher:handshake_information

    handshake_information에 대해 헤더는 다음 값 중 하나를 포함할 수 있습니다.

    • fullHandshake - SSL/TLS 세션에 대해 전체 핸드셰이크가 수행되었습니다.

    • sessionResumed - 이전 SSL/TLS 세션이 재개되었습니다.

    • connectionReused - 이전 SSL/TLS 연결이 재사용되었습니다.

    다음은 이 헤더에 대한 몇 가지 예시 값입니다.

    TLSv1.3:TLS_AES_128_GCM_SHA256:sessionResumed
    TLSv1.2:ECDHE-ECDSA-AES128-GCM-SHA256:connectionReused
    TLSv1.1:ECDHE-RSA-AES128-SHA256:fullHandshake
    TLSv1:ECDHE-RSA-AES256-SHA:fullHandshake

    이 헤더 값에 있을 수 있는 SSL/TLS 버전 및 암호의 전체 목록은 시청자와 사용자 간에 지원되는 프로토콜 및 암호 CloudFront 단원을 참조하세요.

    참고

    CloudFront-Viewer-TLS원본 요청 정책에는 추가할 수 있지만 캐시 정책에는 추가할 수 없습니다.