AWS WAF Classic 및 Amazon CloudFront 기능 연동 방식 - AWS WAF, AWS Firewall Manager, AWS Shield Advanced, 및 AWS Shield 네트워크 보안 디렉터

AWS WAF에 대한 새로운 콘솔 환경 소개

이제 업데이트된 환경을 사용하여 콘솔의 모든 위치에서 AWS WAF 기능에 액세스할 수 있습니다. 자세한 내용은 업데이트된 콘솔 환경 작업 섹션을 참조하십시오.

AWS WAF Classic 및 Amazon CloudFront 기능 연동 방식

주의

AWS WAF Classic은 계획된 종료 프로세스를 거치고 있습니다. 리전별 마일스톤 및 날짜는 AWS Health 대시보드를 참조하세요.

참고

이것은 AWS WAF Classic 설명서입니다. 2019년 11월 이전에 AWS WAF에서 규칙, 웹 ACL 등의 AWS WAF 리소스를 생성했으며 아직 최신 버전으로 마이그레이션하지 않은 경우, 이 버전만 사용해야 합니다. 웹 ACL 마이그레이션하려면 AWS WAF Classic 리소스를 AWS WAF로 마이그레이션 섹션을 참조하세요.

AWS WAF의 최신 버전은 AWS WAF(을)를 참조하세요.

웹 ACL을 생성할 때 AWS WAF Classic에서 검사할 CloudFront 배포를 하나 이상 지정할 수 있습니다. AWS WAF Classic은 웹 ACL에서 식별하는 조건을 기반으로 해당 배포에 대한 웹 요청을 허용, 차단 또는 계산하기 시작합니다. CloudFront는 AWS WAF Classic 기능을 향상하는 몇 가지 기능을 제공합니다. 이 장에서는 CloudFront와 AWS WAF Classic이 함께 더 효과적으로 작동하도록 CloudFront를 구성할 수 있는 몇 가지 방법을 설명합니다.

CloudFront 사용자 지정 오류 페이지와 관련된 AWS WAF Classic 사용

AWS WAF Classic에서 사용자가 지정한 조건을 기반으로 웹 요청을 차단하면 HTTP 상태 코드 403(사용할 수 없음)이 CloudFront에 반환됩니다. 다음에는 CloudFront가 상태 코드를 최종 사용자에게 반환합니다. 최종 사용자에게는 다음과 유사한 짧고 불완전한 형식의 기본 메시지가 표시됩니다.

Forbidden: You don't have permission to access /myfilename.html on this server.

나머지 웹 사이트에서와 같은 형식을 사용하여 사용자 지정 오류 메시지를 표시하려는 경우 최종 사용자에게 사용자 지정 오류 메시지가 포함된 HTML 파일 등의 객체를 반환하도록 CloudFront를 구성할 수 있습니다.

참고

요청이 차단된 경우 CloudFront는 오리진에서 반환되는 HTTP 상태 코드 403과 AWS WAF Classic에서 반환되는 코드를 구별할 수 없습니다. 따라서 HTTP 상태 코드 403의 다른 원인을 기반으로 다른 사용자 지정 오류 페이지를 반환할 수 없습니다.

CloudFront 사용자 지정 오류 페이지에 대한 자세한 내용을 알아보려면 Amazon CloudFront 개발자 안내서오류 응답 사용자 지정을 참조하세요.

자체 HTTP 서버에서 실행하는 애플리케이션에서 CloudFront와 함께 AWS WAF Classic 사용

AWS WAF Classic을 CloudFront와 함께 사용하면 Amazon Elastic Compute Cloud(Amazon EC2)에서 실행하는 웹 서버든 비공개로 관리하는 웹 서버든 상관없이 모든 HTTP 웹 서버에서 실행하는 애플리케이션을 보호할 수 있습니다. 또한 CloudFront와 자체 웹 서버 간 및 최종 사용자와 CloudFront 간에 HTTPS를 요구하도록 CloudFront를 구성할 수 있습니다.

CloudFront와 자체 웹 서버 간에 HTTPS 요구

CloudFront와 자체 웹 서버 간에 HTTPS를 요구하려면, CloudFront 사용자 지정 오리진 기능을 사용하고 특정 오리진에 대한 오리진 프로토콜 정책오리진 도메인 이름 설정을 구성할 수 있습니다. CloudFront 구성에서 CloudFront가 오리진에서 객체를 가져올 때 사용할 포트 및 프로토콜과 함께 서버의 DNS 이름을 지정할 수 있습니다. 또한 사용자 지정 오리진 서버의 SSL/TLS 인증서가 구성한 원본 도메인 이름과 일치하는지 확인해야 합니다. AWS 외부에서 자체 HTTP 웹 서버를 사용하는 경우 Comodo, DigiCert 또는 Symantec과 같이 신뢰할 수 있는 타사 CA(인증 기관)에서 서명한 인증서를 사용해야 합니다. CloudFront와 자체 웹 서버 간의 통신을 위해 HTTPS를 요구하는 방법에 대한 자세한 내용은 Amazon CloudFront 개발자 안내서CloudFront와 사용자 지정 오리진 간의 통신에 HTTPS 요구 항목을 참조하세요.

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

최종 사용자와 CloudFront 간의 HTTPS를 요구하려면, CloudFront 배포의 하나 이상의 동작에 대해 최종 사용자 프로토콜 정책을 변경할 수 있습니다. 최종 사용자와 CloudFront 간의 HTTPS 사용에 대한 자세한 내용은 Amazon CloudFront 개발자 안내서최종 사용자와 CloudFront 간의 통신에 대한 HTTPS 요구 항을 참조하세요. 또한 최종 사용자가 자체 도메인 이름(예: https://www.mysite.com)을 사용하여 HTTPS를 통해 CloudFront 배포에 연결할 수 있도록 자체 SSL 인증서를 가져올 수 있습니다. 자세한 내용은 Amazon CloudFront 개발자 안내서대체 도메인 이름 및 HTTPS 구성 항을 참조하세요.

CloudFront가 응답하는 HTTP 메서드 선택

Amazon CloudFront 웹 배포를 생성할 때 CloudFront에서 처리하여 오리진으로 전달할 HTTP 메서드를 선택합니다. 다음 옵션 중에서 선택할 수 있습니다.

  • GET, HEAD – 오리진에서 객체를 가져오거나 객체 헤더를 가져오기 위해서만 CloudFront를 사용할 수 있습니다.

  • GET, HEAD, OPTIONS – 오리진에서 객체를 가져오거나 객체 헤더를 가져오기 위해, 또는 오리진 서버에서 지원되는 옵션 목록을 가져오기 위해서만 CloudFront를 사용할 수 있습니다.

  • GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE – CloudFront를 사용하여 객체를 추가, 업데이트, 삭제하고 가져올 수 있으며 객체 헤더를 가져올 수 있습니다. 또한 웹 양식에서 데이터를 제출하는 등의 기타 POST 작업을 수행할 수 있습니다.

또한 문자열 매칭 조건 작업의 설명과 같이 AWS WAF Classic 문자열 일치 조건을 사용하여 HTTP 메서드를 기반으로 요청을 허용하거나 차단할 수 있습니다. GETHEAD와 같이, CloudFront에서 지원하는 메서드의 조합을 사용하려는 경우 다른 메서드를 사용하는 요청을 차단하도록 AWS WAF Classic을 구성할 필요가 없습니다. GET, HEADPOST와 같이, CloudFront에서 지원하지 않는 메서드 조합을 허용하려는 경우 모든 메서드에 응답하도록 CloudFront를 구성한 다음 AWS WAF Classic을 사용하여 다른 메서드가 사용하는 요청을 차단할 수 있습니다.

CloudFront에서 응답하는 메서드를 선택하는 방법에 대한 자세한 내용은 Amazon CloudFront 개발자 안내서웹 배포의 생성 또는 업데이트 시 지정하는 값 항목에 있는 허용되는 HTTP 메서드를 참조하세요.