최종 사용자와 CloudFront 간의 통신에 HTTPS 요구 - Amazon CloudFront

최종 사용자와 CloudFront 간의 통신에 HTTPS 요구

CloudFront 배포에 하나 이상의 캐시 동작을 구성하여 최종 사용자와 CloudFront 간의 통신에 HTTPS를 요구할 수 있습니다. 또한 CloudFront가 일부 객체에 대해서만 HTTPS를 요구하도록 하기 위해 HTTP 및 HTTPS 모두를 허용하는 캐시 동작을 한 개 이상 구성할 수 있습니다. 구성 단계는 객체 URL에 사용하는 도메인 이름에 따라 다릅니다.

  • CloudFront가 배포에 할당한 도메인 이름(예: d111111abcdef8.cloudfront.net)을 사용할 경우 한 개 이상의 캐시 동작에 대해 최종 사용자 프로토콜 정책(Viewer Protocol Policy) 설정을 변경하여 HTTPS 통신을 요구하도록 합니다. 이 구성에서 CloudFront는 SSL/TLS 인증서를 제공합니다.

    CloudFront 콘솔을 사용하여 최종 사용자 프로토콜 정책(Viewer Protocol Policy) 값을 변경하려면 이 단원의 절차를 참조하세요.

    CloudFront API를 사용하여 ViewerProtocolPolicy 요소의 값을 변경하는 방법을 보려면 Amazon CloudFront API 참조UpdateDistribution을 참조하세요.

  • example.com 등의 자체 도메인 이름을 사용할 경우 몇 가지 CloudFront 설정을 변경해야 합니다. 또한 AWS Certificate Manager(ACM)에서 제공한 SSL/TLS 인증서를 사용하거나, 다른 인증 기관의 인증서를 또는 IAM 인증서 스토어로 가져와야 합니다. 자세한 내용은 대체 도메인 이름과 HTTPS 사용 단원을 참조하세요.

참고

CloudFront가 오리진에서 객체를 받을 때 최종 사용자가 CloudFront로부터 받는 객체가 암호화되도록 하려면 CloudFront와 오리진 간에 항상 HTTPS를 사용하세요. 최근에 CloudFront와 오리진 간의 연결을 HTTP에서 HTTPS로 변경한 경우 CloudFront 엣지 로케이션의 객체를 무효화할 것을 권장합니다. CloudFront는 최종 사용자가 사용한 프로토콜(HTTP 또는 HTTPS)이, CloudFront가 객체를 받는 데 사용한 프로토콜과 일치하는지와 상관없이 최종 사용자에게 객체를 반환합니다. 배포에서 객체 제거 또는 대체에 대한 자세한 내용은 CloudFront가 배포하는 콘텐츠 추가, 제거 또는 바꾸기 단원을 참조하십시오.

하나 이상의 캐시 동작에 대해 최종 사용자와 CloudFront 간에 HTTPS를 요구하려면 다음과 같이 하세요.

CloudFront에서 최종 사용자와 CloudFront 간에 HTTPS를 요구하도록 구성하려면

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v3/home에서 CloudFront 콘솔을 엽니다.

  2. CloudFront 콘솔의 상단 창에서 업데이트할 배포의 ID를 선택합니다.

  3. 동작 탭에서 업데이트할 캐시 동작을 선택한 후 편집을 선택합니다.

  4. 최종 사용자 프로토콜 정책에 다음 값 중 하나를 지정합니다.

    Redirect HTTP to HTTPS

    최종 사용자가 두 프로토콜을 모두 사용할 수 있습니다. HTTP GETHEAD 요청은 HTTPS 요청으로 자동 리디렉션됩니다. CloudFront는 HTTP 상태 코드 301(영구 이동됨)을 새로운 HTTPS URL과 함께 반환합니다. 그러면 최종 사용자는 HTTPS URL을 사용하여 이 요청을 CloudFront에 다시 제출합니다.

    중요

    HTTP를 통해 POST, PUT, DELETE, OPTIONS 또는 PATCH를 HTTP - HTTPS 캐시 동작 및 HTTP 1.1 이상의 요청 프로토콜 버전으로 보내면, CloudFront는 HTTP 상태 코드 307(임시 리디렉션)과 함께 HTTPS 위치로 요청을 리디렉션합니다. 이렇게 하면 요청이 동일한 메서드와 본문 페이로드를 사용하여 새 위치로 다시 전송됩니다.

    POST, PUT, DELETE, OPTIONS 또는 PATCH 요청을 HTTP - HTTPS 캐시 동작을 통해 HTTP 1.1 미만인 요청 프로토콜 버전으로 보내면, CloudFront는 HTTP 상태 코드 403(사용할 수 없음)을 반환합니다.

    최종 사용자가 HTTPS 요청으로 리디렉션되는 HTTP 요청을 만들 경우 CloudFront에서 두 요청 모두에 대해 요금을 부과합니다. HTTP 요청의 경우에는 CloudFront에서 최종 사용자에게 반환되는 요청 및 헤더에만 요금이 부과됩니다. HTTPS 요청의 경우에는 요청, 헤더, 그리고 오리진에 의해 반환된 객체에 대해 요금이 부과됩니다.

    HTTPS Only

    최종 사용자가 HTTPS를 사용할 경우에만 콘텐츠에 액세스할 수 있습니다. 최종 사용자가 HTTPS 요청 대신에 HTTP 요청을 보내면 CloudFront는 HTTP 상태 코드 403(금지됨)을 반환하고 객체는 반환하지 않습니다.

  5. 예, 편집합니다를 선택합니다.

  6. 최종 사용자와 CloudFront 간에 HTTPS를 요구하려는 캐시 동작에 대해 3~5단계를 반복합니다.

  7. 업데이트한 구성을 프로덕션 환경에서 사용하기 전에 다음 사항을 확인합니다.

    • 각 캐시 동작의 경로 패턴이 최종 사용자에 HTTPS를 사용하도록 지정한 요청에만 적용되는가.

    • 캐시 동작이 CloudFront에서 평가하도록 할 순서대로 나열되었는가. 자세한 내용은 경로 패턴 단원을 참조하세요.

    • 캐시 동작이 올바른 오리진에 요청을 라우팅하는가.