

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

이제 업데이트된 환경을 사용하여 콘솔의 모든 위치에서 AWS WAF 기능에 액세스할 수 있습니다. 자세한 내용은 [콘솔 작업을 참조하세요](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html).

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

# 를 사용하여 CloudFront 배포를 보호하기 위한 일반적인 사용 사례 AWS WAF
<a name="cloudfront-waf-use-cases"></a>

다음 AWS WAF 기능은 모든 CloudFront 배포에서 동일한 방식으로 작동합니다. 다중 테넌트 배포에 대한 고려 사항은 각 기능 시나리오 다음에 나열되어 있습니다.

## CloudFront 사용자 지정 오류 페이지 AWS WAF 와 함께 사용
<a name="cloudfront-features-custom-error-pages"></a>

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

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

사용자 지정 응답을 정의하여 AWS WAF 보호 팩(웹 ACL) 규칙에서이 동작을 재정의할 수 있습니다. AWS WAF 규칙을 사용하여 응답 동작을 사용자 지정하는 방법에 대한 자세한 내용은 섹션을 참조하세요[Block 작업에 대한 사용자 지정 응답 전송](customizing-the-response-for-blocked-requests.md).

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

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

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

CloudFront 사용자 지정 오류 페이지에 대한 자세한 내용을 알아보려면 *Amazon CloudFront 개발자 안내서*의 [사용자 지정 오류 응답 생성](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html)을 참조하세요.

### 다중 테넌트 배포의 사용자 지정 오류 페이지
<a name="custom-error-pages-template-distributions"></a>

CloudFront 다중 테넌트 배포의 경우 다음과 같은 방법으로 사용자 지정 오류 페이지를 구성할 수 있습니다.
+ 다중 테넌트 수준에서 - 이 설정은 다중 테넌트 배포 템플릿을 사용하는 모든 테넌트 배포에 적용됩니다.
+  AWS WAF 규칙을 통해 - 보호 팩(웹 ACLs)에 정의된 사용자 지정 응답이 다중 테넌트 배포 및 테넌트 수준 사용자 지정 오류 페이지보다 우선합니다.

## 자체 HTTP 서버에서 실행되는 애플리케이션에 CloudFront와 AWS WAF 함께 사용
<a name="cloudfront-features-your-own-http-server"></a>

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

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

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

다중 테넌트 배포의 경우 HTTP 메서드 구성은 다음 계층 구조를 따릅니다.
+ 템플릿 수준 설정은 모든 테넌트 배포에 허용되는 기본 HTTP 메서드를 정의합니다.
+ 테넌트 배포는 이러한 설정을 다음과 같이 재정의할 수 있습니다.
  + 다중 테넌트 배포보다 더 적은 메서드 허용( AWS WAF 규칙을 사용하여 추가 메서드 차단)
  + 다중 테넌트 배포가 지원하도록 구성된 경우 더 많은 메서드 허용
+ AWS WAF 다중 테넌트 배포 및 테넌트 수준 모두의 규칙은 CloudFront 구성에 관계없이 HTTP 메서드를 추가로 제한할 수 있습니다.

## CloudFront가 응답하는 HTTP 메서드 선택
<a name="cloudfront-features-allowed-http-methods"></a>

Amazon CloudFront 웹 배포를 생성할 때 CloudFront에서 처리하여 오리진으로 전달할 HTTP 메서드를 선택합니다. 다음 옵션 중에서 선택할 수 있습니다.
+ **`GET`, `HEAD`** - 오리진에서 객체를 가져오거나 객체 헤더를 가져오기 위해서만 CloudFront를 사용할 수 있습니다.
+ **`GET`, `HEAD`, `OPTIONS`** - 오리진에서 객체를 가져오거나 객체 헤더를 가져오기 위해, 또는 오리진 서버에서 지원되는 옵션 목록을 가져오기 위해서만 CloudFront를 사용할 수 있습니다.
+ **`GET`, `HEAD`, `OPTIONS`, `PUT`, `POST`, `PATCH`, `DELETE`** – CloudFront를 사용하여 객체를 가져오기, 추가, 업데이트 및 삭제하고 객체 헤더를 가져올 수 있습니다. 또한 웹 양식에서 데이터를 제출하는 등의 기타 `POST` 작업을 수행할 수 있습니다.

에 설명된 대로 AWS WAF 바이트 일치 규칙 문을 사용하여 HTTP 메서드를 기반으로 요청을 허용하거나 차단할 수도 있습니다[문자열 일치 규칙 문](waf-rule-statement-type-string-match.md). `GET` 및와 같이 CloudFront에서 지원하는 메서드의 조합을 사용하려면 다른 메서드를 사용하는 요청을 차단 AWS WAF 하도록를 구성할 필요가 `HEAD`없습니다. , `HEAD`및와 같이 CloudFront에서 지원하지 않는 메서드의 조합을 허용하려면 모든 메서드에 응답하도록 CloudFront를 구성한 다음 `GET`를 사용하여 다른 메서드를 사용하는 요청을 차단 AWS WAF 할 `POST`수 있습니다.

CloudFront에서 응답하는 메서드를 선택하는 방법에 대한 자세한 내용은 *Amazon CloudFront 개발자 안내서*의 [웹 배포의 생성 또는 업데이트 시 지정하는 값](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html) 항목에 있는 [허용되는 HTTP 메서드](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesAllowedHTTPMethods)를 참조하세요.

**다중 테넌트 배포에서 허용되는 HTTP 메서드 구성**  
다중 테넌트 배포의 경우 다중 테넌트 배포 수준에서 설정된 HTTP 메서드 구성은 기본적으로 모든 테넌트 배포에 적용됩니다. 테넌트 배포는 필요한 경우 이러한 설정을 재정의할 수 있습니다.
+ `GET` 및와 같이 CloudFront에서 지원하는 메서드 조합을 사용하려면 다른 메서드를 사용하는 요청을 차단 AWS WAF 하도록를 구성할 필요가 `HEAD`없습니다.
+ , `HEAD`및와 같이 CloudFront에서 기본적으로 지원하지 않는 메서드의 조합을 허용하려면 모든 메서드에 응답하도록 CloudFront를 구성한 다음 `GET`를 사용하여 다른 메서드를 사용하는 요청을 차단 AWS WAF 할 `POST`수 있습니다.

다중 테넌트 배포에서 보안 헤더를 구현할 때는 다음 사항을 고려하세요.
+ 템플릿 수준 보안 헤더는 모든 테넌트 배포에서 기준 보호를 제공합니다
+ 테넌트 배포는 다음을 수행할 수 있습니다.
  + 다중 테넌트 배포에 정의되지 않은 새 보안 헤더 추가
  + 테넌트별 헤더의 값 수정
  + 다중 테넌트 배포 수준에서 설정된 보안 헤더를 제거하거나 재정의할 수 없음
+ 모든 테넌트에 적용해야 하는 중요한 보안 제어에 다중 테넌트 배포 수준 헤더를 사용하는 것이 좋습니다

## 로깅 고려 사항
<a name="cloudfront-features-logging"></a>

표준 배포와 다중 테넌트 배포 모두 AWS WAF 로깅을 지원하지만 로그가 구조화되고 관리되는 방식에는 중요한 차이가 있습니다.


**로깅 비교**  

| 표준 배포 | 다중 테넌트 배포 | 
| --- | --- | 
| 배포당 로그 구성 1개 | 템플릿 및 테넌트 수준 로깅 옵션 | 
| 표준 로그 필드 | 추가 테넌트 식별자 필드 | 
| 배포당 단일 대상 | 다중 테넌트 배포 및 테넌트 로그에 사용할 수 있는 별도의 대상 | 

## 추가 리소스
<a name="cloudfront-saas-additional-resources"></a>
+ 다중 테넌트 배포에 대한 자세한 내용은 *Amazon CloudFront 개발자 안내서*의 [배포 구성](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html)을 참조하세요.
+ CloudFront AWS WAF 에서를 사용하는 방법에 대한 자세한 내용은 *Amazon CloudFront 개발자 안내서*의 [AWS WAF 보호 사용을](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-awswaf.html) 참조하세요.
+  AWS WAF 로그에 대한 자세한 내용은 섹션을 참조하세요[보호 팩(웹 ACL) 트래픽에 대한 로그 필드](logging-fields.md).