Amazon CloudFront와 함께 AWS WAF 사용 - AWS WAF, AWS Firewall Manager및 AWS Shield Advanced

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

Amazon CloudFront와 함께 AWS WAF 사용

이 섹션에서는 Amazon CloudFront 기능과 함께 AWS WAF를 사용하는 방법을 설명합니다.

웹 ACL을 생성할 때 AWS WAF를 통해 검사할 하나 이상의 CloudFront 배포를 지정할 수 있습니다. AWS WAF는 웹 ACL에서 사용자가 식별한 기준에 따라 이러한 배포에 대한 웹 요청을 검사 및 관리하기 시작합니다. CloudFront는 AWS WAF 기능을 향상하는 몇 가지 기능을 제공합니다. 이 장에서는 CloudFront와 AWS WAF가 함께 더 효과적으로 작동하도록 CloudFront를 구성할 수 있는 몇 가지 방법을 설명합니다.

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

기본적으로 AWS WAF는 사용자가 지정한 기준에 따라 웹 요청을 차단할 때 HTTP 상태 코드 403 (Forbidden)를 CloudFront에 반환하며, 그러면 CloudFront에서는 해당 상태 코드를 뷰어로 반환합니다. 최종 사용자에게는 다음과 유사한 짧고 불완전한 형식의 기본 메시지가 표시됩니다.

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

사용자 지정 응답을 정의하여 AWS WAF 웹 ACL 규칙에서 이 동작을 재정의할 수 있습니다. AWS WAF 규칙을 사용하여 응답 동작을 사용자 지정하는 방법에 대한 자세한 내용은 Block 작업에 대한 사용자 지정 응답 전송 섹션을 참조하세요.

참고

AWS WAF 규칙을 사용하여 사용자 지정하는 응답은 CloudFront 사용자 지정 오류 페이지에서 정의하는 모든 응답 사양보다 우선합니다.

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

참고

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

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

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

AWS WAF를 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 바이트 일치 규칙 문을 사용하여 HTTP 메서드를 기반으로 요청을 허용하거나 차단할 수도 있습니다. GETHEAD와 같이, CloudFront에서 지원하는 메서드의 조합을 사용하려는 경우 다른 메서드를 사용하는 요청을 차단하도록 AWS WAF를 구성할 필요가 없습니다. GET, HEADPOST와 같이, CloudFront에서 지원하지 않는 메서드 조합을 허용하려는 경우 모든 메서드에 응답하도록 CloudFront를 구성한 다음 AWS WAF를 사용하여 다른 메서드가 사용하는 요청을 차단할 수 있습니다.

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