

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

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

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

# AWS WAF
<a name="waf-chapter"></a>

AWS WAF 는 보호된 웹 애플리케이션 리소스로 전달되는 HTTP(S) 요청을 모니터링할 수 있는 웹 애플리케이션 방화벽입니다. 다음 리소스 유형을 보호할 수 있습니다.
+ Amazon CloudFront 배포
+ Amazon API Gateway REST API
+ Application Load Balancer
+ AWS AppSync GraphQL API
+ Amazon Cognito 사용자 풀
+ AWS App Runner 서비스
+ AWS Verified·Access 인스턴스
+ AWS Amplify

AWS WAF 를 사용하면 콘텐츠에 대한 액세스를 제어할 수 있습니다. 요청이 허용되는 IP 주소나 쿼리 문자열의 값으로부터 지정하는 조건 등 지정하는 기준에 따라, 보호된 리소스와 연결된 서비스는 요청된 콘텐츠나 HTTP 403 상태 코드(금지됨) 또는 사용자 지정 응답으로 요청에 응답합니다.

**참고**  
 AWS WAF 를 사용하여 Amazon Elastic Container Service(Amazon ECS) 컨테이너에서 호스팅되는 애플리케이션을 보호할 수도 있습니다. Amazon ECS는 클러스터에서 Docker 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 해주는 컨테이너 관리 서비스로서 확장성과 속도가 뛰어납니다. 이 옵션을 사용하려면에 대해 활성화된 Application Load Balancer를 사용하여 서비스의 작업 전반에서 HTTP(S) 계층 7 트래픽을 AWS WAF 라우팅하고 보호하도록 Amazon ECS를 구성합니다. 자세한 내용은 *Amazon Elastic Container Service 개발자 안내서*에서 [서비스 로드 밸런싱](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)을 참조하세요.

**Topics**
+ [시작하기 AWS WAF](getting-started.md)
+ [AWS WAF 작동 방식](how-aws-waf-works.md)
+ [에서 보호 구성 AWS WAF](web-acl.md)
+ [AWS WAF 규칙](waf-rules.md)
+ [AWS WAF 규칙 그룹](waf-rule-groups.md)
+ [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md)
+ [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md)
+ [에서 지원되는 정규식 구문 AWS WAF](waf-regex-pattern-support.md)
+ [의 IP 세트 및 정규식 패턴 세트 AWS WAF](waf-referenced-set-managing.md)
+ [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md)
+ [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md)
+ [의 지능형 위협 완화 AWS WAF](waf-managed-protections.md)
+ [보호 팩(웹 ACL) 트래픽에 대한 데이터 AWS WAF 보호 및 로깅](waf-data-protection-and-logging.md)
+ [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)
+ [Amazon CloudFront AWS WAF 에서 사용](cloudfront-features.md)
+ [AWS WAF 서비스 사용 시 보안](security.md)
+ [AWS WAF 할당량](limits.md)
+ [AWS WAF Classic 리소스를 로 마이그레이션 AWS WAF](waf-migrating-from-classic.md)

# 시작하기 AWS WAF
<a name="getting-started"></a>

 시작하기는 사용하는 콘솔 환경에 AWS WAF 따라 달라집니다. 두 경험 모두 동일한 핵심 AWS WAF 기능에 대한 액세스를 제공하지만 웹 애플리케이션 보호를 구성하고 관리하는 방법이 다릅니다.

 AWS WAF 는 콘솔을 사용하기 위한 두 가지 옵션을 제공합니다.

 **새 콘솔**은 표준 콘솔 워크플로에 필요한 웹 ACL 구성 프로세스를 간소화하는 것을 목표로 합니다. 안내 워크플로를 사용하여 보호 팩을 통해 웹 ACL 생성 및 관리 프로세스를 간소화할 수 있습니다. 보호 팩을 사용하면 콘솔에서 웹 ACL을 더 쉽게 사용하고 관리할 수 있지만 웹 ACL과는 기능적으로 다르지 않습니다. 새로운 콘솔은 향상된 보호 구성 프로세스 외에도 보안 대시보드를 통해 보호 기능에 대한 향상된 가시성을 제공하므로 AWS WAF 콘솔 내에서 보안 태세를 더 쉽게 모니터링할 수 있습니다.

 **표준 AWS WAF 콘솔**은 웹 ACLs을 사용하여 웹 애플리케이션 방화벽 보호를 구성하는 기존 접근 방식을 제공합니다. 개별 규칙 및 규칙 그룹을 세밀하게 제어할 수 있으며 기존 AWS WAF 사용자에게 친숙합니다. 이 콘솔을 사용하면 보호 구성을 세부적으로 제어할 수 있으므로 보안 설정을 정확하게 사용자 지정할 수 있습니다.

**작은 정보**  
 필요에 가장 적합한 콘솔 환경을 선택합니다. 를 처음 AWS WAF 사용하거나 AWS 권장 사항에 따라 보호 구성을 시작하려면 새 콘솔 환경부터 시작하는 것이 좋습니다. 그러나 콘솔의 탐색 창에서 언제나 표준 환경을 열 수 있습니다.

 다음 섹션에서는 두 콘솔 환경에 대한 시작 지침을 제공합니다. 각 접근 방식을 검토하고 보안 요구 사항 및 운영 기본 설정에 가장 적합한 접근 방식을 선택합니다.

**Topics**
+ [새 콘솔 환경 AWS WAF 사용 시작하기](setup-iap-console.md)
+ [표준 콘솔 환경 AWS WAF 사용 시작하기](setup-existing-console.md)

# 새 콘솔 환경 AWS WAF 사용 시작하기
<a name="setup-iap-console"></a>

이 섹션에서는 간소화된 구성 워크플로와 향상된 보안 관리 기능을 제공하는 새로운 콘솔 환경을 AWS WAF 사용하여 설정하는 방법을 안내합니다.

## 새 콘솔 환경에 액세스
<a name="accessing-iap-console"></a>

새 AWS WAF 콘솔 환경에 액세스하려면:

새에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) AWS WAF 콘솔을 엽니다.
+ 탐색 창에서 **새 환경 체험해 보기**를 찾아 선택합니다.

**참고**  
탐색 창의 링크를 사용하면 콘솔 환경 간에 언제든지 전환할 수 있습니다.

## 보호 팩(웹 ACL) 시작하기
<a name="getting-started-protection-packs"></a>

이 자습서에서는 애플리케이션을 보호하기 위해 보호 팩(웹 ACL)을 생성하고 구성하는 방법을 보여줍니다. 보호 팩(웹 ACL)은 특정 워크로드 유형에 적합하게 사전 구성된 보안 규칙을 제공합니다.

이 자습서에서는 다음을 수행하는 방법을 알아봅니다.
+ 보호 팩(웹 ACL) 생성
+ 애플리케이션별 보호 설정 구성
+ 보호할 AWS 리소스 추가
+ 규칙 선택 및 사용자 지정
+ 로깅 및 모니터링 구성

**참고**  
AWS 는 일반적으로이 자습서 중에 생성한 리소스에 대해 하루에 0.25 USD 미만의 요금을 청구합니다. 작업을 마치면 불필요한 요금 발생을 방지하기 위해 리소스를 삭제하는 것이 좋습니다.

### 1단계: 설정 AWS WAF
<a name="getting-started-prerequisites"></a>

[서비스를 사용하도록 계정 설정](setting-up-waf.md)에서 아직 일반적인 설정 단계를 따르지 않은 경우 지금 실행합니다.

### 2단계: 보호 팩(웹 ACL) 생성
<a name="getting-started-create-protection-pack"></a>

이 단계에서는 보호 팩(웹 ACL)을 생성하고 애플리케이션 유형에 적합하게 기본 설정을 구성합니다.

1. 새에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **리소스 및 보호 팩(웹 ACL)**을 선택합니다.

1. **리소스 및 보호 팩(웹 ACL)** 페이지에서 **보호 팩(웹 ACL) 추가**를 선택합니다.

1. **앱에 대해 알려주기**의 **앱 범주**에서 애플리케이션을 가장 잘 설명하는 앱 범주를 하나 이상 선택합니다.

1. **트래픽 소스**에서 애플리케이션이 처리하는 트래픽 유형을 선택합니다.
   + **API** - API 전용 애플리케이션의 경우
   + **웹** - 웹 전용 애플리케이션의 경우
   + **API 및 웹 모두** - 두 유형의 트래픽을 모두 처리하는 애플리케이션의 경우

### 3단계: 보호할 리소스 추가
<a name="getting-started-add-resources"></a>

이제 보호 팩(웹 ACL)으로 보호할 AWS 리소스를 지정합니다.

1. **보호할 리소스**에서 **리소스 추가**를 선택합니다.

1. 이 보호 팩(웹 ACL)과 연결할 AWS 리소스 범주를 선택합니다.
   + Amazon CloudFront 배포
   + 리전 리소스

   리소스 유형에 대한 자세한 내용은 [보호와 AWS 리소스 연결](web-acl-associating.md) 섹션을 참조하세요.

### 4단계: 초기 보호 선택
<a name="getting-started-configure-protection"></a>

이 단계에서는 보호 팩(웹 ACL)에 대한 규칙을 선택합니다. 처음 사용하는 경우 **권장** 옵션을 선택하는 것이 좋습니다.

AWS WAF 는 **앱에 대해 알려주기** 섹션의 선택 사항에 따라 **추천**을 생성합니다. 이러한 팩은 애플리케이션 유형에 대한 보안 모범 사례를 구현합니다.
+  **다음**을 선택하여 보호 팩(웹 ACL) 설정을 계속합니다.

**참고**  
사용자 지정 규칙을 생성하거나 **빌드하기** 옵션을 사용하는 데 관심이 있는 경우 먼저 사전 구성된 옵션에 대한 환경을 경험하는 것이 좋습니다. 사용자 지정 보호 팩(웹 ACL) 및 규칙 생성에 대한 자세한 내용은 [에서 보호 팩(웹 ACL) 생성 AWS WAF](web-acl-creating.md) 섹션을 참조하세요.

### 5단계: 보호 팩(웹 ACL) 설정 사용자 지정
<a name="getting-started-customize-settings"></a>

이제 기본 작업, 속도 제한 및 로깅과 같은 추가 설정을 구성합니다.

1. **이름 및 설명**에 보호 팩(웹 ACL)의 이름을 입력합니다. 필요한 경우 설명을 입력합니다.
**참고**  
보호 팩(웹 ACL)을 생성한 후에는 이름을 변경할 수 없습니다.

1. **보호 팩(웹 ACL) 사용자 지정**에서 다음 설정을 구성합니다.

   1. **기본 규칙 작업**에서 규칙과 일치하지 않는 요청에 대한 기본 작업을 선택합니다. 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 단원을 참조하십시오.

   1. **규칙 구성**에서 다음 설정을 사용자 지정합니다.
      + **기본 속도 제한** - DDoS 공격으로부터 보호하기 위한 제한 설정
      + **IP 주소** - IP 허용/차단 목록 구성
      + **국가별 오리진** - 국가별 액세스 관리

   1. **로깅 대상**에서 로그를 저장할 위치를 구성합니다. 자세한 내용은 [AWS WAF 로깅 대상](logging-destinations.md) 단원을 참조하십시오.

1. 설정을 검토하고 **보호 팩(웹 ACL) 추가**를 선택합니다.

### 6단계: 리소스 정리
<a name="getting-started-clean-up"></a>

이제 자습서를 성공적으로 완료했습니다. 계정에 추가 AWS WAF 요금이 발생하지 않도록 하려면 생성한 보호 팩(웹 ACL)을 삭제하거나 프로덕션 요구 사항에 맞게 수정해야 합니다.

**보호 팩(웹 ACL) 삭제**

1. 탐색 창에서 **리소스 및 보호 팩(웹 ACL)**을 선택합니다.

1. 생성한 보호 팩(웹 ACL)을 선택합니다.

1. 휴지통 아이콘을 선택한 후 ‘delete’를 입력하여 삭제를 확인합니다.

**참고**  
프로덕션 환경에서 이 보호 팩(웹 ACL)을 사용하려는 경우 삭제하는 대신 애플리케이션의 보안 요구 사항에 적합하게 보호 설정을 검토하고 조정해야 합니다.

# 표준 콘솔 환경 AWS WAF 사용 시작하기
<a name="setup-existing-console"></a>

 AWS WAF 콘솔은 요청이 시작되는 IP 주소 또는 요청의 값과 같이 지정한 기준에 따라 웹 요청을 차단하거나 허용 AWS WAF 하도록를 구성하는 프로세스를 안내합니다. 이 단계에서는 보호 팩(웹 ACL)을 생성합니다. AWS WAF 보호 팩(웹 ACLs[에서 보호 구성 AWS WAF](web-acl.md).

이 자습서에서는를 AWS WAF 사용하여 다음 작업을 수행하는 방법을 보여줍니다.
+ 를 설정합니다 AWS WAF.
+  AWS WAF 콘솔의 마법사를 사용하여 웹 액세스 제어 목록(웹 ACL)을 생성합니다.

**웹 ACL 생성**

  1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

  1.  AWS WAF 홈 페이지에서 **웹 ACL 생성을** 선택합니다.

  1. **이름**에 이 웹 ACL을 식별하는 데 사용할 이름을 입력합니다.
**참고**  
웹 ACL을 생성한 후에는 명칭을 변경할 수 없습니다.

  1. (선택 사항) 원할 경우 **설명 - 선택 사항**에 웹 ACL에 대한 자세한 설명을 입력합니다.

  1. **CloudWatch 지표 명칭**에서 기본 명칭을 변경합니다(해당되는 경우). 유효한 문자를 보려면 콘솔의 지침을 따르십시오. 이름에는 특수 문자, 공백 또는 “All” 및 “Default\$1Action” 등 AWS WAF에 예약된 지표 이름을 포함할 수 없습니다.
**참고**  
웹 ACL을 생성한 후에는 CloudWatch 지표 이름을 변경할 수 없습니다.

  1. **리소스 유형**에 **CloudFront 배포**를 선택합니다. **리전**은 CloudFront 배포를 위해 **Global(CloudFront)(전역(CloudFront))**으로 자동으로 채워집니다.

  1. (선택 사항) **연결된 AWS 리소스 - 선택 사항**에서 ** AWS 리소스 추가**를 선택합니다. 대화 상자에서 연결할 리소스를 선택한 다음 **추가**를 선택합니다. AWS WAF 는 **웹 ACL 설명 및 연결 AWS 리소스 설명** 페이지로 돌아갑니다.

  1. **다음**을 선택합니다.

**참고**  
AWS 는 일반적으로이 자습서 중에 생성한 리소스에 대해 하루에 0.25 USD 미만의 요금을 청구합니다. 자습서를 완료하면 불필요한 요금 발생을 방지하기 위해 리소스를 삭제하는 것이 좋습니다.

## 1단계: 설정 AWS WAF
<a name="getting-started-aws-account"></a>

[서비스를 사용하도록 계정 설정](setting-up-waf.md)에서 아직 일반적인 설정 단계를 따르지 않은 경우 지금 실행합니다.

## 2단계: 웹 ACL 생성
<a name="getting-started-wizard-create-web-acl"></a>

 AWS WAF 콘솔은 요청이 시작되는 IP 주소 또는 요청의 값과 같이 지정한 기준에 따라 웹 요청을 차단하거나 허용 AWS WAF 하도록를 구성하는 프로세스를 안내합니다. 이 단계에서는 웹 ACL을 생성합니다. AWS WAF 웹 ACLs[에서 보호 구성 AWS WAF](web-acl.md).

**웹 ACL 생성**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1.  AWS WAF 홈 페이지에서 **웹 ACL 생성을** 선택합니다.

1. **이름**에 이 웹 ACL을 식별하는 데 사용할 이름을 입력합니다.
**참고**  
웹 ACL을 생성한 후에는 명칭을 변경할 수 없습니다.

1. (선택 사항) 원할 경우 **설명 - 선택 사항**에 웹 ACL에 대한 자세한 설명을 입력합니다.

1. **CloudWatch 지표 명칭**에서 기본 명칭을 변경합니다(해당되는 경우). 유효한 문자를 보려면 콘솔의 지침을 따르십시오. 이름에는 특수 문자, 공백 또는 “All” 및 “Default\$1Action” 등 AWS WAF에 예약된 지표 이름을 포함할 수 없습니다.
**참고**  
웹 ACL을 생성한 후에는 CloudWatch 지표 이름을 변경할 수 없습니다.

1. **리소스 유형**에 **CloudFront 배포**를 선택합니다. **리전**은 CloudFront 배포를 위해 **Global(CloudFront)(전역(CloudFront))**으로 자동으로 채워집니다.

1. (선택 사항) **연결된 AWS 리소스 - 선택 사항**에서 ** AWS 리소스 추가**를 선택합니다. 대화 상자에서 연결할 리소스를 선택한 다음 **추가**를 선택합니다. AWS WAF 는 **웹 ACL 설명 및 연결 AWS 리소스 설명** 페이지로 돌아갑니다.

1. **다음**을 선택합니다.

## 3단계: 문자열 일치 규칙 추가
<a name="getting-started-wizard-create-string-condition"></a>

이 단계에서는 문자열 일치 문을 사용하여 규칙을 생성하고 일치 요청으로 수행할 작업을 지정합니다. 문자열 일치 규칙 문은 AWS WAF 를 사용하여 요청에서 검색할 문자열을 식별합니다. 일반적으로 문자열은 인쇄 가능한 ASCII 문자로 구성되지만, 16진수 0x00에서 0xFF(십진수 0에서 255) 사이의 어떤 문자든지 지정할 수 있습니다. 검색할 문자열을 지정하는 것 외에도 헤더, 쿼리 문자열 또는 요청 본문과 같이 검색할 웹 요청 구성 요소를 지정합니다.

이 문은 웹 요청 구성 요소에서 작동하며 작동을 위해선 다음과 같은 요청 구성 요소 설정이 필요합니다.
+ **요청 구성 요소** – 검사할 웹 요청 부분(예: 쿼리 문자열 또는 본문).
**주의**  
요청 구성 요소 **본문**, **JSON 본문**, **헤더** 또는 **쿠키를** 검사하는 경우에서 검사 AWS WAF 할 수 있는 콘텐츠의 양에 대한 제한 사항에 대해 읽어보세요[에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md).

  웹 요청 구성 요소에 대한 자세한 내용은 [에서 규칙 문 설정 조정 AWS WAF](waf-rule-statement-fields.md) 섹션을 참조하세요.
+ **선택적 텍스트 변환** - 요청 구성 요소를 검사하기 전에 요청 구성 요소에 대해 수행 AWS WAF 하려는 변환입니다. 예를 들어, 소문자로 변환하거나 공백을 정규화할 수 있습니다. 둘 이상의 변환을 지정하는 경우는 나열된 순서대로 변환을 AWS WAF 처리합니다. 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 단원을 참조하세요.

 AWS WAF 규칙에 대한 자세한 내용은 단원을 참조하십시오[AWS WAF 규칙](waf-rules.md).

**문자열 일치 규칙 문을 생성하려면**

1. **Add rules and rule groups(규칙 및 규칙 그룹 추가)** 페이지에서 **규칙 빌더 추가**, **Add my own rules and rule groups(자체 규칙 및 규칙 그룹 추가)**, **규칙 빌더** 및 **Rule visual editor(규칙 시각적 편집기)**를 차례로 선택합니다.
**참고**  
콘솔은 **Rule visual editor(규칙 시각적 편집기)**와 **Rule JSON editor(규칙 JSON 편집기)**를 제공합니다. JSON 편집기는 웹 ACL 간에 구성을 쉽게 복사할 수 있게 해주므로 여러 수준의 중첩이 있는 규칙 집합과 같이 보다 복잡한 규칙 집합에 필요합니다.  
이 절차에서는 **Rule visual editor(규칙 시각적 편집기)**를 사용합니다.

1. **이름**에 이 규칙을 식별하는 데 사용할 이름을 입력합니다.

1. **유형**에서 **Regular rule(일반 규칙)**을 선택합니다.

1. **If a request(요청의 경우)**에서 **matches the statement(문 일치)**를 선택합니다.

   다른 옵션은 논리적 규칙문 유형에 사용됩니다. 이러한 논리적 규칙문 유형을 사용하여 다른 규칙 명령문의 결과를 결합하거나 무효화할 수 있습니다.

1. **문**에서 **검사**에서 드롭다운을 열고 검사 AWS WAF 할 웹 요청 구성 요소를 선택합니다. 이 예에서는 **단일 헤더**를 선택합니다.

   **단일 헤더**를 선택할 때 AWS WAF 에서 검사할 헤더도 지정합니다. **User-Agent**을 입력합니다. 이 값은 대소문자를 구분하지 않습니다.

1. **일치 유형**에서 지정된 문자열이 `User-Agent` 헤더에 나타날 위치를 선택합니다.

   이 예제에서는 **Exactly matches string(문자열에 정확히 일치)**을 선택합니다. 이는가 각 웹 요청의 사용자 에이전트 헤더에서 지정한 문자열과 동일한 문자열을 AWS WAF 검사함을 나타냅니다.

1. **String to match(일치 시킬 문자열)**에 AWS WAF 에서 검색할 문자열을 지정합니다. **String to match(일치 시킬 문자열)**의 최대 길이는 200자입니다. base64로 인코딩된 값을 지정하려는 경우, 인코딩하기 전에 최대 200자를 지정할 수 있습니다.

   이 예에서는 **MyAgent**를 입력합니다. AWS WAF 그러면 웹 요청의 `User-Agent` 헤더에서 값이 있는지 검사합니다`MyAgent`.

1. **Text transformation(텍스트 변형)**은 **없음**으로 설정된 상태로 둡니다.

1. **작업**에서 웹 요청과 일치할 때 규칙에서 수행할 작업을 선택합니다. 예를 들면 **개수**를 선택하고 다른 선택 항목은 그대로 둡니다. 카운트 작업으로 규칙과 일치하는 웹 요청에 대한 지표가 생성되지만 요청의 허용 또는 차단 여부에는 영향을 주지 않습니다. 작업 선택에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 및 [규칙 우선 순위 설정](web-acl-processing-order.md) 섹션을 참조하세요.

1. **규칙 추가**를 선택합니다.

## 4단계: AWS 관리형 규칙 규칙 그룹 추가
<a name="getting-started-wizard-add-rule-group"></a>

AWS 관리형 규칙은 사용자가 사용할 수 있는 관리형 규칙 그룹 세트를 제공하며, 대부분은 AWS WAF 고객에게 무료로 제공됩니다. 규칙 그룹에 대한 자세한 내용은 [AWS WAF 규칙 그룹](waf-rule-groups.md)을 참조하세요. 이 웹 ACL에 AWS 관리형 규칙 규칙 그룹을 추가합니다.

**AWS 관리형 규칙 규칙 그룹을 추가하려면**

1. **Add rules and rule groups(규칙 및 규칙 그룹 추가)** 페이지에서 **규칙 추가**를 선택한 다음 **Add managed rule groups(관리형 규칙 그룹 추가)**를 선택합니다.

1. **관리형 규칙 그룹 추가** 페이지에서 **AWS 관리형 규칙 그룹**의 목록을 확장합니다. ( AWS Marketplace 판매자에게 제공되는 목록도 볼 수 있습니다. 해당 상품을 구독한 다음 AWS 관리형 규칙 규칙 그룹과 동일한 방식으로 사용할 수 있습니다.)

1. 추가할 규칙 그룹에 대해 다음을 수행합니다.

   1. **작업** 열에서 **웹 ACL에 추가** 토글을 켭니다.

   1. **편집**을 선택하고 규칙 그룹의 **규칙** 목록에서 **모든 규칙 작업 재정의** 드롭다운을 열고 **Count**를 선택합니다. 이렇게 하면 계산할 규칙 그룹의 모든 규칙에 대한 작업만 설정됩니다. 따라서 규칙 그룹을 사용하기 전에 웹 요청과 함께 규칙 그룹의 모든 규칙이 어떻게 동작하는지 확인할 수 있습니다.

   1. **규칙 저장**을 선택합니다.

1. **관리형 규칙 그룹 추가** 페이지에서 **규칙 추가**를 선택합니다. 그러면 **규칙 및 규칙 그룹 추가** 페이지로 돌아갑니다.

## 5단계: 웹 ACL 구성 완료
<a name="getting-started-wizard-finish-webacl-options"></a>

웹 ACL 구성에 규칙 및 규칙 그룹을 추가했으면 웹 ACL에서 규칙의 우선 순위를 관리하고 지표, 태그 지정 및 로깅과 같은 설정을 구성하여 절차를 마칩니다.

**웹 ACL 구성을 완료하려면**

1. **Add rules and rule groups(규칙 및 규칙 그룹 추가)** 페이지에서 **다음**을 선택합니다.

1. **규칙 우선 순위 설정** 페이지에서 웹 ACL의 규칙 및 규칙 그룹에 대한 처리 순서를 볼 수 있습니다.는 목록 상단부터 규칙 및 규칙 그룹을 AWS WAF 처리합니다. 규칙을 위아래로 이동하여 처리 순서를 변경할 수 있습니다. 이렇게 하려면 목록에서 하나를 선택하고 **위로 이동** 또는 **아래로 이동**을 선택합니다. 규칙 우선 순위에 대한 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 단원을 참조하세요.

1. **다음**을 선택합니다.

1. **지표 구성** 페이지의 **Amazon CloudWatch 지표**에서 규칙 및 규칙 그룹에 대해 계획된 지표를 확인할 수 있고, 웹 요청 샘플링 옵션을 볼 수 있습니다. 샘플링된 요청 보기에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요. Amazon CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.

    AWS WAF 콘솔의 트래픽 **개요** 탭에서 웹 ACL 페이지에서 웹 트래픽 지표 요약에 액세스할 수 있습니다. 콘솔 대시보드는 웹 ACL의 Amazon CloudWatch 지표에 대한 요약을 거의 실시간으로 제공합니다. 자세한 내용은 [보호 팩(웹 ACL)용 트래픽 개요 대시보드](web-acl-dashboards.md) 단원을 참조하십시오.

1. **다음**을 선택합니다.

1. **Review and create web ACL(웹 ACL 검토 및 생성)** 페이지에서 설정을 검토한 다음 **Create web ACL(웹 ACL 생성)**을 선택합니다.

마법사가 새 웹 ACL이 나열된 **웹 ACL** 페이지로 돌아갑니다.

## 6단계: 리소스 정리
<a name="getting-started-wizard-clean-up"></a>

이제 자습서를 성공적으로 완료했습니다. 계정에 추가 AWS WAF 요금이 발생하지 않도록 하려면 생성한 AWS WAF 객체를 정리합니다. 또는를 사용하여 관리하려는 웹 요청과 일치하도록 구성을 변경할 수 있습니다 AWS WAF.

**참고**  
AWS 는 일반적으로이 자습서 중에 생성한 리소스에 대해 하루에 0.25 USD 미만의 요금을 청구합니다. 작업을 마치면 불필요한 요금 발생을 방지하기 위해 리소스를 삭제하는 것이 좋습니다.

**에 대해 AWS WAF 요금이 부과되는 객체를 삭제하려면**

1. **웹 ACL** 페이지의 목록에서 웹 ACL을 선택하고 **편집**을 선택합니다.

1. **연결된 AWS 리소스** 탭의 연결된 각 리소스에 대해 리소스 이름 옆에 있는 라디오 버튼을 선택한 다음 **연결 해제를** 선택합니다. 이렇게 하면 웹 ACL이 AWS 리소스에서 연결 해제됩니다.

1. 다음 각 화면에서 **다음**을 계속 선택하여 **웹 ACL** 페이지로 돌아갑니다.

   **웹 ACL** 페이지의 목록에서 웹 ACL을 선택하고 **삭제**를 선택합니다.

규칙 및 규칙 문은 규칙 그룹 및 웹 ACL 정의의 범위를 벗어나 존재하지 않습니다. 웹 ACL을 삭제하면 웹 ACL에 정의된 개별 규칙들이 모두 삭제됩니다. 웹 ACL에서 규칙 그룹을 제거하면 규칙 그룹에 대한 참조만 제거됩니다.

# AWS WAF 작동 방식
<a name="how-aws-waf-works"></a>

 AWS WAF 를 사용하여 보호된 리소스가 HTTP(S) 웹 요청에 응답하는 방식을 제어합니다. 웹 액세스 제어 목록(웹 ACL)을 정의하고 나서 이 목록을 보호할 하나 이상의 웹 애플리케이션 리소스에 연결하여 이 작업을 수행할 수 있습니다. 연결된 리소스는 웹 ACL의 검사를 AWS WAF 위해 수신 요청을에 전달합니다.

**새 콘솔**은 웹 ACL 구성 프로세스를 간소화합니다. 보안 규칙에 대한 완전한 제어를 유지하면서 설정을 간소화하는 보호 팩을 도입합니다.

보호 팩은 웹 ACL의 새로운 위치이며 콘솔에서 웹 ACL 관리를 간소화하지만 기본 웹 ACL 기능은 변경하지 않습니다. 표준 콘솔 또는 API를 사용하는 경우에도 웹 ACL로 직접 작업합니다.

보호 팩(웹 ACL)에서는 규칙을 만들어 요청에서 확인할 트래픽 패턴을 정의하고 일치하는 요청에 대해 수행할 작업을 지정할 수 있습니다. 작업 선택 사항에는 다음이 포함됩니다.
+ 처리 및 응답을 위해 요청이 보호된 리소스로 전달되도록 허용합니다.
+ 요청을 차단합니다.
+ 요청 수를 계산합니다.
+ 요청에 대해 CAPTCHA 또는 챌린지 검사를 실행하여 실제 사용자 및 표준 브라우저 사용을 확인합니다.

**AWS WAF 구성 요소**  
다음은의 핵심 구성 요소입니다 AWS WAF.
+ **웹 ACLs**- 웹 ACL(웹 액세스 제어 목록)을 사용하여 AWS 리소스 세트를 보호합니다. 규칙을 추가하여 웹 ACL을 생성하고 보호 전략을 정의합니다. 규칙은 웹 요청을 검사하기 위한 기준을 정의하고 기준과 일치하는 요청을 처리하는 작업을 지정합니다. 또한 규칙에서 아직 차단하거나 허용하지 않은 요청을 차단할지 허용할지 여부를 나타내는 웹 ACL의 기본 동작을 설정할 수도 있습니다. 웹 ACL에 대한 자세한 내용은 [에서 보호 구성 AWS WAF](web-acl.md) 섹션을 참조하세요.

  웹 ACL은 AWS WAF 리소스입니다.
+ **보호 팩(웹 ACL)** - 새 콘솔에서 보호 팩은 웹 ACL을 위한 새 위치입니다. 설정 중에 앱 및 리소스에 대한 정보를 제공합니다.는 시나리오에 맞는 보호 팩을 AWS WAF 권장한 다음 선택한 보호 팩(웹 ACL)으로 정의된 규칙, 규칙 그룹 및 작업이 포함된 웹 ACL을 생성합니다. 보호 팩(웹 ACL)에 대한 자세한 내용은 [에서 보호 구성 AWS WAF](web-acl.md) 섹션을 참조하세요.

  보호 팩(웹 ACL)은 AWS WAF 리소스입니다.
+ **규칙** – 각 규칙에는 검사 기준을 정의하는 문과 웹 요청이 기준을 충족하는 경우 수행할 작업이 포함됩니다. 웹 요청이 이 기준을 충족하면 일치하는 것입니다. 일치하는 요청을 차단 또는 허용하거나, 개수를 계산하거나, 아니면 CAPTCHA 퍼즐 또는 자동 클라이언트 브라우저 챌린지를 사용하는 요청에 대해 봇 컨트롤을 실행하도록 규칙을 구성할 수 있습니다. 규칙에 대한 자세한 내용은 [AWS WAF 규칙](waf-rules.md) 단원을 참조하세요.

  규칙은 AWS WAF 리소스가 아닙니다. 규칙은 보호 팩(웹 ACL) 또는 규칙 그룹의 컨텍스트에만 존재합니다.
+ **규칙 그룹** - 보호 팩(웹 ACL) 내에서 직접 또는 재사용 가능한 규칙 그룹에서 규칙을 정의할 수 있습니다. AWS 관리형 규칙 및 AWS Marketplace 판매자는 사용할 관리형 규칙 그룹을 제공합니다. 사용자 고유의 규칙 그룹을 정의할 수도 있습니다. 규칙 그룹에 대한 자세한 내용은 [AWS WAF 규칙 그룹](waf-rule-groups.md) 단원을 참조하세요.

  규칙 그룹은 AWS WAF 리소스입니다.
+ **웹 ACL 용량 단위(WCUs)** - WCUs를 AWS WAF 사용하여 규칙, 규칙 그룹, 보호 팩(웹 ACLs) 또는 웹 ACLs.

  WCU는 AWS WAF 리소스가 아닙니다. 규칙은 보호 팩(웹 ACL), 규칙 또는 규칙 그룹의 컨텍스트에만 존재합니다.

# 로 보호할 수 있는 리소스 AWS WAF
<a name="how-aws-waf-works-resources"></a>

 AWS WAF 보호 팩(웹 ACL)을 사용하여 글로벌 또는 리전 리소스 유형을 보호할 수 있습니다. 보호하려는 리소스에 보호 팩(웹 ACL)을 연결하여 이 작업을 수행할 수 있습니다. 보호 팩(웹 ACL) 및 사용하는 모든 AWS WAF 리소스는 연결된 리소스가 있는 리전에 있어야 합니다. Amazon CloudFront 배포의 경우 이 설정이 미국 동부(버지니아 북부)로 설정됩니다.

**Amazon CloudFront 배포**  
 AWS WAF 콘솔 또는 API를 사용하여 AWS WAF 보호 팩(웹 ACL)을 CloudFront 배포와 연결할 수 있습니다. APIs 배포 자체를 생성하거나 업데이트할 때 CloudFront 배포와 보호 팩(웹 ACL)을 연결할 수도 있습니다. 에서 연결을 구성하려면 CloudFront 배포 구성을 사용해야 AWS CloudFormation합니다. Amazon CloudFront에 대한 자세한 내용은 *Amazon CloudFront 개발자 안내서*의 [AWS WAF 를 사용하여 콘텐츠에 대한 액세스 제어를 참조하세요](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-awswaf.html).

AWS WAF 는 CloudFront 배포에 전역적으로 사용할 수 있지만 미국 동부(버지니아 북부) 리전을 사용하여 보호 팩(웹 ACL)과 규칙 그룹, IP 세트, 정규식 패턴 세트와 같이 보호 팩(웹 ACL)에 사용되는 모든 리소스를 생성해야 합니다. 일부 인터페이스는 “글로벌(CloudFront)"이라는 리전 선택 옵션을 제공합니다. 이 옵션을 선택하는 것은 미국 동부(버지니아 북부) 리전 또는 “us-east-1“를 선택하는 것과 같습니다.

**리전 리소스**  
를 사용할 수 있는 모든 리전에서 리전 리소스를 보호할 수 AWS WAF 있습니다. *Amazon Web Services 일반 참조*에서 [AWS WAF 엔드포인트와 할당량](https://docs.aws.amazon.com/general/latest/gr/waf.html)에서 목록을 확인할 수 있습니다.

 AWS WAF 를 사용하여 다음과 같은 리전 리소스 유형을 보호할 수 있습니다.
+ Amazon API Gateway REST API
+ Application Load Balancer
+ AWS AppSync GraphQL API
+ Amazon Cognito 사용자 풀
+ AWS App Runner 서비스
+ AWS Verified·Access 인스턴스
+ AWS Amplify

보호 팩(웹 ACL)은 AWS 리전안에 있는 Application Load Balancer에만 연결할 수 있습니다. 예를 들어 AWS Outposts에 있는 Application Load Balancer에는 보호 팩(웹 ACL)을 연결할 수 없습니다.

글로벌 CloudFront 리전에서 Amplify 앱과 연결할 보호 팩(웹 ACL)을 생성해야 합니다. 에 이미 리전 보호 팩(웹 ACL)이 AWS 계정있지만 Amplify와 호환되지 않을 수 있습니다.

보호 팩(웹 ACL) 및 사용하는 기타 AWS WAF 리소스는 보호된 리소스와 동일한 리전에 있어야 합니다. 보호된 리전 리소스에 대한 웹 요청을 모니터링하고 관리할 때는 보호된 리소스와 동일한 리전의 모든 데이터를 AWS WAF 유지합니다.

**다중 리소스 연결에 대한 제한 사항**  
다음과 같은 제한 사항에 따라 단일 보호 팩(웹 ACL)을 하나 이상의 AWS 리소스와 연결할 수 있습니다.
+ 각 AWS 리소스를 하나의 보호 팩(웹 ACL)에만 연결할 수 있습니다. 보호 팩(웹 ACL)과 AWS 리소스 간의 관계는 one-to-many입니다.
+ 보호 팩(웹 ACL)을 하나 이상의 CloudFront 배포와 연결할 수 있습니다. CloudFront 배포와 연결한 보호 팩(웹 ACL)을 다른 AWS 리소스 유형과 연결할 수 없습니다.

# 업데이트된 콘솔 환경 작업
<a name="working-with-console"></a>

 AWS WAF 는 콘솔을 사용하기 위한 두 가지 옵션을 제공합니다.

 **새 콘솔**은 표준 콘솔 워크플로에 필요한 웹 ACL 구성 프로세스를 간소화하는 것을 목표로 합니다. 안내 워크플로를 사용하여 보호 팩(웹 ACL)을 통해 웹 ACL 생성 및 관리 프로세스를 간소화할 수 있습니다. 보호 팩(웹 ACL)을 사용하면 콘솔에서 웹 ACL을 더 쉽게 사용하고 관리할 수 있지만 웹 ACL과는 기능적으로 다르지 않습니다. 새로운 콘솔은 향상된 보호 구성 프로세스 외에도 보안 대시보드를 통해 보호 기능에 대한 향상된 가시성을 제공하므로 AWS WAF 콘솔 내에서 보안 태세를 더 쉽게 모니터링할 수 있습니다.

 **표준 AWS WAF 콘솔**은 웹 ACLs을 사용하여 웹 애플리케이션 방화벽 보호를 구성하는 기존 접근 방식을 제공합니다. 개별 규칙 및 규칙 그룹을 세밀하게 제어할 수 있으며 기존 AWS WAF 사용자에게 친숙합니다. 이 콘솔을 사용하면 보호 구성을 세부적으로 제어할 수 있으므로 보안 설정을 정확하게 사용자 지정할 수 있습니다.

**작은 정보**  
 필요에 가장 적합한 콘솔 환경을 선택합니다. 를 처음 AWS WAF 사용하거나 AWS 권장 사항에 따라 보호 구성을 시작하려면 새 콘솔 환경부터 시작하는 것이 좋습니다. 그러나 콘솔의 탐색 창에서 표준 환경을 항상 열 수 있습니다.

## 새로운 콘솔 환경과 표준 콘솔 환경 간의 기능 패리티
<a name="feature-parity"></a>

새로운 콘솔 환경은 새로운 기능을 도입하면서 기존 콘솔과 완전한 기능 패리티를 유지합니다.
+ 모든 기존 AWS WAF 기능을 계속 사용할 수 있습니다.
+ 통합 대시보드를 통한 가시성 향상
+ 간소화된 구성 워크플로
+ 새 보호 팩(웹 ACL) 템플릿

**중요**  
새 콘솔 환경은 기존 콘솔과 동일한 WAFv2 API를 사용합니다. 즉, 새 콘솔에서 생성된 보호 팩은 API 수준에서 표준 WAFv2 웹 ACL로 구현됩니다.

## 주요 차이점
<a name="key-differences"></a>


**콘솔 환경 비교**  

| 기능 | 이전 AWS WAF 콘솔 환경 | 업데이트된 콘솔 환경 | 
| --- | --- | --- | 
| 구성 프로세스 | 다중 페이지 워크플로 | 단일 페이지 인터페이스 | 
| 규칙 구성 | 개별 규칙 생성 | 사전 구성된 보호 팩 옵션 | 
| 모니터링 | 별도의 대시보드 | AI 트래픽 분석을 포함한 통합 가시성 | 

## 새로운 대시보드 이해
<a name="understanding-new-dashboard"></a>

새로 제공되어 이용할 수 있는 대시보드는 다음 시각화를 통해 보안 태세에 대한 통합 가시성을 제공합니다.

**트래픽 인사이트 권장** 사항 - AWS 위협 인텔리전스는 이전 2주 동안의 허용된 트래픽을 모니터링하고 취약성을 분석하며 다음을 제공합니다.  
+ 트래픽 기반 규칙 제안
+ 애플리케이션별 보안 권장 사항
+ 보호 최적화 지침

**요약** - 지정된 시간 범위 동안의 모든 트래픽에 대한 요청 수를 표시합니다. 다음 기준을 사용하여 트래픽 데이터를 필터링할 수 있습니다.  
+ **규칙** - 보호 팩의 개별 규칙을 기준으로 필터링합니다.
+ **작업** - 허용, 차단, Captcha 및 챌린지와 같은 트래픽에 대해 수행된 특정 작업의 수를 표시합니다.
+ **트래픽 유형** - DDoS 방지 또는 봇과 같은 특정 트래픽 유형에 대한 개수만 표시합니다.
+ **시간 범위 ** - 미리 정의된 시간 범위 중에서 선택하거나 사용자 지정 범위를 설정합니다.
+ **로컬 또는 UTC 시간** - 원하는 시간 형식을 설정할 수 있습니다.

**AI 트래픽 분석** - AI 봇 및 에이전트 활동에 대한 포괄적인 가시성을 제공합니다.  
+ **봇 식별** - 봇 이름, 조직 및 확인 상태입니다.
+ **의도 분석** - AI 에이전트의 목적 및 행동 패턴입니다.
+ **액세스 패턴** - 가장 자주 액세스하는 URLs 및 엔드포인트입니다.
+ **시간 추세** - 시간별 활동 패턴 및 과거 추세(0\$114일).
+ **트래픽 특성** - AI 트래픽에 대한 볼륨, 배포 및 이상 탐지.

**보호 활동** - 보호 규칙과 해당 규칙의 순서가 종료 작업에 미치는 영향을 시각화합니다.  
+ **규칙을 통한 트래픽 흐름** - 규칙을 통한 트래픽 흐름을 표시합니다. **순차 규칙 보기**에서 **비순차 규칙 보기**로 전환하여 규칙 순서가 결과에 미치는 영향을 확인합니다.
+ **규칙 작업 및 그 결과** - 규칙이 지정된 기간 동안 트래픽에 대해 수행한 종료 작업을 표시합니다.

**작업 합계 ** - 지정된 시간 범위 동안 요청에 대해 수행된 총 작업 수를 시각화하는 차트입니다. **지난 3시간 오버레이** 옵션을 사용하여 현재 시간 범위를 이전 3시간 기간과 비교합니다. 다음을 기준으로 데이터를 필터링할 수 있습니다.  
+ **작업 허용**
+ **총 작업 수**
+ **Captcha 작업**
+ **챌린지 작업**
+ **블록 작업**:

**모든 규칙** - 보호 팩의 모든 규칙에 대한 지표를 시각화하는 차트입니다.  
+  **지난 3시간 오버레이** 옵션을 사용하여 현재 시간 범위를 이전 3시간 기간과 비교합니다.

**개요 대시보드** - 다음을 포함하여 보안 상태에 대한 포괄적인 그래픽 보기를 제공합니다.  
+ **트래픽 특성** - 오리진, 공격 유형 또는 요청을 보낸 클라이언트의 디바이스 유형별 트래픽 개요를 확인합니다.
+ **규칙 특성** - 가장 일반적인 규칙 10개 및 종료 작업에 의한 공격 분석입니다.
+ **봇** - 봇 활동, 탐지, 범주 및 봇 관련 신호 레이블을 시각화합니다.
+ **DDoS 방지** - 탐지되고 완화된 계층 7 DDoS 활동에 대한 개요입니다.

# 에서 보호 구성 AWS WAF
<a name="web-acl"></a>

이 페이지에서는 보호 팩(웹 ACL)의 개념 및 작동 방식에 대해 설명합니다.

 보호 팩(웹 ACL)을 사용하면 보호된 리소스가 응답하는 모든 HTTP 웹 요청을 세밀하게 제어할 수 있습니다. Amazon CloudFront, Amazon API Gateway, Application Load Balancer AWS AppSync, Amazon Cognito, AWS App Runner, AWS Amplify Amazon CloudWatch 및 AWS Verified Access 리소스를 보호할 수 있습니다.

다음과 같은 기준을 사용하여 요청을 허용하거나 차단할 수 있습니다.
+ 요청의 출처 IP 주소
+ 요청의 출처 국가
+ 요청의 일부로 포함된 문자열 일치 또는 정규 표현식(정규식) 일치
+ 요청의 특정 부분의 크기
+ 악성 SQL 코드 또는 스크립팅 감지 

또한 이러한 조건의 조합을 테스트할 수 있습니다. 지정된 조건을 충족할 뿐 아니라 단 1분간 지정된 요청 수를 초과하는 웹 요청을 차단 또는 계수할 수 있습니다. 논리적 연산자를 사용하여 조건을 결합할 수 있습니다. 또한 CAPTCHA 퍼즐을 실행하고 요청에 대해 클라이언트 세션 챌린지를 자동으로 실행할 수도 있습니다.

 AWS WAF 규칙 문에서 일치 기준과 일치에 대해 수행할 작업을 제공합니다. 보호 팩(웹 ACL) 내에서 직접 그리고 보호 팩(웹 ACL)에서 사용하는 재사용 가능한 규칙 그룹에서 규칙문을 정의할 수 있습니다. 옵션의 전체 목록은 [에서 규칙 문 사용 AWS WAF](waf-rule-statements.md) 및 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 단원을 참조하세요.

보호 팩(웹 ACL)을 생성할 때 사용할 리소스 유형을 지정합니다. 자세한 내용은 [에서 보호 팩(웹 ACL) 생성 AWS WAF](web-acl-creating.md) 단원을 참조하세요. 보호 팩(웹 ACL)을 정의한 후 리소스와 연결하여 리소스에 보호 기능을 제공할 수 있습니다. 자세한 내용은 [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md) 단원을 참조하십시오.

**참고**  
경우에 따라 요청 허용 또는 차단 여부에 대한 관련 AWS 리소스에 대한 응답을 지연시키는 내부 오류가 AWS WAF 발생할 수 있습니다. 이러한 경우, CloudFront는 일반적으로 요청을 허용하거나 콘텐츠를 제공하는 반면 리전 서비스는 일반적으로 요청을 거부하고 콘텐츠를 제공하지 않습니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 보호 팩(웹 ACL)의 변경 사항을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 변경 사항을 테스트하고 조정합니다. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**참고**  
보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경하면 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 집합에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

**Topics**
+ [에서 보호 팩(웹 ACL) 생성 AWS WAF](web-acl-creating.md)
+ [에서 보호 팩(웹 ACL) 편집 AWS WAF](web-acl-editing.md)
+ [규칙 그룹 동작 관리](web-acl-rule-group-settings.md)
+ [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md)
+ [에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF](web-acl-processing.md)
+ [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md)
+ [에서 본문 검사 관리에 대한 고려 사항 AWS WAF](web-acl-setting-body-inspection-limit.md)
+ [에서 CAPTCHA, 챌린지 및 토큰 구성 AWS WAF](web-acl-captcha-challenge-token-domains.md)
+ [에서 웹 트래픽 지표 보기 AWS WAF](web-acl-working-with.md)
+ [보호 팩(웹 ACL) 삭제](web-acl-deleting.md)

# 에서 보호 팩(웹 ACL) 생성 AWS WAF
<a name="web-acl-creating"></a>

------
#### [ Using the new console ]

이 섹션에서는 새 AWS 콘솔을 통해 보호 팩(웹 ACLs)을 생성하는 절차를 제공합니다.

새 보호 팩(웹 ACL)을 생성하려면 이 페이지의 절차에 따라 보호 팩(웹 ACL) 생성 마법사를 사용합니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 보호 팩(웹 ACL)의 변경 사항을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 변경 사항을 테스트하고 조정합니다. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**참고**  
보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

1. 새에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **리소스 및 보호 팩(웹 ACL)**을 선택합니다.

1. **리소스 및 보호 팩(웹 ACL)** 페이지에서 **보호 팩(웹 ACL) 추가**를 선택합니다.

1. **앱에 대해 알려주기**의 **앱 범주**에서 하나 이상의 앱 범주를 선택합니다.

1. **트래픽 소스**에서 **API**, **웹** 또는 **API 및 웹 모두**와 같이 애플리케이션이 참여하는 트래픽 유형을 선택합니다.ffic

1. **보호할 리소스**에서 **리소스 추가**를 선택합니다.

1. 이 보호 팩(웹 ACL)과 연결할 AWS 리소스 범주(Amazon CloudFront 배포 또는 리전 리소스)를 선택합니다. 자세한 내용은 [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md) 단원을 참조하십시오.

1. **초기 보호 선택**에서 **권장**, **필수** 또는 **빌드** 중 원하는 보호 수준을 선택합니다.

1. (선택 사항) **빌드**를 선택하는 경우 규칙을 빌드합니다.

   1. (선택 사항) 자체 규칙을 추가하려는 경우 **규칙 추가** 페이지에서 **사용자 지정 규칙**을 선택한 후 **다음**을 선택합니다.

      1. 규칙 유형을 선택합니다.

      1. **작업**에서 웹 요청과 일치할 때 규칙에서 수행할 작업을 선택합니다. 선택 사항에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 및 [에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF](web-acl-processing.md) 단원을 참조하세요.

         **CAPTCHA** 또는 **Challenge** 작업을 사용하는 경우 규칙에 필요한 만큼 **면제 시간** 구성을 조정합니다. 설정을 지정하지 않으면 규칙이 보호 팩(웹 ACL)에서 설정을 상속합니다. 보호 팩(웹 ACL) 면제 시간 설정을 수정하려면 보호 팩(웹 ACL)을 생성한 후 편집합니다. 면제 시간에 대한 자세한 내용은 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md) 섹션을 참조하세요.
**참고**  
규칙 중 하나에서 또는 규칙 그룹 내 규칙 작업 재정의로서 CAPTCHA 또는 Challenge 규칙 작업을 사용하는 경우 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

         요청 또는 응답을 사용자 지정하려면 해당 옵션을 선택하고 사용자 지정의 세부 정보를 입력합니다. 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 단원을 참조하십시오.

         규칙을 통해 일치하는 웹 요청에 레이블이 추가되도록 하려면 해당 옵션을 선택하고 레이블 세부 정보를 채웁니다. 자세한 내용은 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 단원을 참조하십시오.

      1. **이름**에 이 규칙을 식별하는 데 사용할 이름을 입력합니다. `AWS`, `Shield`, `PreFM` 또는 `PostFM`으로 시작하는 이름은 사용하면 안 됩니다. 이러한 문자열은 예약되어 있거나 다른 서비스에서 관리되는 규칙 그룹과 혼동될 수 있습니다.

      1. 필요에 따라 규칙 정의를 입력합니다. 논리적 `AND` 및 `OR` 규칙 문 내에서 규칙을 결합할 수 있습니다. 마법사는 컨텍스트에 따라 각 규칙에 대한 옵션을 안내합니다. 규칙 옵션에 대한 자세한 내용은 [AWS WAF 규칙](waf-rules.md) 단원을 참조하세요.

      1. **규칙 생성**을 선택합니다.
**참고**  
보호 팩(웹 ACL)에 둘 이상의 규칙을 추가하는 경우는 보호 팩(웹 ACL)에 나열된 순서대로 규칙을 AWS WAF 평가합니다. 자세한 내용은 [에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF](web-acl-processing.md) 단원을 참조하십시오.

   1. (선택 사항) 관리형 규칙 그룹을 추가하려는 경우 **규칙 추가** 페이지에서 **AWS관리형 규칙 그룹** 또는 **AWS 마켓플레이스 규칙 그룹**을 선택한 후 **다음**을 선택합니다. 추가할 각 관리형 규칙 그룹에 대해 다음을 수행합니다.

      1. **규칙 추가** 페이지에서 관리형 규칙 그룹 또는 AWS Marketplace 판매자의 목록을 AWS 확장합니다.

      1. 규칙 그룹의 버전을 선택합니다.

      1. 보호 팩(웹 ACL)에서 규칙 그룹을 사용하는 방식을 사용자 지정하려면 **편집**을 선택합니다. 다음은 일반적인 사용자 지정 설정입니다.
         + **검사** 섹션에서 범위 축소문을 추가하여 규칙 그룹이 검사하는 웹 요청의 범위를 줄입니다. 이 옵션에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.
         + **규칙 재정의**에서 일부 또는 모든 규칙의 규칙 작업을 재정의합니다. 규칙에 대한 재정의 작업을 정의하지 않는 경우 평가 시 규칙 그룹 내부에 정의된 규칙 작업이 사용됩니다. 이 옵션에 대한 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 단원을 참조하세요.
         + 일부 관리형 규칙 그룹에서는 추가 구성을 제공해야 합니다. 관리형 규칙 그룹 공급자가 제공한 설명서를 참조하세요. AWS 관리형 규칙 규칙 그룹에 대한 자세한 내용은 섹션을 참조하세요[AWS 에 대한 관리형 규칙 AWS WAF](aws-managed-rule-groups.md).

      1. **다음**을 선택합니다.

   1. (선택 사항) 자체 규칙 그룹을 추가하려는 경우 **규칙 추가** 페이지에서 **사용자 지정 규칙 그룹**을 선택한 다음, **다음**을 선택합니다. 추가할 각 규칙 그룹에 대해 다음을 수행합니다.

      1. **이름**에 이 보호 팩(웹 ACL)의 규칙 그룹 규칙에 사용할 이름을 입력합니다. `AWS`, `Shield`, `PreFM` 또는 `PostFM`으로 시작하는 이름은 사용하면 안 됩니다. 이러한 문자열은 예약되어 있거나 다른 서비스에서 관리되는 규칙 그룹과 혼동될 수 있습니다. [다른 서비스에서 제공하는 규칙 그룹 인지](waf-service-owned-rule-groups.md)을(를) 참조하세요.

      1. 목록에서 규칙 그룹을 선택합니다.

      1. (선택 사항) **규칙 구성**에서 **규칙 재정의**를 선택합니다. 관리형 규칙 그룹에 대해 수행할 수 있는 작업과 마찬가지로 규칙 작업을 유효한 작업 설정으로 재정의할 수 있습니다.

      1. (선택 사항) **레이블 추가**에서 **레이블 추가**를 선택한 다음 규칙과 일치하는 요청에 추가할 레이블을 입력합니다. 나중에 동일한 보호 팩(웹 ACL)에서 평가되는 규칙은 이 규칙이 추가하는 레이블을 참조할 수 있습니다.

      1. **규칙 생성**을 선택합니다.

1. **이름 및 설명**에 보호 팩(웹 ACL)의 이름을 입력합니다. 필요한 경우 설명을 입력합니다.
**참고**  
보호 팩(웹 ACL)을 생성한 후에는 이름을 변경할 수 없습니다.

1. (선택 사항) **보호 팩(웹 ACL) 사용자 지정**에서 기본 규칙 작업, 구성 및 로깅 대상을 구성합니다.

   1. (선택 사항) **기본 규칙 작업**에서 보호 팩(웹 ACL)의 기본 작업을 선택합니다. 이는 보호 팩(웹 ACL)의 규칙이 명시적으로 조치를 AWS WAF 취하지 않을 때 요청을 처리하는 작업입니다. 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 단원을 참조하십시오.

   1. (선택 사항) 규칙 구성에서 보호 팩(웹 ACL)의 규칙에 대한 설정을 사용자 지정합니다.
      + **기본 속도 제한** - 가용성에 영향을 미치거나 보안을 손상시키거나 과도한 리소스를 소비할 수 있는 서비스 거부(DoS) 공격을 차단하도록 속도 제한을 설정합니다. 이 규칙 속도는 애플리케이션에 허용되는 속도를 초과하는 IP 주소당 요청을 차단합니다. 자세한 내용은 [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md) 섹션을 참조하세요.
      + **IP 주소** - 차단하거나 허용할 IP 주소를 입력합니다. 이 설정은 다른 규칙을 재정의합니다.
      + **국가별 오리진** - 지정된 국가의 요청을 차단하거나 모든 트래픽을 계산합니다.

   1. **로깅 대상**에서 로깅 대상 유형과 로그를 저장할 위치를 구성합니다. 자세한 내용은 [AWS WAF 로깅 대상](logging-destinations.md) 단원을 참조하십시오.

1. 설정을 검토하고 **보호 팩(웹 ACL) 추가**를 선택합니다.

------
#### [ Using the standard console ]

이 섹션에서는 AWS 콘솔을 통해 웹 ACLs을 생성하는 절차를 제공합니다.

새 웹 ACL을 생성하려면 이 페이지의 절차에 따라 웹 ACL 생성 마법사를 사용합니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 웹 ACL에 변경 사항을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 변경 사항을 테스트하고 조정하십시오. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**참고**  
보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**웹 ACL 생성**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **웹 ACL**을 선택한 다음 **웹 ACL 생성**을 선택합니다.

1. **이름**에 이 웹 ACL을 식별하는 데 사용할 이름을 입력합니다.
**참고**  
웹 ACL을 생성한 후에는 명칭을 변경할 수 없습니다.

1. (선택 사항) 원할 경우 **설명 - 선택 사항**에 웹 ACL에 대한 자세한 설명을 입력합니다.

1. **CloudWatch 지표 명칭**에서 기본 명칭을 변경합니다(해당되는 경우). 유효한 문자를 보려면 콘솔의 지침을 따르십시오. 이름은 "All" 및 "Default\$1Action" AWS WAF을 포함하여 특수 문자, 공백 또는 예약된 지표 이름을 포함할 수 없습니다.
**참고**  
웹 ACL을 생성한 후에는 CloudWatch 지표 이름을 변경할 수 없습니다.

1. **리소스 유형에서** 이 웹 ACL과 연결할 AWS 리소스 범주(Amazon CloudFront 배포 또는 리전 리소스)를 선택합니다. 자세한 내용은 [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md) 단원을 참조하십시오.

1. **리전**에서 리전 리소스 유형을 선택한 경우 웹 ACL을 AWS WAF 저장할 리전을 선택합니다.

   리전 리소스 유형에 대해서만 이 옵션을 선택해야 합니다. CloudFront 배포의 경우 리전은 글로벌(CloudFront) 애플리케이션에 대해 미국 동부(버지니아 북부) 리전 `us-east-1`로 하드코딩됩니다.

1. (CloudFront, API Gateway, Amazon Cognito, App Runner, Verified Access) **웹 요청 검사 크기 제한 - 선택 사항**의 경우 다른 본문 검사 크기 제한을 지정하려면 제한을 선택합니다. 기본값인 16KB를 초과하는 본문 크기를 검사할 경우 추가 비용이 발생할 수 있습니다. 이 옵션에 대한 자세한 내용은 [에서 본문 검사 관리에 대한 고려 사항 AWS WAF](web-acl-setting-body-inspection-limit.md) 섹션을 참조하세요.

1. (선택 사항) **연결된 AWS 리소스 - 선택 사항**에서 지금 리소스를 지정하려면 **리소스 추가 AWS **를 선택합니다. 대화 상자에서 연결할 리소스를 선택한 다음 **추가**를 선택합니다. **웹 ACL 및 관련 AWS 리소스 설명** 페이지로 AWS WAF 돌아갑니다.
**참고**  
Application Load Balancer를 웹 ACL과 연결하도록 선택하면 **리소스 수준 DDoS 보호**가 활성화됩니다. 자세한 내용은 [AWS WAF 분산 서비스 거부(DDoS) 방지](waf-anti-ddos.md) 단원을 참조하십시오.

1. **다음**을 선택합니다.

1. (선택 사항) 관리형 규칙 그룹을 추가하고 싶으면 **규칙 및 규칙 그룹 추가** 페이지에서 **규칙 추가**를 선택한 다음 **관리형 규칙 그룹 추가**를 선택합니다. 추가할 각 관리형 규칙 그룹에 대해 다음을 수행합니다.

   1. **관리형 규칙 그룹 추가** 페이지에서 관리형 규칙 그룹 또는 원하는 AWS Marketplace 판매자의 목록을 AWS 확장합니다.

   1. 추가하려는 규칙 그룹에 대해 **작업** 열에서 **웹 ACL에 추가** 토글을 켭니다.

      웹 ACL에서 규칙 그룹을 사용하는 방식을 사용자 지정하려면 **편집**을 선택합니다. 다음은 일반적인 사용자 지정 설정입니다.
      + 일부 또는 모든 규칙의 규칙 작업을 재정의합니다. 규칙에 대한 재정의 작업을 정의하지 않는 경우 평가 시 규칙 그룹 내부에 정의된 규칙 작업이 사용됩니다. 이 옵션에 대한 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 단원을 참조하세요.
      + 범위 축소문을 추가하여 규칙 그룹이 검사하는 웹 요청의 범위를 줄입니다. 이 옵션에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 단원을 참조하세요.
      + 일부 관리형 규칙 그룹에서는 추가 구성을 제공해야 합니다. 관리형 규칙 그룹 공급자가 제공한 설명서를 참조하세요. AWS 관리형 규칙 규칙 그룹에 대한 자세한 내용은 섹션을 참조하세요[AWS 에 대한 관리형 규칙 AWS WAF](aws-managed-rule-groups.md).

      설정을 완료했으면 **규칙 저장**을 선택합니다.

   **규칙 추가**를 선택하여 관리형 규칙 추가를 완료하고 **규칙 및 규칙 그룹 추가** 페이지로 돌아갑니다.
**참고**  
웹 ACL에 둘 이상의 규칙을 추가하는 경우는 웹 ACL에 대해 나열된 순서대로 규칙을 AWS WAF 평가합니다. 자세한 내용은 [에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF](web-acl-processing.md) 단원을 참조하십시오.

1. (선택 사항) 자체 규칙 그룹을 추가하려면 **규칙 및 규칙 그룹 추가** 페이지에서 **규칙 추가**를 선택한 다음, **자체 규칙 및 규칙 그룹 추가**를 선택합니다. 추가할 각 규칙 그룹에 대해 다음을 수행합니다.

   1. **자체 규칙 및 규칙 그룹 추가**에서 **규칙 그룹**을 선택합니다.

   1. **이름**에 이 웹 ACL의 규칙 그룹 규칙에 사용할 이름을 입력합니다. `AWS`, `Shield`, `PreFM` 또는 `PostFM`으로 시작하는 이름은 사용하면 안 됩니다. 이러한 문자열은 예약되어 있거나 다른 서비스에서 관리되는 규칙 그룹과 혼동될 수 있습니다. [다른 서비스에서 제공하는 규칙 그룹 인지](waf-service-owned-rule-groups.md)을(를) 참조하세요.

   1. 목록에서 규칙 그룹을 선택합니다.
**참고**  
자체 규칙 그룹에 대한 규칙 작업을 재정의하려면 먼저 웹 ACL에 저장한 다음 웹 ACL의 규칙 목록에서 웹 ACL과 규칙 그룹 참조 문을 편집합니다. 관리형 규칙 그룹에 대해 수행할 수 있는 작업과 마찬가지로 규칙 작업을 유효한 작업 설정으로 재정의할 수 있습니다.

   1. **규칙 추가**를 선택합니다.

1. (선택 사항) 자체 규칙 그룹을 추가하려면 **규칙 및 규칙 그룹 추가** 페이지에서 **규칙 추가**, **자체 규칙 및 규칙 그룹 추가**, **규칙 빌더**, 그리고 **규칙 시각적 편집기**를 차례로 선택합니다.
**참고**  
콘솔의 **규칙 시각적 편집기**에서는 한 수준의 중첩을 지원합니다. 예를 들어 단일 논리적 `AND` 또는 `OR` 문을 사용하고 그 안에 한 수준의 다른 명령문을 중첩할 수 있지만 논리적 문 내에 논리적 문을 중첩할 수는 없습니다. 보다 복잡한 규칙 문을 관리하려면 **규칙 JSON 편집기**를 사용합니다. 규칙의 모든 옵션에 대한 자세한 내용은 [AWS WAF 규칙](waf-rules.md) 단원을 참조하세요.  
이 절차에서는 **규칙 시각적 편집기**에 대해 설명합니다.

   1. **이름**에 이 규칙을 식별하는 데 사용할 이름을 입력합니다. `AWS`, `Shield`, `PreFM` 또는 `PostFM`으로 시작하는 이름은 사용하면 안 됩니다. 이러한 문자열은 예약되어 있거나 다른 서비스에서 관리되는 규칙 그룹과 혼동될 수 있습니다.

   1. 필요에 따라 규칙 정의를 입력합니다. 논리적 `AND` 및 `OR` 규칙 문 내에서 규칙을 결합할 수 있습니다. 마법사는 컨텍스트에 따라 각 규칙에 대한 옵션을 안내합니다. 규칙 옵션에 대한 자세한 내용은 [AWS WAF 규칙](waf-rules.md) 단원을 참조하세요.

   1. **작업**에서 웹 요청과 일치할 때 규칙에서 수행할 작업을 선택합니다. 선택 사항에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 및 [에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF](web-acl-processing.md) 단원을 참조하세요.

      **CAPTCHA** 또는 **Challenge** 작업을 사용하는 경우 규칙에 필요한 만큼 **면제 시간** 구성을 조정합니다. 설정을 지정하지 않으면 규칙이 웹 ACL에서 설정을 상속합니다. 웹 ACL 면제 시간 설정을 수정하려면 웹 ACL을 생성한 후 편집합니다. 면제 시간에 대한 자세한 내용은 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md) 섹션을 참조하세요.
**참고**  
규칙 중 하나에서 또는 규칙 그룹 내 규칙 작업 재정의로서 CAPTCHA 또는 Challenge 규칙 작업을 사용하는 경우 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

      요청 또는 응답을 사용자 지정하려면 해당 옵션을 선택하고 사용자 지정의 세부 정보를 입력합니다. 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 단원을 참조하십시오.

      규칙을 통해 일치하는 웹 요청에 레이블이 추가되도록 하려면 해당 옵션을 선택하고 레이블 세부 정보를 채웁니다. 자세한 내용은 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 단원을 참조하십시오.

   1. **규칙 추가**를 선택합니다.

1. 웹 ACL에 대한 기본 작업을 Block 또는 Allow으로 선택합니다. 이는 웹 ACL의 규칙이 명시적으로 허용하거나 차단하지 않을 때 요청을 AWS WAF 처리하는 작업입니다. 자세한 내용은 [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md) 단원을 참조하십시오.

   기본 작업을 사용자 지정하려면 해당 옵션을 선택하고 사용자 지정의 세부 정보를 입력합니다. 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 단원을 참조하십시오.

1. **토큰 도메인 목록**을 정의하여 보호된 애플리케이션 간에 토큰을 공유하도록 할 수 있습니다. 토큰은 CAPTCHA 사기 제어 계정 생성 사기 방지(ACFP), AWS WAF 사기 제어 AWS WAF 계정 탈취 방지(ATP) 및 AWS WAF Bot Control에 관리 AWS 형 규칙 그룹을 사용할 때 및 Challenge 작업과 구현하는 애플리케이션 통합 SDKs에서 사용됩니다.

   공개 접미사는 허용되지 않습니다. 예를 들면 `gov.au` 또는 `co.uk`를 토큰 도메인으로 사용할 수 없습니다.

   기본적으로는 보호된 리소스의 도메인에 대해서만 토큰을 AWS WAF 허용합니다. 이 목록에 토큰 도메인을 추가하면는 목록의 모든 도메인과 연결된 리소스의 도메인에 대한 토큰을 AWS WAF 수락합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성](waf-tokens-domains.md#waf-tokens-domain-lists) 단원을 참조하십시오.

1. **다음**을 선택합니다.

1. **규칙 우선 순위 설정** 페이지에서 규칙 및 규칙 그룹을 선택하고 처리 AWS WAF 하려는 순서로 이동합니다.는 목록 상단에서 시작하는 규칙을 AWS WAF 처리합니다. 웹 ACL은 저장하면 AWS WAF 는 나열된 순서대로 규칙에 숫자 우선 순위 설정을 할당합니다. 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 단원을 참조하십시오.

1. **다음**을 선택합니다.

1. **지표 구성** 페이지에서 옵션을 검토하고 필요한 업데이트를 적용합니다. 동일한 **CloudWatch 지표 이름**을 제공하여 여러 소스에서 지표를 결합할 수 있습니다.

1. **다음**을 선택합니다.

1. **웹 ACL 검토 및 생성** 페이지에서 사용자 정의를 확인합니다. 영역을 변경하려면 해당 영역에 대해 **편집**을 선택합니다. 그러면 웹 ACL 마법사의 페이지로 돌아갑니다. 변경한 후 페이지에서 계속 **다음**을 선택하여 **웹 ACL 검토 및 생성** 페이지로 돌아옵니다.

1. **Create web ACL(웹 ACL 생성)**을 선택합니다. 새 웹 ACL이 **웹 ACL** 페이지에 나열됩니다.

------

# 에서 보호 팩(웹 ACL) 편집 AWS WAF
<a name="web-acl-editing"></a>

------
#### [ Using the new console ]

이 섹션에서는 AWS 콘솔을 통해 보호 팩(웹 ACLs)을 편집하는 절차를 제공합니다.

보호 팩(웹 ACL)에서 규칙을 추가 또는 제거하거나 구성 설정을 변경하려면 이 페이지의 절차를 사용하여 보호 팩(웹 ACL)에 액세스합니다. 보호 팩(웹 ACL)을 업데이트하는 동안는 보호 팩(웹 ACL)과 연결된 리소스에 지속적인 적용 범위를 AWS WAF 제공합니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 보호 팩(웹 ACL)의 변경 사항을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 변경 사항을 테스트하고 조정합니다. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**참고**  
보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**보호 팩(웹 ACL) 편집**

1. 새에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **리소스 및 보호 팩(웹 ACL)**을 선택합니다.

1. 편집하려는 보호 팩(웹 ACL)을 선택합니다. 콘솔을 사용하면 기본 보호 팩(웹 ACL) 카드를 편집할 수 있으며 편집할 수 있는 세부 정보가 포함된 사이드 패널도 열립니다.

1. 필요에 따라 보호 팩(웹 ACL)을 편집합니다.

   다음은 편집 가능한 보호 팩(웹 ACL) 구성의 구성 요소입니다.

   이 섹션에서는 AWS 콘솔을 통해 웹 ACLs을 편집하는 절차를 제공합니다.

   웹 ACL에서 규칙을 추가 또는 제거하거나 구성 설정을 변경하려면 이 페이지의 절차를 사용하여 웹 ACL에 액세스합니다. 웹 ACL을 업데이트하는 동안는 웹 ACL과 연결된 리소스에 대한 지속적인 적용 범위를 AWS WAF 제공합니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 웹 ACL에 변경 사항을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 변경 사항을 테스트하고 조정하십시오. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**참고**  
보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경할 때 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 집합에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

------
#### [ Using the standard console ]

이 섹션에서는 AWS 콘솔을 통해 웹 ACL을 편집하는 절차를 제공합니다.

웹 ACL에서 규칙을 추가 또는 제거하거나 구성 설정을 변경하려면 이 페이지의 절차를 사용하여 웹 ACL에 액세스합니다. 웹 ACL을 업데이트하는 동안는 웹 ACL과 연결된 리소스에 대한 지속적인 적용 범위를 AWS WAF 제공합니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 웹 ACL에 변경 사항을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 변경 사항을 테스트하고 조정하십시오. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**참고**  
보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**웹 ACL을 편집하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **웹 ACL**을 선택합니다.

1. 편집하려는 웹 ACL의 명칭을 선택합니다. 콘솔에서 웹 ACL의 설명으로 이동합니다.

1. 필요에 따라 웹 ACL을 편집합니다. 관심 있는 구성 영역의 탭을 선택하고 변경 가능한 설정을 편집합니다. 편집하는 각 설정에 대해 **저장**을 선택하고 웹 ACL의 설명 페이지로 돌아가면 콘솔에서 웹 ACL에 대한 변경 내용이 저장됩니다.

   다음 목록에는 웹 ACL 구성 구성 요소를 포함하는 탭이 나와 있습니다.
   + **규칙** 탭
     + **웹 ACL에 정의된 규칙** - 웹 ACL을 생성할 때와 마찬가지로 웹 ACL에 정의한 규칙을 편집하고 관리할 수 있습니다.
**참고**  
웹 ACL에 직접 추가하지 않은 규칙의 이름은 변경하면 안 됩니다. 다른 서비스를 사용하여 규칙을 관리하는 경우 이름을 변경하면 의도한 보호를 제공할 수 있는 기능이 제거되거나 줄어들 수 있습니다. AWS Shield Advanced 및 AWS Firewall Manager 둘 다 웹 ACL에서 규칙을 생성할 수 있습니다. 자세한 내용은 [다른 서비스에서 제공하는 규칙 그룹 인지](waf-service-owned-rule-groups.md) 단원을 참조하세요.
**참고**  
규칙 이름을 변경하고 규칙의 지표 이름에 변경 사항이 반영되도록 하려면 지표 이름도 업데이트해야 합니다. 규칙 이름을 변경할 때 AWS WAF 는 규칙의 지표 이름을 자동으로 업데이트하지 않습니다. 콘솔에서 규칙을 편집할 때 규칙 JSON 편집기를 사용하여 지표 이름을 변경할 수 있습니다. API와 보호 팩(웹 ACL) 또는 규칙 그룹을 정의하는 데 사용하는 JSON 목록을 통해 두 이름을 모두 변경할 수도 있습니다.

       규칙 및 규칙 그룹 설정에 대한 자세한 내용은 [AWS WAF 규칙](waf-rules.md) 및 [AWS WAF 규칙 그룹](waf-rule-groups.md) 섹션을 참조하세요.
     + **사용된 웹 ACL 규칙 용량 단위** - 웹 ACL의 현재 용량 사용량입니다. 보기 전용입니다.
     + **어떤 규칙과도 일치하지 않는 요청에 대한 기본 웹 ACL 작업** - 이 설정에 대한 자세한 내용은 [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md) 섹션을 참조하세요.
     + **웹 ACL CAPTCHA 및 챌린지 구성** - 이러한 면제 시간은 CAPTCHA 또는 챌린지 토큰의 획득 후 유효 기간을 결정합니다. 이 설정은 웹 ACL을 생성한 후에만 여기에서 수정할 수 있습니다. 이 설정에 대한 내용은 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md)을 참조하세요.
     + **토큰 도메인 목록** - 목록의 모든 도메인과 연결된 리소스의 도메인에 대한 토큰을 AWS WAF 수락합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성](waf-tokens-domains.md#waf-tokens-domain-lists) 단원을 참조하십시오.
   + **연결된 AWS 리소스** 탭
     + **웹 요청 검사 크기 제한** — CloudFront 배포를 보호하는 웹 ACL에만 포함됩니다. 본문 검사 크기 제한은 검사를 AWS WAF 위해에 전달되는 본문 구성 요소의 양을 결정합니다. 이 설정에 대한 자세한 내용을 알아보려면 [에서 본문 검사 관리에 대한 고려 사항 AWS WAF](web-acl-setting-body-inspection-limit.md) 섹션을 참조하세요.
     + **연결된 AWS 리소스** — 웹 ACL이 현재 연결되어 보호하고 있는 리소스 목록입니다. 웹 ACL과 동일한 리전 내에 있는 리소스를 찾아 웹 ACL에 연결할 수 있습니다. 자세한 내용은 [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md) 단원을 참조하십시오.
   + **사용자 지정 응답 본문** 탭
     + 작업이 Block으로 설정된 웹 ACL 규칙에서 사용할 수 있는 사용자 지정 응답 본문입니다. 자세한 내용은 [Block 작업에 대한 사용자 지정 응답 전송](customizing-the-response-for-blocked-requests.md) 단원을 참조하십시오.
   + **로깅 및 지표** 탭
     + **로깅** - 웹 ACL에서 평가하는 트래픽에 대한 로깅입니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 단원을 참조하세요.
     + **Security Lake 통합** - Amazon Security Lake에서 웹 ACL에 대해 구성한 모든 데이터 수집의 상태입니다. 자세한 내용은 *Amazon Security Lake 사용 설명서*의 [AWS 서비스에서 데이터 수집](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)을 참조하세요.
     + **샘플링된 요청** - 웹 요청과 일치하는 규칙에 대한 정보입니다. 샘플링된 요청 보기에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요.
     + **데이터 보호 설정** - 웹 ACL에 사용할 수 있는 모든 데이터와가 구성된 웹 ACL 로깅 대상으로 AWS WAF 전송하는 데이터에 대해서만 웹 트래픽 데이터 편집 및 필터링을 구성할 수 있습니다. 데이터 보호에 대한 자세한 내용은 [보호 팩(웹 ACL) 트래픽에 대한 데이터 AWS WAF 보호 및 로깅](waf-data-protection-and-logging.md) 섹션을 참조하세요.
     + **CloudWatch 지표** — 웹 ACL의 규칙에 대한 지표입니다. Amazon CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경할 때 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 집합에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

------

# 규칙 그룹 동작 관리
<a name="web-acl-rule-group-settings"></a>

이 섹션에서는 보호 팩(웹 ACL)에서 규칙 그룹을 사용하는 방법을 수정하는 옵션에 대해 설명합니다. 이 정보는 모든 규칙 그룹 유형에 적용됩니다. 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 규칙 그룹에 있는 개별 규칙의 작업을 Count 또는 다른 유효한 규칙 작업 설정으로 재정의할 수 있습니다. 또한 규칙 그룹의 결과 작업을 Count로 재정의할 수 있으며, 이 경우 규칙 그룹 내에서 규칙이 평가되는 방식에는 영향이 미치지 않습니다.

이러한 옵션에 대한 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 섹션을 참조하세요.

## 규칙 그룹에 대한 규칙 작업 재정의
<a name="web-acl-rule-group-rule-action-override"></a>

보호 팩(웹 ACL)의 각 규칙 그룹에서 모든 규칙 또는 일부 규칙에 대해 포함된 규칙의 작업을 재정의할 수 있습니다.

가장 일반적인 사용 사례는 규칙 작업을 Count로 재정의하여 새 규칙 또는 업데이트된 규칙을 테스트하는 경우입니다. 지표가 활성화된 경우에는 재정의하는 각 규칙에 대해 지표를 수신하게 됩니다. 테스트에 대한 자세한 내용은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 섹션을 참조하세요.

이러한 변경은 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가할 때 수행할 수 있으며 보호 팩(웹 ACL)을 편집할 때 모든 유형의 규칙 그룹에 변경을 수행할 수 있습니다. 이러한 지침은 보호 팩(웹 ACL)에 이미 추가된 규칙 그룹에 적용됩니다. 이 옵션에 대한 추가 정보는 [규칙 그룹 규칙 작업 재정의](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rules) 섹션을 참조하세요.

------
#### [ Using the new console ]

**규칙 그룹에 대한 규칙 작업을 재정의하려면**

1. 편집하려는 보호 팩(웹 ACL)을 선택합니다. 콘솔을 사용하면 기본 보호 팩(웹 ACL) 카드를 편집할 수 있으며 편집할 수 있는 세부 정보가 포함된 사이드 패널도 열립니다.

1. 보호 팩(웹 ACL) 카드에서 **규칙** 옆의 **편집** 링크를 선택하여 **규칙 관리** 패널을 엽니다.

1. 규칙 그룹의 **규칙 관리** 섹션에서 관리형 규칙을 선택하여 작업 설정을 엽니다.
   + **규칙 그룹 재정의** - 규칙 그룹 작업을 개수 모드로 변경하지만 모든 개별 규칙 작업은 변경되지 않습니다.
   + **모든 규칙 작업 재정의** - 모든 규칙에 규칙 작업을 적용하여 현재 상태를 재정의합니다.
   + **단일 규칙 재정의** - 개별 규칙에 규칙 작업을 적용합니다.

1. 변경 작업을 마치면 **규칙 저장**을 선택합니다.

------
#### [ Using the standard console ]

**규칙 그룹에 대한 규칙 작업을 재정의하려면**

1. 웹 ACL을 편집합니다.

1. 웹 ACL 페이지의 **규칙** 탭에서 규칙 그룹을 선택한 다음 **편집**을 선택합니다.

1. 규칙 그룹의 **규칙** 섹션에서 필요에 따라 작업 설정을 관리합니다.
   + **모든 규칙** - 규칙 그룹의 모든 규칙에 대해 재정의 작업을 설정하려면 **모든 규칙 작업 재정의** 드롭다운을 열고 재정의 작업을 선택합니다. 모든 규칙의 재정의를 제거하려면 **모든 재정의 제거**를 선택합니다.
   + **단일 규칙** - 단일 규칙에 대해 재정의 작업을 설정하려면 규칙의 드롭다운을 열고 재정의 작업을 선택합니다. 규칙의 재정의를 제거하려면 규칙의 드롭다운을 열고 **재정의 제거**를 선택합니다.

1. 변경 작업을 마치면 **규칙 저장**을 선택합니다. 규칙 작업 및 재정의 작업 설정은 규칙 그룹 페이지에 나열되어 있습니다.

------

다음의 JSON 목록 예제는 규칙 `CategoryVerifiedSearchEngine` 및 `CategoryVerifiedSocialMedia`에 대한 규칙 작업을 Count로 재정의하는 보호 팩(웹 ACL) 내부의 규칙 그룹 선언을 보여줍니다. JSON에서는 각 개별 규칙마다 `RuleActionOverrides` 항목을 제공하여 모든 규칙 작업을 재정의합니다.

```
{
    "Name": "AWS-AWSBotControl-Example",
   "Priority": 5, 
   "Statement": {
    "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesBotControlRuleSet",
        "RuleActionOverrides": [
          {
            "ActionToUse": {
              "Count": {}
            },
            "Name": "CategoryVerifiedSearchEngine"
          },
          {
            "ActionToUse": {
              "Count": {}
            },
            "Name": "CategoryVerifiedSocialMedia"
          }
        ],
        "ExcludedRules": []
    },
   "VisibilityConfig": {
       "SampledRequestsEnabled": true,
       "CloudWatchMetricsEnabled": true,
       "MetricName": "AWS-AWSBotControl-Example"
   }
}
```

## 규칙 그룹의 평가 결과를 Count로 재정의
<a name="web-acl-rule-group-action-override"></a>

규칙 그룹의 규칙이 구성되거나 평가되는 방식을 변경하지 않고도 규칙 그룹 평가로 인해 발생하는 작업을 재정의할 수 있습니다. 이 옵션은 일반적으로 사용되지 않습니다. 규칙 그룹의 규칙 중 하나라도 일치하는 경우 이 재정의는 규칙 그룹의 결과 동작을 Count로 설정합니다.

**참고**  
이는 흔하지 않은 사용 사례입니다. 대부분의 작업 재정의는 [규칙 그룹에 대한 규칙 작업 재정의](#web-acl-rule-group-rule-action-override)에 설명된 대로 규칙 그룹 내에서 규칙 수준에서 수행됩니다.

규칙 그룹을 추가하거나 편집할 때 보호 팩(웹 ACL)에서 규칙 그룹의 결과 작업을 재정의할 수 있습니다. 콘솔에서 규칙 그룹의 **규칙 그룹 재정의(선택 사항)** 창을 열고 재정의를 활성화합니다. JSON에서는 다음 예제 목록에 표시된 것처럼 규칙 그룹 문에서 `OverrideAction`을 설정합니다.

```
{
   "Name": "AWS-AWSBotControl-Example",
   "Priority": 5,  
   "Statement": {
    "ManagedRuleGroupStatement": {
     "VendorName": "AWS",
     "Name": "AWSManagedRulesBotControlRuleSet"
     }
   },
    "OverrideAction": {
       "Count": {}
    },
   "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSBotControl-Example"
   }
}
```

# 보호와 AWS 리소스의 연결 또는 연결 해제
<a name="web-acl-associating-aws-resource"></a>

 AWS WAF 를 사용하여 보호 팩(웹 ACLs)과 리소스 간에 다음과 같은 연결을 생성할 수 있습니다.
+ 리전 보호 팩(웹 ACL)을 아래 나열된 리전 리소스 중 하나와 연결합니다. 이 옵션의 경우 보호 팩(웹 ACL)이 리소스와 동일한 리전에 있어야 합니다.
  + Amazon API Gateway REST API
  + Application Load Balancer
  + AWS AppSync GraphQL API
  + Amazon Cognito 사용자 풀
  + AWS App Runner 서비스
  + AWS Verified·Access 인스턴스
  + AWS Amplify
+ 글로벌 보호 팩(웹 ACL)을 Amazon CloudFront 배포와 연결합니다. 글로벌 보호 팩(웹 ACL)에 미국 동부 (버지니아 북부) 리전이 하드 코딩됩니다.

배포 자체를 생성하거나 업데이트할 때 CloudFront 배포와 보호 팩(웹 ACL)을 연결할 수도 있습니다. 자세한 내용은 *Amazon CloudFront 개발자 안내서*의 [AWS WAF 를 사용하여 콘텐츠에 대한 액세스 제어를 참조하세요](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-awswaf.html).

**다중 연결에 대한 제한 사항**  
다음 제한 사항에 따라 단일 보호 팩(웹 ACL)을 하나 이상의 AWS 리소스와 연결할 수 있습니다.
+ 각 AWS 리소스를 하나의 보호 팩(웹 ACL)에만 연결할 수 있습니다. 보호 팩(웹 ACL)과 AWS 리소스 간의 관계는 one-to-many입니다.
+ 보호 팩(웹 ACL)을 하나 이상의 CloudFront 배포와 연결할 수 있습니다. CloudFront 배포와 연결한 보호 팩(웹 ACL)을 다른 AWS 리소스 유형과 연결할 수 없습니다.

**추가 제한 사항**  
보호 팩(웹 ACL) 연결에 적용되는 추가 제한은 다음과 같습니다.
+ 보호 팩(웹 ACL)은 AWS 리전안에 있는 Application Load Balancer에만 연결할 수 있습니다. 예를 들어, AWS Outposts에 있는 Application Load Balancer에는 보호 팩(웹 ACL)을 연결할 수 없습니다.
+ Amazon Cognito 사용자 풀을 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 관리형 규칙 그룹 `AWSManagedRulesACFPRuleSet` 또는 AWS WAF 사기 제어 계정 탈취 방지(ATP) 관리형 규칙 그룹를 사용하는 보호 팩(웹 ACL)과 연결할 수 없습니다`AWSManagedRulesATPRuleSet`. 계정 생성 사기 방지에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)](waf-acfp.md) 섹션을 참조하세요. 계정 탈취 방지에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 탈취 방지(ATP)](waf-atp.md) 섹션을 참조하세요.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 보호 팩(웹 ACL)을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 계수 모드에서 테스트하고 조정한 다음 활성화합니다. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

# 보호와 AWS 리소스 연결
<a name="web-acl-associating"></a>

------
#### [ Using the new console ]

1. 편집하려는 보호 팩(웹 ACL)을 선택합니다. 콘솔을 사용하면 기본 보호 팩(웹 ACL) 카드를 편집할 수 있으며 편집할 수 있는 세부 정보가 포함된 사이드 패널도 열립니다.

1. 보호 팩(웹 ACL) 카드에서 **리소스** 옆의 **편집** 링크를 선택하여 **리소스 관리 **패널을 엽니다.

1. 규칙 그룹의 **리소스 관리** 섹션에서 **리전 리소스 추가** 또는 **글로벌 리소스 추가**를 선택합니다.

1. 리소스를 선택한 다음 **추가**를 선택합니다.

------
#### [ Using the standard console ]

웹 ACL을 AWS 리소스와 연결하려면 다음 절차를 수행합니다.

**웹 ACL을 AWS 리소스와 연결하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **웹 ACL**을 선택합니다.

1. 리소스와 연결할 웹 ACL 이름을 선택합니다. 콘솔에서 웹 ACL의 설명으로 이동하여 여기에서 설명을 편집할 수 있습니다.

1. **연결된 AWS 리소스** 탭에서 ** AWS 리소스 추가**를 선택합니다.

1. 메시지가 표시되면 리소스 유형을 선택하고 연결할 리소스 옆에 있는 라디오 버튼을 선택한 다음 **추가**를 선택합니다.

------

# AWS 리소스에서 보호 연결 해제
<a name="web-acl-dissociating-aws-resource"></a>

------
#### [ Using the new console ]

1. 편집하려는 보호 팩(웹 ACL)을 선택합니다. 콘솔을 사용하면 기본 보호 팩(웹 ACL) 카드를 편집할 수 있으며 편집할 수 있는 세부 정보가 포함된 사이드 패널도 열립니다.

1. 보호 팩(웹 ACL) 카드에서 **리소스** 옆의 **편집** 링크를 선택하여 **리소스 관리 **패널을 엽니다.

1. 규칙 그룹의 **리소스 관리** 섹션에서 연결을 해제할 리소스를 선택한 다음 **연결 해제**를 선택합니다.
**참고**  
한 번에 하나의 리소스만 연결 해제해야 합니다. 리소스를 여러 개 선택하지 마세요.

1. 확인 페이지에서 "연결 해제"를 입력한 다음 **연결 해제**를 선택합니다.

------
#### [ Using the standard console ]

 AWS 리소스에서 웹 ACL을 연결 해제하려면 다음 절차를 수행합니다.

**AWS 리소스에서 웹 ACL을 연결 해제하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **웹 ACL**을 선택합니다.

1. 리소스에서 연결을 해제할 웹 ACL의 이름을 선택합니다. 콘솔에서 웹 ACL의 설명으로 이동하여 여기에서 설명을 편집할 수 있습니다.

1. **연결된 AWS 리소스** 탭에서이 웹 ACL의 연결을 해제할 리소스를 선택합니다.
**참고**  
한 번에 하나의 리소스만 연결 해제해야 합니다. 리소스를 여러 개 선택하지 마세요.
**참고**  
Application Load Balancer를 webACL과 연결하도록 선택하면 **리소스 수준 DDoS 보호**가 활성화됩니다. 자세한 내용은 [AWS WAF 분산 서비스 거부(DDoS) 방지](waf-anti-ddos.md) 단원을 참조하십시오.

1. **연결 해제**를 선택합니다. 콘솔에 확인 대화상자가 열립니다. 웹 ACL을 AWS 리소스에서 연결 해제하도록 선택했는지 확인합니다.

------

# 에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF
<a name="web-acl-processing"></a>

이 섹션에서는 보호 팩(웹 ACL)이 규칙 및 규칙 그룹과 작동하는 방법에 대해 소개합니다.

보호 팩(웹 ACL)이 웹 요청을 처리하는 방법은 다음에 따라 다릅니다.
+ 보호 팩(웹 ACL) 및 규칙 그룹 내부에 있는 규칙의 숫자 우선 순위 설정
+ 규칙 및 보호 팩(웹 ACL)에 대한 작업 설정
+ 추가하는 규칙 그룹의 규칙에 적용하는 모든 재정의

규칙 작업 설정 목록은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md)을 참조하세요.

규칙 작업 설정 및 기본 보호 팩(웹 ACL) 작업 설정에 요청 및 응답 처리를 사용자 지정할 수 있습니다. 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 섹션을 참조하세요.

**Topics**
+ [규칙 우선 순위 설정](web-acl-processing-order.md)
+ [가 규칙 및 규칙 그룹 작업을 AWS WAF 처리하는 방법](web-acl-rule-actions.md)
+ [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md)

# 규칙 우선 순위 설정
<a name="web-acl-processing-order"></a>

이 섹션에서는 AWS WAF 가 숫자 우선 순위 설정을 사용하여 규칙의 평가 순서를 설정하는 방법을 설명합니다.

보호 팩(웹 ACL)과 모든 규칙 그룹 내에서 숫자 우선 순위 설정을 사용하여 규칙의 평가 순서를 결정합니다. 보호 팩(웹 ACL)의 각 규칙에 대해 해당 보호 팩(웹 ACL) 내에서 고유한 우선 순위 설정을 지정하고, 규칙 그룹의 각 규칙에 대해 해당 규칙 그룹 내에서 고유한 우선 순위 설정을 지정해야 합니다.

**참고**  
규칙 그룹을 관리할 때 콘솔을 통해 보호 팩(웹 ACLs)은 목록의 규칙 순서에 따라 고유한 숫자 우선 순위 설정을 AWS WAF 할당합니다. AWS WAF 는 목록 상단의 규칙에 가장 낮은 숫자 우선 순위를 할당하고 하단의 규칙에 가장 높은 숫자 우선 순위를 할당합니다.

가 웹 요청에 대해 규칙 그룹, 보호 팩(웹 ACL)을 AWS WAF 평가할 때 평가를 종료하거나 모든 규칙을 소진하는 일치 항목을 찾을 때까지의 가장 낮은 숫자 우선 순위 설정에서 규칙을 평가합니다.

예를 들어 보호 팩(웹 ACL)에 다음과 같이 우선 순위가 지정된 다음 규칙 및 규칙 그룹이 있다고 가정해 보겠습니다.
+ 규칙 1 — 우선순위 0
+ 규칙 그룹 A — 우선순위 100
  + 규칙 A1 — 우선순위 10,000
  + 규칙 A2 — 우선순위 20,000
+ 규칙 2 — 우선순위 200
+ 규칙 그룹 B — 우선순위 300
  + 규칙 B1 — 우선순위 0
  + 규칙 B2 — 우선순위 1

AWS WAF 는이 보호 팩(웹 ACL)에 대한 규칙을 다음 순서로 평가합니다.
+ 규칙 1
+ 규칙 그룹 A 규칙 A1
+ 규칙 그룹 A 규칙 A2
+ 규칙 2
+ 규칙 그룹 B 규칙 B1
+ 규칙 그룹 B 규칙 B2

# 가 규칙 및 규칙 그룹 작업을 AWS WAF 처리하는 방법
<a name="web-acl-rule-actions"></a>

이 섹션에서는가 규칙 및 규칙 그룹을 AWS WAF 사용하여 작업을 처리하는 방법을 설명합니다.

규칙 및 규칙 그룹을 구성할 때 일치하는 웹 요청을 AWS WAF 처리할 방법을 선택합니다.
+ **Allow 및 Block에서 작업 종료 중** - Allow 및 Block 작업이 일치하는 웹 요청에서 보호 팩(웹 ACL)의 다른 모든 처리를 중지합니다. 보호 팩(웹 ACL)의 규칙이 요청과 일치하는 항목을 찾고 규칙 작업이 Allow 또는 인 경우 Block해당 일치에 따라 보호 팩(웹 ACL)에 대한 웹 요청의 최종 처리가 결정됩니다. AWS WAF 는 일치하는 규칙 다음에 오는 보호 팩(웹 ACL)의 다른 규칙을 처리하지 않습니다. 이러한 원칙은 보호 팩(웹 ACL)에 직접 추가하는 규칙과 추가된 규칙 그룹 내에 있는 규칙에 적용됩니다. Block 작업을 수행하면 보호된 리소스가 웹 요청을 받거나 처리하지 않습니다.
+ **Count는 비종료 작업임** – Count 작업이 있는 규칙이 요청과 일치하면 AWS WAF 는 요청을 개수한 다음, 보호 팩(웹 ACL) 규칙 세트에 따르는 규칙을 계속 처리합니다.
+ **CAPTCHA 및는 비종료 또는 종료 작업일 Challenge 수 있음 -** 이러한 작업 중 하나가 있는 규칙이 요청과 일치하면는 토큰 상태를 AWS WAF 확인합니다. 요청에 유효한 토큰이 있는 경우는 일치 항목과 유사한 Count 일치 항목을 AWS WAF 처리한 다음 보호 팩(웹 ACL) 규칙 세트에서 따르는 규칙을 계속 처리합니다. 요청에 유효한 토큰이 없는 경우는 평가를 AWS WAF 종료하고 클라이언트에 CAPTCHA 퍼즐 또는 자동 백그라운드 클라이언트 세션 챌린지를 전송하여 해결합니다.

규칙 평가로 인해 종료 작업이 발생하지 않는 경우는 요청에 보호 팩(웹 ACL) 기본 작업을 AWS WAF 적용합니다. 자세한 내용은 [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md) 단원을 참조하세요.

보호 팩(웹 ACL)에서는 규칙 그룹 내 규칙에 대한 작업 설정을 재정의하고 규칙 그룹에서 반환되는 작업을 재정의할 수 있습니다. 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 단원을 참조하세요.

**작업과 우선 순위 설정 간의 상호 작용**  
웹 요청에 AWS WAF 적용되는 작업은 보호 팩(웹 ACL)에 있는 규칙의 숫자 우선 순위 설정의 영향을 받습니다. 예를 들어 보호 팩(웹 ACL)에 Allow 작업을 포함하고 숫자 우선 순위가 50인 규칙과 Count 작업을 포함하고 숫자 우선 순위가 100인 규칙이 있다고 가정해 보겠습니다. AWS WAF 는 가장 낮은 설정부터 시작하여 우선 순위에 따라 보호 팩(웹 ACL)의 규칙을 평가하므로 개수 규칙보다 허용 규칙을 먼저 평가합니다. 두 규칙과 일치하는 웹 요청은 허용 규칙과 먼저 일치합니다. Allow는 종료 작업이므로 AWS WAF 는이 일치 시 평가를 중지하고 개수 규칙에 대해 요청을 평가하지 않습니다.
+ 허용 규칙과 일치하지 않는 요청만 개수 규칙 지표에 포함하려는 경우에는 규칙의 우선 순위 설정이 적합합니다.
+ 반면 허용 규칙과 일치하는 요청에도 개수 규칙의 개수 지표를 적용하려면 허용 규칙보다 더 낮은 숫자 우선 순위 설정을 개수 규칙에 지정하여 먼저 실행되도록 해야 합니다.

우선 순위 설정에 대한 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 섹션을 참조하세요.

# 에서 규칙 그룹 작업 재정의 AWS WAF
<a name="web-acl-rule-group-override-options"></a>

이 섹션에서는 규칙 그룹 작업을 재정의하는 방법을 설명합니다.

보호 팩(웹 ACL)에 규칙 그룹을 추가하면 일치하는 웹 요청에 대해 수행하는 작업을 재정의할 수 있습니다. 보호 팩(웹 ACL) 구성 내의 규칙 그룹에 대한 작업을 재정의해도 규칙 그룹 자체는 변경되지 않습니다. 보호 팩(웹 ACL)의 컨텍스트에서가 규칙 그룹을 AWS WAF 사용하는 방법만 변경됩니다.

## 규칙 그룹 규칙 작업 재정의
<a name="web-acl-rule-group-override-options-rules"></a>

이제 규칙 그룹에 있는 규칙의 작업을 유효한 규칙 작업 중 하나로 재정의할 수 있습니다. 이렇게 하면 구성된 규칙의 작업이 재정의 설정인 것처럼 일치 요청이 정확하게 처리됩니다.

**참고**  
규칙 작업은 종료일 수도 있고 종료되지 않을 수도 있습니다. 종료 작업은 요청의 보호 팩(웹 ACL) 평가를 중지하고 보호된 애플리케이션을 계속 실행하도록 허용하거나 차단합니다.

다음은 규칙 작업 옵션입니다.
+ **Allow** - 처리 및 응답을 위해 보호된 AWS 리소스로 요청을 전달할 수 AWS WAF 있습니다. 이 작업은 종료 작업입니다. 정의한 규칙에서는 요청을 보호된 리소스로 전달하기 전에 사용자 지정 헤더를 요청에 삽입할 수 있습니다.
+ **Block** - 요청을 AWS WAF 차단합니다. 이 작업은 종료 작업입니다. 기본적으로 보호된 AWS 리소스는 HTTP `403 (Forbidden)` 상태 코드로 응답합니다. 정의한 규칙에서 응답을 사용자 지정할 수 있습니다. 가 요청을 AWS WAF 차단하면 Block 작업 설정에 따라 보호된 리소스가 클라이언트로 다시 보내는 응답이 결정됩니다.
+ **Count** - 요청을 AWS WAF 계산하지만 요청을 허용할지 또는 차단할지는 결정하지 않습니다. 이 작업은 비종료 작업입니다. AWS WAF 는 보호 팩(웹 ACL)의 나머지 규칙을 계속 처리합니다. 정의한 규칙에서 요청에 사용자 지정 헤더를 삽입하면 다른 규칙과 일치시킬 수 있는 레이블을 추가할 수 있습니다.
+ **CAPTCHA 및 Challenge** - CAPTCHA 퍼즐과 자동 챌린지를 AWS WAF 사용하여 요청이 봇에서 오지 않는지 확인하고 토큰을 AWS WAF 사용하여 최근에 성공한 클라이언트 응답을 추적합니다.

  CAPTCHA 퍼즐 및 자동 문제는 브라우저가 HTTPS 엔드포인트에 액세스하는 경우에만 실행할 수 있습니다. 토큰을 획득하려면 브라우저 클라이언트가 안전한 컨텍스트에서 실행되어야 합니다.
**참고**  
규칙 중 하나에서 또는 규칙 그룹 내 규칙 작업 재정의로서 CAPTCHA 또는 Challenge 규칙 작업을 사용하는 경우 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

  이러한 규칙 작업은 요청의 토큰 상태에 따라 종료되거나 종료되지 않을 수 있습니다.
  + **유효하고 만료되지 않은 토큰에 대한 비종료 -** 구성된 CAPTCHA 또는 챌린지 면제 시간에 따라 토큰이 유효하고 만료되지 않은 경우는 Count 작업과 유사한 요청을 AWS WAF 처리합니다.는 AWS WAF 보호 팩(웹 ACL)의 나머지 규칙을 기반으로 웹 요청을 계속 검사합니다. Count 구성과 마찬가지로, 정의한 규칙에서도 요청에 삽입할 사용자 지정 헤더를 사용하여 이러한 작업을 선택적으로 구성하고 다른 규칙과 일치시킬 수 있는 레이블을 추가할 수 있습니다.
  + **유효하지 않거나 만료된 토큰에 대한 차단된 요청으로 종료** - 토큰이 유효하지 않거나 표시된 타임스탬프가 만료된 경우는 Block 작업과 마찬가지로 웹 요청 검사를 AWS WAF 종료하고 요청을 차단합니다. AWS WAF 그런 다음는 사용자 지정 응답 코드로 클라이언트에 응답합니다. CAPTCHA의 경우 요청 콘텐츠가 클라이언트 브라우저에서 처리할 수 있는 콘텐츠로 표시되면 AWS WAF 는 인간 클라이언트를 봇과 구분하기 위해 고안된 JavaScript 중간 광고를 통해 CAPTCHA 퍼즐을 전송합니다. Challenge 작업의 경우는 일반 브라우저와 봇이 실행 중인 세션을 구분하도록 설계된 자동 챌린지가 포함된 JavaScript 중간 광고를 AWS WAF 보냅니다.

  자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 섹션을 참조하세요.

이 옵션을 사용하는 방법에 대한 자세한 방법은 [규칙 그룹에 대한 규칙 작업 재정의](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override) 섹션을 참조하세요.

### 규칙 작업을 Count로 재정의
<a name="web-acl-rule-group-override-to-count"></a>

규칙 작업 재정의의 가장 일반적인 사용 사례는 규칙 그룹을 프로덕션 환경에 배치하기 전에 규칙 그룹의 동작을 테스트 및 모니터링하기 위해 규칙 작업의 일부 또는 전체를 Count로 재정의하는 것입니다.

또한 이 방법을 사용하여 거짓 긍정을 생성하는 규칙 그룹의 문제를 해결할 수도 있습니다. 거짓 긍정은 차단될 것으로 예상되지 않는 트래픽을 규칙 그룹에서 차단할 때 발생합니다. 규칙 그룹 내에서 허용하려는 요청을 차단하는 규칙을 식별한 경우 해당 규칙에 대한 계산 작업 재정의를 유지하여 해당 규칙이 요청에 적용되지 않고 제외되도록 할 수 있습니다.

테스트에서 규칙 작업 재정의를 사용하는 방법에 대한 자세한 내용은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 섹션을 참조하세요.

### JSON 목록: `RuleActionOverrides`에서 `ExcludedRules` 대체
<a name="web-acl-rule-group-override-replaces-exclude"></a>

2022년 10월 27일 이전에 보호 팩(웹 ACL) 구성Count에서 규칙 그룹 규칙 작업을 로 설정하면가 보호 팩(웹 ACL) JSON에 재정의를 로 AWS WAF 저장했습니다`ExcludedRules`. 이제 규칙을 Count로 재정의하기 위한 JSON 설정은 `RuleActionOverrides` 설정에 있습니다.

작업이 Count로 설정되어 있는 상태에서 JSON 목록의 모든 `ExcludedRules` 설정을 `RuleActionOverrides` 설정으로 업데이트하는 것이 좋습니다. API는 두 설정 중 하나를 허용하지만 새 `RuleActionOverrides` 설정만 사용하는 경우 콘솔 작업과 API 작업 간에 JSON 목록의 일관성이 유지됩니다.

**참고**  
 AWS WAF 콘솔에서 보호 팩(웹 ACL) **샘플링된 요청** 탭에는 이전 설정의 규칙에 대한 샘플이 표시되지 않습니다. 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 단원을 참조하십시오.

 AWS WAF 콘솔을 사용하여 기존 규칙 그룹 설정을 편집하면 콘솔은 JSON의 모든 `ExcludedRules` 설정을 `RuleActionOverrides` 설정으로 자동 변환하고 재정의 작업은 로 설정됩니다Count.
+ 현재 설정 예: 

  ```
         "ManagedRuleGroupStatement": {
            "VendorName": "AWS",
            "Name": "AWSManagedRulesAdminProtectionRuleSet",
            "RuleActionOverrides": [
              {
                "Name": "AdminProtection_URIPATH",
                "ActionToUse": {
                  "Count": {}
                }
              }
            ]
  ```
+ 이전 설정 예: 

  ```
  OLD SETTING
         "ManagedRuleGroupStatement": {
            "VendorName": "AWS",
            "Name": "AWSManagedRulesAdminProtectionRuleSet",
            "ExcludedRules": [
              {
                "Name": "AdminProtection_URIPATH"
              }
            ]
  OLD SETTING
  ```

## 규칙 그룹 반환 작업을 Count로 재정의
<a name="web-acl-rule-group-override-options-rule-group"></a>

규칙 그룹이 반환하는 작업을 Count로 설정하여 재정의할 수 있습니다.

**참고**  
이는가 규칙 그룹 자체를 AWS WAF 평가하는 방법을 변경하지 않으므로 규칙 그룹에서 규칙을 테스트하는 데 적합하지 않습니다. 이는가 규칙 그룹 평가에서 보호 팩(웹 ACL)으로 반환된 결과를 AWS WAF 처리하는 방법에만 영향을 미칩니다. 규칙 그룹의 규칙을 테스트하려면 이전 섹션인 [규칙 그룹 규칙 작업 재정의](#web-acl-rule-group-override-options-rules)에 설명된 옵션을 사용하십시오.

규칙 그룹 작업을 로 재정의하면가 규칙 그룹 평가를 정상적으로 Count AWS WAF 처리합니다.

규칙 그룹에 일치하는 규칙이 없거나 모든 일치 규칙에 Count 작업이 있는 경우 이 재정의는 규칙 그룹 또는 보호 팩(웹 ACL)의 처리에 영향을 주지 않습니다.

웹 요청과 일치하고 종료 규칙 작업이 있는 규칙 그룹의 첫 번째 규칙은 AWS WAF 가 규칙 그룹 평가를 중지하고 종료 작업 결과를 보호 팩(웹 ACL) 평가 수준으로 반환합니다. 이 시점에서이 재정의는 보호 팩(웹 ACL) 평가에서 적용됩니다.는 규칙 그룹 평가의 결과가 작업일 뿐이 되도록 종료 Count 작업을 AWS WAF 재정의합니다. AWS WAF 그런 다음는 보호 팩(웹 ACL)의 나머지 규칙을 계속 처리합니다.

이 옵션을 사용하는 방법에 대한 자세한 방법은 [규칙 그룹의 평가 결과를 Count로 재정의](web-acl-rule-group-settings.md#web-acl-rule-group-action-override) 섹션을 참조하세요.

# 에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF
<a name="web-acl-default-action"></a>

이 섹션에서는 보호 팩(웹 ACL) 기본 작업의 작동 방식에 대해 설명합니다.

보호 팩(웹 ACL)을 생성하고 구성할 때는 보호 팩(웹 ACL) 기본 작업을 설정해야 합니다. AWS WAF 는 종료 작업을 적용하지 않고 모든 보호 팩(웹 ACL)의 규칙 평가를 통과하는 모든 웹 요청에 이 작업을 적용합니다. 종료 작업은 요청의 보호 팩(웹 ACL) 평가를 중지하고 보호된 애플리케이션을 계속 실행하도록 허용하거나 차단합니다. 규칙 작업에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

보호 팩(웹 ACL) 기본 작업은 웹 요청의 최종 처리를 결정해야 하므로 종료 작업입니다.
+ **Allow** – 대부분의 사용자가 웹 사이트에 액세스할 수 있도록 허용하려고 하지만 지정된 IP 주소에서 요청이 시작되거나 요청에 악성 SQL 코드 도는 지정된 값이 포함된 것으로 보이는 공격자에게는 액세스를 차단하려는 경우 기본 작업으로 Allow을 선택합니다. 그런 다음 보호 팩(웹 ACL)에 규칙을 추가할 때 차단할 특정 요청을 식별하고 차단하는 규칙을 추가합니다. 이 작업에서는 요청을 보호된 리소스로 전달하기 전에 사용자 지정 헤더를 요청에 삽입할 수 있습니다.
+ **Block** – 대부분의 사용자가 웹 사이트에 액세스하지 못하도록 하려고 하지만 지정된 IP 주소에서 요청이 시작되거나 요청에 지정된 값이 포함된 사용자에게 액세스를 허용하려는 경우 기본 작업으로 Block을 선택합니다. 그런 다음 보호 팩(웹 ACL)에 규칙을 추가할 때 허용할 특정 요청을 식별하고 허용하는 규칙을 추가합니다. 기본적으로 Block 작업의 경우 AWS 리소스는 HTTP `403 (Forbidden)` 상태 코드로 응답하지만 응답을 사용자 지정할 수 있습니다.

요청 및 응답을 사용자 지정하는 방법에 대한 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 섹션을 참조하세요.

자체 규칙 및 규칙 그룹의 구성은 대부분의 웹 요청을 허용할지 또는 차단할지에 따라 부분적으로 달라집니다. 예를 들어 대부분의 요청을 *허용*하려면 보호 팩(웹 ACL) 기본 작업을 Allow하도록 설정한 후 다음과 같이 *차단*할 웹 요청을 식별하는 규칙을 추가합니다.
+ 합당하지 않은 수의 요청을 수행하는 IP 주소에서 기원되는 요청
+ 사업을 운영하지 않거나 공격이 빈번하게 발생하는 국가에서 시작되는 요청
+ `User-agent` 헤더에 가짜 값이 포함된 요청
+ 악성 SQL 코드가 포함된 것으로 보이는 요청

관리형 규칙 그룹 규칙은 일반적으로 Block 작업을 사용하지만 그렇지 않은 규칙도 있습니다. 예를 들면 Bot Control에 사용되는 일부 규칙에는 CAPTCHA 및 Challenge 작업 설정이 사용됩니다. 관리형 규칙 그룹에 대한 자세한 내용은 [에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md) 단원을 참조하세요.

# 에서 본문 검사 관리에 대한 고려 사항 AWS WAF
<a name="web-acl-setting-body-inspection-limit"></a>

본문 검사 크기 제한은가 검사할 AWS WAF 수 있는 최대 요청 본문 크기입니다. 웹 요청 본문이 제한보다 큰 경우 기본 호스트 서비스는 검사를 AWS WAF 위해 제한 내에 있는 콘텐츠만에 전달합니다.
+ Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB(8,192바이트)로 고정됩니다.
+ CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB(16,384바이트)이며 리소스 유형에 대한 제한을 16KB씩 최대 64KB까지 늘릴 수 있습니다. 설정 옵션은 16KB, 32KB, 48KB 및 64KB입니다.

**중요**  
AWS WAF 는 gRPC 트래픽에 대한 요청 본문 검사 규칙을 지원하지 않습니다. CloudFront 배포 또는 Application Load Balancer의 보호 팩(웹 ACL)에서 이러한 규칙을 활성화한 경우 gRPC를 사용하는 모든 요청은 요청 본문 검사 규칙을 무시합니다. 다른 모든 AWS WAF 규칙은 계속 적용됩니다. 자세한 내용은 *Amazon CloudFront 개발자 안내서*의 [AWS WAF 배포](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WAF-one-click.html) 활성화를 참조하세요.

**너무 큰 본문 처리**  
웹 트래픽에 한도보다 큰 본문이 포함되는 경우 구성된 과대 처리가 적용됩니다. 과대 처리 옵션에 대한 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 섹션을 참조하세요.

**제한 설정 증가에 대한 요금 고려 사항**  
AWS WAF 는 리소스 유형의 기본 제한 내에 있는 트래픽을 검사하는 기본 요금을 부과합니다.

CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access 리소스의 경우 제한 설정을 늘리면가 검사할 AWS WAF 수 있는 트래픽에 새 제한까지의 본문 크기가 포함됩니다. 본문 크기가 기본 16KB보다 큰 요청을 검사하는 경우에만 추가 요금이 부과됩니다. 요금에 대한 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하십시오.

**본문 검사 크기 제한을 수정하는 옵션**  
CloudFront, API Gateway, Amazon Cognito, App Runner 또는 Verified Access 리소스에 대한 본문 검사 크기 제한을 구성할 수 있습니다.

보호 팩(웹 ACL)을 생성하거나 편집할 때 리소스 연결 구성에서 본문 검사 크기 제한을 수정할 수 있습니다. API의 경우 [AssociationConfig](https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociationConfig.html)에서 보호 팩(웹 ACL)의 연결 구성을 참조하세요. 콘솔의 경우 보호 팩(웹 ACL)의 연결된 리소스를 지정하는 페이지에 있는 구성을 참조하세요. 콘솔 구성에 대한 지침은 [에서 웹 트래픽 지표 보기 AWS WAF](web-acl-working-with.md) 섹션을 참조하세요.

# 에서 CAPTCHA, 챌린지 및 토큰 구성 AWS WAF
<a name="web-acl-captcha-challenge-token-domains"></a>

CAPTCHA 또는 Challenge 규칙 작업을 사용하는 규칙과 AWS WAF 관리형 보호에 대한 자동 클라이언트 문제를 관리하는 애플리케이션 통합 SDKs에 대해 보호 팩(웹 ACL)에서 옵션을 구성할 수 있습니다.

이러한 기능을 사용하면 최종 사용자에게 CAPTCHA 퍼즐을 제시하고 클라이언트 세션에 자동 챌린지를 제공하여 봇 활동을 줄일 수 있습니다. 클라이언트가 성공적으로 응답하면 AWS WAF 는 웹 요청에 사용할 토큰을 클라이언트에 제공합니다. 이 토큰에는 마지막으로 성공한 퍼즐 및 챌린지 응답이 타임스탬프로 지정됩니다. 자세한 내용은 [의 지능형 위협 완화 AWS WAF](waf-managed-protections.md) 단원을 참조하십시오.

보호 팩(웹 ACL) 구성에서가 이러한 토큰을 AWS WAF 관리하는 방법을 구성할 수 있습니다.
+ **CAPTCHA 및 챌린지 면제 시간** — CAPTCHA 또는 챌린지 타임스탬프가 유효 상태로 유지되는 시간을 지정합니다. 보호 팩(웹 ACL) 설정은 자체 면제 시간 설정이 구성되어 있지 않은 모든 규칙과 애플리케이션 통합 SDK에 상속됩니다. 자세한 내용은 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md) 단원을 참조하십시오.
+ **토큰 도메인** - 기본적으로는 보호 팩(웹 ACL)이 연결된 리소스의 도메인에 대해서만 토큰을 AWS WAF 허용합니다. 토큰 도메인 목록을 구성하는 경우는 목록의 모든 도메인과 연결된 리소스의 도메인에 대한 토큰을 AWS WAF 수락합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성](waf-tokens-domains.md#waf-tokens-domain-lists) 단원을 참조하십시오.

# 에서 웹 트래픽 지표 보기 AWS WAF
<a name="web-acl-working-with"></a>

이 섹션에서는 웹 트래픽 지표 요약에 액세스하는 방법을 설명합니다.

사용 중인 모든 보호 팩(웹 ACL)의 경우 AWS WAF 콘솔의 트래픽 **개요** 탭에서 보호 팩(웹 ACL) 페이지에 있는 웹 트래픽 지표 요약에 액세스할 수 있습니다. 콘솔 대시보드는가 애플리케이션 웹 트래픽을 평가할 때 AWS WAF 수집하는 Amazon CloudWatch 지표에 대한 실시간에 가까운 요약을 제공합니다. 대시보드에 대한 자세한 내용은 [보호 팩(웹 ACL)용 트래픽 개요 대시보드](web-acl-dashboards.md) 섹션을 참조하세요. 보호 팩(웹 ACL) 트래픽 모니터링에 대한 추가적인 내용은 [AWS WAF 보호 모니터링 및 튜닝](web-acl-testing-activities.md) 섹션을 참조하세요.

# 보호 팩(웹 ACL) 삭제
<a name="web-acl-deleting"></a>

이 섹션에서는 AWS 콘솔을 통해 보호 팩(웹 ACLs)을 삭제하는 절차를 제공합니다.

**중요**  
보호 팩(웹 ACL) 삭제는 영구적이며 취소할 수 없습니다.

보호 팩(웹 ACL)을 삭제하려면 먼저 보호 팩(웹 ACL)에서 모든 AWS 리소스의 연결을 해제합니다. 다음 절차를 수행합니다.

------
#### [ Using the new console ]

1. 새에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **리소스 및 보호 팩(웹 ACL)**을 선택합니다.

1. 보호 팩(웹 ACL) 카드에서 **리소스** 옆의 **편집** 링크를 선택하여 **리소스 관리 **패널을 엽니다.

1. 규칙 그룹의 **리소스 관리** 섹션에서 연결을 해제할 리소스를 선택한 다음 **연결 해제**를 선택합니다.
**참고**  
한 번에 하나의 리소스만 연결 해제해야 합니다. 리소스를 여러 개 선택하지 마세요.

1. 확인 페이지에서 "연결 해제"를 입력한 다음 **연결 해제**를 선택합니다. 이 단계를 반복하여 보호 팩(웹 ACL)의 각 리소스 연결을 해제합니다.

1. 삭제하려는 보호 팩(웹 ACL)을 선택합니다. 콘솔을 사용하면 기본 보호 팩(웹 ACL) 카드를 편집할 수 있으며 편집할 수 있는 세부 정보가 포함된 사이드 패널도 열립니다.

1. 세부 정보 패널에서 휴지통 아이콘을 선택합니다.

1. 확인 페이지에 ‘삭제’를 입력한 다음 **삭제**를 선택합니다.

------
#### [ Using the standard console ]

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **웹 ACL**을 선택합니다.

1. 삭제하려는 웹 ACL의 이름을 선택합니다. 콘솔에서 웹 ACL의 설명으로 이동하여 여기에서 설명을 편집할 수 있습니다.
**참고**  
삭제하려는 웹 ACL이 표시되지 않으면 웹 ACL 섹션의 리전 선택이 올바른지 확인합니다. Amazon CloudFront 배포를 보호하는 웹 ACL은 **글로벌(CloudFront)**에 있습니다.

1. **연결된 AWS 리소스** 탭의 연결된 각 리소스에 대해 리소스 이름 옆의 라디오 버튼을 선택한 다음 **연결 해제를** 선택합니다. 이렇게 하면 AWS 리소스에서 보호 팩(웹 ACL)의 연결이 해제됩니다.

1. 탐색 창에서 **웹 ACL**을 선택합니다.

1. 삭제할 웹 ACL 옆에 있는 라디오 단추를 선택한 다음 **삭제**를 선택합니다.

------

# AWS WAF 규칙
<a name="waf-rules"></a>

이 섹션에서는 AWS WAF 규칙이 무엇이고 어떻게 작동하는지 설명합니다.

 AWS WAF 규칙은 HTTP(S) 웹 요청을 검사하는 방법과 검사 기준과 일치할 때 요청에 대해 수행할 작업을 정의합니다. 규칙 그룹 또는 보호 팩(웹 ACL)의 컨텍스트에 있는 규칙만 정의합니다.

규칙은 자체 AWS WAF 적으로에 존재하지 않습니다. AWS 리소스가 아니며 Amazon 리소스 이름(ARNs)이 없습니다. 규칙 그룹 또는 규칙이 정의된 보호 팩(웹 ACL)에서 이름으로 규칙에 액세스할 수 있습니다. 규칙 그룹 또는 규칙이 포함된 보호 팩(웹 ACL)의 JSON 보기를 사용하여 규칙을 관리하고 다른 보호 팩(웹 ACL)으로 복사할 수 있습니다. 보호 팩(웹 ACLs) 및 규칙 그룹에 사용할 수 있는 AWS WAF 콘솔 규칙 빌더를 통해 관리할 수도 있습니다.

**규칙 이름**  
각 규칙에는 이름이 지정해야 합니다. `AWS`로 시작하는 이름과 다른 서비스에서 관리하는 규칙 그룹 또는 규칙에 사용되는 이름은 사용하지 마십시오. [다른 서비스에서 제공하는 규칙 그룹 인지](waf-service-owned-rule-groups.md)을(를) 참조하세요.

**참고**  
규칙 이름을 변경하고 규칙의 지표 이름에 변경 사항이 반영되도록 하려면 지표 이름도 업데이트해야 합니다. 규칙 이름을 변경할 때 AWS WAF 는 규칙의 지표 이름을 자동으로 업데이트하지 않습니다. 콘솔에서 규칙을 편집할 때 규칙 JSON 편집기를 사용하여 지표 이름을 변경할 수 있습니다. API와 보호 팩(웹 ACL) 또는 규칙 그룹을 정의하는 데 사용하는 JSON 목록을 통해 두 이름을 모두 변경할 수도 있습니다.

**규칙 문**  
또한 각 규칙에는 규칙이 웹 요청을 검사하는 방법을 정의하는 규칙 문이 필요합니다. 규칙 문은 규칙 및 문 유형에 따라 기타 모든 깊이에 중첩된 문이 포함될 수 있습니다. 일부 규칙 문에는 일련의 기준이 적용됩니다. 예를 들어, IP 집합 일치 규칙에 대해 최대 10,000개의 IP 주소 또는 IP 주소 범위를 지정할 수 있습니다.

다음과 같이 기준을 검사하는 규칙을 정의할 수 있습니다.
+ 악성일 가능성이 있는 스크립트입니다. 공격자는 웹 애플리케이션의 취약성을 악용할 수 있는 스크립트를 포함시킵니다. 이것은 XXS(교차 사이트 스크립팅)이라고 알려져 있습니다.
+ 요청이 시작되는 IP 주소 또는 주소 범위입니다.
+ 요청이 시작되는 국가 또는 지리적 위치입니다.
+ 쿼리 문자열과 같은 요청에서 지정된 부분의 길이입니다.
+ 악성일 가능성이 있는 SQL 코드입니다. 공격자는 악성 SQL 코드를 웹 요청에 포함시켜서 데이터베이스에서 데이터를 추출하려고 시도합니다. 이것은 SQL 명령어 주입이라고 알려져 있습니다.
+ 요청에 나타나는 문자열입니다. 예를 들어 `User-Agent` 헤더에 나타나는 값 또는 쿼리 문자열에 나타나는 텍스트 문자열입니다. 정규식을 사용하여 이러한 문자열을 지정할 수도 있습니다.
+ 보호 팩(웹 ACL)의 이전 규칙이 요청에 추가한 레이블입니다.

이전 목록의 문과 같이 웹 요청 검사 기준이 있는 문 외에도는 규칙에서 문을 결합하는 데 `NOT` 사용하는 `OR`, 및 `AND`에 대한 논리적 문을 AWS WAF 지원합니다.

예를 들어 공격자에게서 확인한 최근 요청에 따라 다음과 같은 중첩 문을 결합하는 논리적 `AND` 문을 사용하여 규칙을 생성할 수 있습니다.
+ 요청이 192.0.2.44에서 나옵니다.
+ 요청의 `User-Agent` 헤더에 `BadBot`라는 값이 포함되어 있습니다.
+ 요청의 쿼리 문자열에 유사 SQL 코드가 포함되어 있는 것으로 보입니다.

이 경우 모든 문은 최상위 `AND` 문이 일치하도록 매치되어야 합니다.

**Topics**
+ [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md)
+ [에서 규칙 문 사용 AWS WAF](waf-rule-statements.md)
+ [에서 일치 규칙 문 사용 AWS WAF](waf-rule-statements-match.md)
+ [에서 논리적 규칙 문 사용 AWS WAF](waf-rule-statements-logical.md)
+ [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md)
+ [에서 규칙 그룹 규칙 문 사용 AWS WAF](waf-rule-statements-rule-group.md)

# 에서 규칙 작업 사용 AWS WAF
<a name="waf-rule-action"></a>

이 섹션에서는 규칙 작업의 작동 방식을 설명합니다.

규칙 작업은 웹 요청이 규칙에 정의된 기준과 일치할 때 웹 요청을 사용하여 AWS WAF 수행할 작업을 지시합니다. 필요에 따라 각 규칙 작업에 사용자 지정 동작을 추가할 수 있습니다.

**참고**  
규칙 작업은 종료일 수도 있고 종료되지 않을 수도 있습니다. 종료 작업은 요청의 보호 팩(웹 ACL) 평가를 중지하고 보호된 애플리케이션을 계속 실행하도록 허용하거나 차단합니다.

다음은 규칙 작업 옵션입니다.
+ **Allow** - 처리 및 응답을 위해 보호된 AWS 리소스로 요청을 전달할 수 AWS WAF 있습니다. 이 작업은 종료 작업입니다. 정의한 규칙에서는 요청을 보호된 리소스로 전달하기 전에 사용자 지정 헤더를 요청에 삽입할 수 있습니다.
+ **Block** - 요청을 AWS WAF 차단합니다. 이 작업은 종료 작업입니다. 기본적으로 보호된 AWS 리소스는 HTTP `403 (Forbidden)` 상태 코드로 응답합니다. 정의한 규칙에서 응답을 사용자 지정할 수 있습니다. 가 요청을 AWS WAF 차단하면 Block 작업 설정에 따라 보호된 리소스가 클라이언트로 다시 보내는 응답이 결정됩니다.
+ **Count** - 요청을 AWS WAF 계산하지만 요청을 허용할지 또는 차단할지는 결정하지 않습니다. 이 작업은 비종료 작업입니다. AWS WAF 는 보호 팩(웹 ACL)의 나머지 규칙을 계속 처리합니다. 정의한 규칙에서 요청에 사용자 지정 헤더를 삽입하면 다른 규칙과 일치시킬 수 있는 레이블을 추가할 수 있습니다.
+ **CAPTCHA 및 Challenge** - CAPTCHA 퍼즐과 자동 챌린지를 AWS WAF 사용하여 요청이 봇에서 오지 않는지 확인하고 토큰을 AWS WAF 사용하여 최근에 성공한 클라이언트 응답을 추적합니다.

  CAPTCHA 퍼즐 및 자동 문제는 브라우저가 HTTPS 엔드포인트에 액세스하는 경우에만 실행할 수 있습니다. 토큰을 획득하려면 브라우저 클라이언트가 안전한 컨텍스트에서 실행되어야 합니다.
**참고**  
규칙 중 하나에서 또는 규칙 그룹 내 규칙 작업 재정의로서 CAPTCHA 또는 Challenge 규칙 작업을 사용하는 경우 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

  이러한 규칙 작업은 요청의 토큰 상태에 따라 종료되거나 종료되지 않을 수 있습니다.
  + **유효하고 만료되지 않은 토큰에 대한 비종료 -** 구성된 CAPTCHA 또는 챌린지 면제 시간에 따라 토큰이 유효하고 만료되지 않은 경우는 Count 작업과 유사한 요청을 AWS WAF 처리합니다. AWS WAF 는 보호 팩(웹 ACL)의 나머지 규칙을 기반으로 웹 요청을 계속 검사합니다. Count 구성과 마찬가지로, 정의한 규칙에서도 요청에 삽입할 사용자 지정 헤더를 사용하여 이러한 작업을 선택적으로 구성하고 다른 규칙과 일치시킬 수 있는 레이블을 추가할 수 있습니다.
  + **유효하지 않거나 만료된 토큰에 대한 차단된 요청으로 종료** - 토큰이 유효하지 않거나 표시된 타임스탬프가 만료되면는 Block 작업과 마찬가지로 웹 요청 검사를 AWS WAF 종료하고 요청을 차단합니다. AWS WAF 그런 다음는 사용자 지정 응답 코드로 클라이언트에 응답합니다. CAPTCHA의 경우 요청 콘텐츠가 클라이언트 브라우저에서 처리할 수 있는 콘텐츠로 표시되면 AWS WAF 는 인간 클라이언트를 봇과 구분하기 위해 고안된 JavaScript 중간 광고를 통해 CAPTCHA 퍼즐을 전송합니다. Challenge 작업의 경우, 일반 브라우저와 봇이 실행하는 세션을 구분하도록 설계된 자동 챌린지가 포함된 JavaScript 중간 광고를 AWS WAF 보냅니다.

  자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 섹션을 참조하세요.

요청 및 응답을 사용자 지정하는 방법에 대한 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 섹션을 참조하세요.

레이블을 추가하여 요청을 일치하는 방법에 대한 자세한 내용은 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.

보호 팩(웹 ACL) 및 규칙 설정이 상호 작용하는 방벙에 대한 자세한 내용은 [에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF](web-acl-processing.md) 섹션을 참조하세요.

# 에서 규칙 문 사용 AWS WAF
<a name="waf-rule-statements"></a>

이 섹션에서는 규칙 문이 작동하는 방식을 설명합니다.

규칙 문은 웹 요청을 검사하는 AWS WAF 방법을 알려주는 규칙의 일부입니다. 가 웹 요청에서 검사 기준을 AWS WAF 찾으면 웹 요청이 문과 일치한다고 합니다. 모든 규칙 문은 문 유형에 따라 찾을 내용과 방법을 지정합니다.

의 모든 규칙 AWS WAF 에는 다른 문을 포함할 수 있는 단일 최상위 규칙 문이 있습니다. 규칙 문은 매우 간단할 수 있습니다. 예를 들어 웹 요청을 검사할 출처 국가 세트를 제공하는 문을 사용하거나 규칙 그룹만 참조하는 보호 팩(웹 ACL) 내 규칙문을 사용할 수 있습니다. 규칙 문은 매우 복잡할 수도 있습니다. 예를 들어 다른 많은 문을 논리적 AND, OR 및 NOT 문과 결합하는 문이 있을 수 있습니다.

대부분의 규칙에서 일치하는 요청에 사용자 지정 AWS WAF 레이블을 추가할 수 있습니다. AWS 관리형 규칙 규칙 그룹의 규칙은 일치하는 요청에 레이블을 추가합니다. 규칙이 추가하는 레이블은 보호 팩(웹 ACL)의 뒷부분과 AWS WAF 로그 및 지표에서 평가되는 규칙에 대한 요청에 대한 정보를 제공합니다. 라벨링에 대한 자세한 내용은 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 및 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 섹션을 참조하세요.

**중첩 규칙 문**  
AWS WAF 는 많은 규칙 문에 대해 중첩을 지원하지만 모든 규칙 문에 대해 중첩을 지원하지는 않습니다. 예를 들어 규칙 그룹 문을 다른 문 안에 중첩할 수 없습니다. 범위 축소 문, 논리 문 등의 일부 시나리오에서는 중첩을 사용해야 합니다. 다음 규칙 문 목록과 규칙 세부 정보는 각 범주 및 규칙의 중첩 기능 및 요구 사항을 설명합니다.

콘솔의 규칙 시각적 편집기에서는 규칙 문에 대해 한 수준의 중첩만 지원합니다. 예를 들어 여러 유형의 명령문을 논리적 AND 또는 OR 규칙 안에 중첩할 수 있지만, 두 번째 중첩 수준이 필요하므로 다른 AND 또는 OR 규칙은 중첩할 수 없습니다. 여러 수준의 중첩을 구현하려면 콘솔의 JSON 규칙 편집기나 API를 통해 JSON으로 규칙 정의를 제공하십시오.

**Topics**
+ [에서 규칙 문 설정 조정 AWS WAF](waf-rule-statement-fields.md)
+ [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md)
+ [에서 재사용 가능한 엔터티 참조 AWS WAF](waf-rule-statement-reusable-entities.md)

# 에서 규칙 문 설정 조정 AWS WAF
<a name="waf-rule-statement-fields"></a>

이 섹션에서는 웹 요청의 구성 요소를 검사하는 규칙 문에서 지정할 수 있는 설정에 대해 설명합니다. 사용에 대한 자세한 내용은 [에서 일치 규칙 문 사용 AWS WAF](waf-rule-statements-match.md)에서 개별 규칙 문을 참조하세요.

이러한 웹 요청 구성 요소의 일부는 속도 기반 규칙에서 사용자 지정 요청 집계 키로 사용할 수도 있습니다. 자세한 내용은 [에서 속도 기반 규칙 집계 AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md) 단원을 참조하세요.

요청 구성 요소 설정의 경우 구성 요소 유형 자체를 지정하고 구성 요소 유형에 따라 추가 옵션을 지정합니다. 예를 들어 텍스트가 포함된 구성 요소 유형을 검사할 때 텍스트 변환을 검사하기 전에 적용할 수 있습니다.

**참고**  
달리 명시되지 않는 한, 웹 요청에 규칙 문에 지정된 요청 구성 요소가 없는 경우는 요청을 규칙 기준과 일치하지 않는 것으로 AWS WAF 평가합니다.

**Contents**
+ [에서 구성 요소 요청 AWS WAF](waf-rule-statement-fields-list.md)
  + [HTTP 메서드](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)
  + [단일 헤더](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)
  + [모든 헤더](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)
  + [헤더 순서](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-header-order)
  + [쿠키](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-cookies)
  + [URI 조각](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-fragment)
  + [URI 경로](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path)
  + [JA3 지문](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint)
  + [JA4 지문](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint)
  + [쿼리 문자열](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string)
  + [단일 쿼리 파라미터](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param)
  + [모든 쿼리 파라미터](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)
  + [바디](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-body)
  + [JSON 본문](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)
+ [에서 전달된 IP 주소 사용 AWS WAF](waf-rule-statement-forwarded-ip-address.md)
+ [에서 HTTP/2 의사 헤더 검사 AWS WAF](waf-rule-statement-request-components-for-http2-pseudo-headers.md)
+ [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md)

# 에서 구성 요소 요청 AWS WAF
<a name="waf-rule-statement-fields-list"></a>

이 섹션에서는 검사용으로 지정할 수 있는 웹 요청의 구성 요소를 설명합니다. 웹 요청 내에서 패턴을 찾는 일치 규칙 문에 대해 요청 구성 요소를 지정합니다. 이러한 유형의 문에는 문자열 일치, 정규식 일치, 크기 제약 조건 및 SQL 주입 공격 문이 포함됩니다. 이러한 요청 구성 요소 설정을 사용하는 방법에 대한 자세한 내용은 [에서 일치 규칙 문 사용 AWS WAF](waf-rule-statements-match.md)에서 개별 규칙 문을 참조하세요.

달리 명시되지 않는 한, 웹 요청에 규칙 문에 지정된 요청 구성 요소가 없는 경우는 요청을 규칙 기준과 일치하지 않는 것으로 AWS WAF 평가합니다.

**참고**  
요청 구성 요소가 필요한 각 규칙 문에 대해 단일 요청 구성 요소를 지정합니다. 요청 구성 요소를 두 개 이상 검사하려면 각 구성 요소에 대한 규칙 문을 만듭니다.

 AWS WAF 콘솔 및 API 설명서는 다음 위치의 요청 구성 요소 설정에 대한 지침을 제공합니다.
+ 콘솔의 **규칙 작성기** – 정규 규칙 유형에 대한 **명령문** 설정에서는 **검사** 대화 상자의 **요청 구성 요소**에서 검사할 구성 요소를 선택합니다.
+ **API 문 내용** – `FieldToMatch`

이 섹션의 나머지 부분에서는 검사할 웹 요청의 일부에 대한 옵션을 설명합니다.

**Topics**
+ [HTTP 메서드](#waf-rule-statement-request-component-http-method)
+ [단일 헤더](#waf-rule-statement-request-component-single-header)
+ [모든 헤더](#waf-rule-statement-request-component-headers)
+ [헤더 순서](#waf-rule-statement-request-component-header-order)
+ [쿠키](#waf-rule-statement-request-component-cookies)
+ [URI 조각](#waf-rule-statement-request-component-uri-fragment)
+ [URI 경로](#waf-rule-statement-request-component-uri-path)
+ [JA3 지문](#waf-rule-statement-request-component-ja3-fingerprint)
+ [JA4 지문](#waf-rule-statement-request-component-ja4-fingerprint)
+ [쿼리 문자열](#waf-rule-statement-request-component-query-string)
+ [단일 쿼리 파라미터](#waf-rule-statement-request-component-single-query-param)
+ [모든 쿼리 파라미터](#waf-rule-statement-request-component-all-query-params)
+ [바디](#waf-rule-statement-request-component-body)
+ [JSON 본문](#waf-rule-statement-request-component-json-body)

## HTTP 메서드
<a name="waf-rule-statement-request-component-http-method"></a>

요청의 HTTP 메서드를 검사합니다. HTTP 메서드는 `POST` 또는 `GET` 등 웹 요청이 보호된 리소스에게 수행을 요구하고 있는 작업 유형을 나타냅니다.

## 단일 헤더
<a name="waf-rule-statement-request-component-single-header"></a>

요청에서 이름이 지정된 단일 헤더를 검사합니다.

이 옵션의 경우 헤더 이름(예: `User-Agent` 또는`Referer`)을 지정합니다. 이름의 문자열 일치는 대/소문자를 구분하지 않으며 요청 헤더와 규칙 모두에서 선행 및 후행 공백을 잘라낸 후 수행됩니다.

## 모든 헤더
<a name="waf-rule-statement-request-component-headers"></a>

쿠키를 포함한 모든 요청 헤더를 검사합니다. 필터를 적용하여 모든 헤더 중 일부를 검사할 수 있습니다.

이 옵션에 대해 다음 사양을 제공합니다.
+ **일치 패턴** - inspection. AWS WAF looks용 헤더의 하위 집합을 가져오는 데 사용할 필터로, 헤더 키에서 이러한 패턴을 찾습니다.

  일치 패턴 설정은 다음 중 하나일 수 있습니다.
  + **모두** — 모든 키를 일치시킵니다. 모든 헤더의 규칙 검사 기준을 평가합니다.
  + **제외된 헤더** – 여기에 지정된 문자열과 키가 일치하지 않는 헤더만 검사합니다. 키에 대한 문자열 일치에서는 대/소문자를 구분하지 않습니다. 매칭은 요청 헤더 및 매칭 규칙에서 선행 및 후행 공백을 잘라낸 후에 수행됩니다.
  + **포함된 헤더** – 여기에 지정된 문자열 중 하나와 일치하는 키가 있는 헤더만 검사합니다. 키에 대한 문자열 일치에서는 대/소문자를 구분하지 않습니다. 매칭은 요청 헤더 및 매칭 규칙에서 선행 및 후행 공백을 잘라낸 후에 수행됩니다.
+ **일치 범위** - 규칙 검사 기준으로 검사 AWS WAF 해야 하는 헤더의 부분입니다. **키**, **값** 또는 **모두**를 지정하여 키와 값이 둘 다 일치하는지 검사할 수 있습니다.

  **모두**의 경우 키와 값에 모두 일치 항목을 찾아야 할 필요는 없습니다. 일치하는 키 또는 값을 찾거나 둘 다 일치하는 항목을 찾으면 됩니다. 키와 값이 일치하도록 하려면 논리 `AND` 문을 사용하여 키를 검사하는 규칙 하나와 값을 검사하는 규칙 하나, 이렇게 두 가지 일치 규칙을 결합합니다.
+ **과대 처리** -가에서 검사 AWS WAF 할 수 있는 것보다 큰 헤더 데이터가 있는 요청을 AWS WAF 처리하는 방법.는 요청 헤더의 최대 처음 8KB(8,192바이트)와 최대 처음 200개의 헤더를 AWS WAF 검사할 수 있습니다. 콘텐츠는 첫 번째 한도에 도달할 AWS WAF 때까지 검사할 수 있습니다. 검사를 계속하거나 검사를 건너뛰고 요청을 규칙과 일치하거나 일치하지 않는 것으로 표시할 수 있습니다. 과대 콘텐츠 처리에 대한 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 섹션을 참조하세요.

## 헤더 순서
<a name="waf-rule-statement-request-component-header-order"></a>

가 검사를 위해 AWS WAF 수신하는 웹 요청에 나타나는 순서대로 요청의 헤더 이름 목록이 포함된 문자열을 검사합니다. AWS WAF 는 해당 문자열을 생성한 다음 이를 필드로 사용하여 검사의 구성 요소와 일치시킵니다.는 문자열의 헤더 이름을 콜론으로 AWS WAF 구분하고와 같이 공백을 추가하지 않습니다`host:user-agent:accept:authorization:referer`.

이 옵션에 대해 다음 사양을 제공합니다.
+ **과대 처리** -이 검사 AWS WAF 할 수 있는 것보다 많거나 큰 헤더 데이터가 있는 요청을가 어떻게 처리 AWS WAF 해야 합니까.는 요청 헤더의 최대 처음 8KB(8,192바이트)와 최대 처음 200개의 헤더를 AWS WAF 검사할 수 있습니다. 콘텐츠는 첫 번째 한도에 도달할 AWS WAF 때까지 검사할 수 있습니다. 사용할 수 있는 헤더 검사를 계속하거나 검사를 건너뛰고 요청을 규칙과 일치하거나 일치하지 않는 것으로 표시할 수 있습니다. 과대 콘텐츠 처리에 대한 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 섹션을 참조하세요.

## 쿠키
<a name="waf-rule-statement-request-component-cookies"></a>

모든 요청 쿠키를 검사합니다. 필터를 적용하여 모든 쿠키의 하위 집합을 검사할 수 있습니다.

이 옵션에 대해 다음 사양을 제공합니다.
+ **일치 패턴** - 검사할 쿠키의 하위 집합을 가져오는 데 사용하는 필터입니다. AWS WAF 는 쿠키 키에서 이러한 패턴을 찾습니다.

  일치 패턴 설정은 다음 중 하나일 수 있습니다.
  + **모두** — 모든 키를 일치시킵니다. 모든 쿠키의 규칙 검사 기준을 평가합니다.
  + **제외된 쿠키** – 여기에 지정된 문자열과 키가 일치하지 않는 쿠키만 검사합니다. 키의 문자열 일치는 대소문자를 구분하며 정확해야 합니다.
  + **포함된 쿠키** – 여기에 지정된 문자열 중 하나와 일치하는 키가 있는 쿠키만 검사합니다. 키의 문자열 일치는 대소문자를 구분하며 정확해야 합니다.
+ **일치 범위** - 규칙 검사 기준에 따라 검사 AWS WAF 해야 하는 쿠키의 부분입니다. 키와 값 둘 다에 대해 **키**, **값** 또는 **모두**를 지정할 수 있습니다.

  **모두**의 경우 키와 값에 모두 일치 항목을 찾아야 할 필요는 없습니다. 일치하는 키 또는 값을 찾거나 둘 다 일치하는 항목을 찾으면 됩니다. 키와 값이 일치하도록 하려면 논리 `AND` 문을 사용하여 키를 검사하는 규칙 하나와 값을 검사하는 규칙 하나, 이렇게 두 가지 일치 규칙을 결합합니다.
+ **과대 처리** - AWS WAF 가에서 검사 AWS WAF 할 수 있는 것보다 큰 쿠키 데이터가 있는 요청을 처리하는 방법.는 요청 쿠키의 최대 처음 8KB(8,192바이트)와 최대 처음 200개의 쿠키를 AWS WAF 검사할 수 있습니다. 콘텐츠는 첫 번째 한도에 도달할 AWS WAF 때까지 검사할 수 있습니다. 검사를 계속하거나 검사를 건너뛰고 요청을 규칙과 일치하거나 일치하지 않는 것으로 표시할 수 있습니다. 과대 콘텐츠 처리에 대한 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 섹션을 참조하세요.

## URI 조각
<a name="waf-rule-statement-request-component-uri-fragment"></a>

**참고**  
URI 조각 검사는 CloudFront 배포 및 Application Load Balancer에서만 사용할 수 있습니다.

“\$1” 기호 뒤에 오는 URL의 부분을 검사하여 \$1section2와 같은 리소스에 대한 추가 정보를 제공합니다. 자세한 내용은 [Uniform Resource Identifier(URI): Generic Syntax](https://tools.ietf.org/html/rfc3986#section-3) 섹션을 참조하세요.

이 옵션과 함께 텍스트 변환을 사용하지 않는 경우 AWS WAF 는 URI 조각을 정규화하지 않고 요청에서 클라이언트로부터 수신하는 그대로 검사합니다. 텍스트 변환에 대한 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 섹션을 참조하세요.

**규칙 문 요구 사항**  
이 규칙 문에 대한 폴백 동작을 제공해야 합니다. 폴백 동작은 URI에 조각이 없거나 연결된 서비스가 Application Load Balancer 또는 CloudFront가 아닌 경우 웹 요청에 할당 AWS WAF 하려는 일치 상태입니다. 일치하도록 선택하면는 요청을 규칙 문과 일치하는 것으로 AWS WAF 처리하고 요청에 규칙 작업을 적용합니다. 일치하지 않도록 선택하면는 요청을 규칙 문과 일치하지 않는 것으로 AWS WAF 처리합니다.

## URI 경로
<a name="waf-rule-statement-request-component-uri-path"></a>

리소스를 식별하는 URL의 부분을 검사합니다(예: `/images/daily-ad.jpg`). 자세한 내용은 [Uniform Resource Identifier(URI): Generic Syntax](https://tools.ietf.org/html/rfc3986#section-3) 섹션을 참조하세요.

이 옵션과 함께 텍스트 변환을 사용하지 않는 경우 AWS WAF 는 URI를 정규화하지 않고 요청에서 클라이언트로부터 수신하는 그대로 검사합니다. 텍스트 변환에 대한 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 섹션을 참조하세요.

## JA3 지문
<a name="waf-rule-statement-request-component-ja3-fingerprint"></a>

요청의 JA3 지문을 검사합니다.

**참고**  
JA3 지문 검사는 Amazon CloudFront 배포 및 Application Load Balancer에서만 사용할 수 있습니다.

JA3 자문은 수신 요청의 TLS 클라이언트 Hello에서 파생된 32자 해시입니다. 이 지문은 클라이언트의 TLS 구성에 대한 고유 식별자 역할을 합니다.는 AWS WAF 계산에 충분한 TLS 클라이언트 Hello 정보가 있는 각 요청에 대해이 지문을 계산하고 기록합니다. 거의 모든 웹 요청에는 이 정보가 포함됩니다.

**클라이언트용 JA3 지문을 가져오는 방법**  
보호 팩(웹 ACL) 로그에서 클라이언트 요청에 대한 JA3 지문을 얻을 수 있습니다. AWS WAF 가 지문을 계산할 수 있는 경우 로그에 포함됩니다. 로깅 필드에 대한 자세한 내용은 [보호 팩(웹 ACL) 트래픽에 대한 로그 필드](logging-fields.md) 섹션을 참조하세요.

**규칙 문 요구 사항**  
제공하는 문자열과 정확히 일치하도록 설정된 문자열 일치 문 내에서만 JA3 지문을 검사할 수 있습니다. 문자열 일치 문 사양의 로그에서 JA3 지문 문자열을 제공하여 동일한 TLS 구성을 갖는 향후 요청과 일치시킵니다. 문자열 일치 문에 대한 자세한 내용은 [문자열 일치 규칙 문](waf-rule-statement-type-string-match.md) 섹션을 참조하세요.

이 규칙 문에 대한 폴백 동작을 제공해야 합니다. 폴백 동작은가 JA3 지문을 계산할 수 없는 경우 AWS WAF 웹 요청에 할당 AWS WAF 하려는 일치 상태입니다. 일치시키도록 선택하면 AWS WAF 에서 요청을 규칙 문과 일치하는 것으로 처리하며 규칙 동작을 요청에 적용합니다. 일치하지 않도록 선택하면는 요청을 규칙 문과 일치하지 않는 것으로 AWS WAF 처리합니다.

이 일치 옵션을 사용하려면 보호 팩(웹 ACL) 트래픽을 기록해야 합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 단원을 참조하세요.

## JA4 지문
<a name="waf-rule-statement-request-component-ja4-fingerprint"></a>

요청의 JA4 지문을 검사합니다.

**참고**  
JA4 지문 검사는 Amazon CloudFront 배포 및 Application Load Balancer에서만 사용할 수 있습니다.

JA4 지문은 수신 요청의 TLS 클라이언트 Hello에서 파생된 36자 해시입니다. 이 지문은 클라이언트의 TLS 구성에 대한 고유 식별자 역할을 합니다. JA4 지문은 일부 브라우저의 고유 지문을 줄일 수 있는 JA3 지문의 확장입니다. AWS WAF 는 계산에 충분한 TLS Client Hello 정보가 있는 각 요청에 대해 이 지문을 계산하고 로깅합니다. 거의 모든 웹 요청에는 이 정보가 포함됩니다.

**클라이언트의 JA4 지문을 가져오는 방법**  
보호 팩(웹 ACL) 로그에서 클라이언트 요청에 대한 JA4 지문을 얻을 수 있습니다. AWS WAF 가 지문을 계산할 수 있는 경우 로그에 포함됩니다. 로깅 필드에 대한 자세한 내용은 [보호 팩(웹 ACL) 트래픽에 대한 로그 필드](logging-fields.md) 섹션을 참조하세요.

**규칙 문 요구 사항**  
제공한 문자열과 정확히 일치하도록 설정된 문자열 일치 문 내에서만 JA4 지문을 검사할 수 있습니다. 문자열 일치 문 사양의 로그에서 JA4 지문 문자열을 제공하여 TLS 구성이 동일한 향후 요청과 일치시킵니다. 문자열 일치 문에 대한 자세한 내용은 [문자열 일치 규칙 문](waf-rule-statement-type-string-match.md) 섹션을 참조하세요.

이 규칙 문에 대한 폴백 동작을 제공해야 합니다. 폴백 동작은가 JA4 지문을 계산할 수 없는 경우 AWS WAF 웹 요청에 할당 AWS WAF 하려는 일치 상태입니다. 일치시키도록 선택하면 AWS WAF 에서 요청을 규칙 문과 일치하는 것으로 처리하며 규칙 동작을 요청에 적용합니다. 일치하지 않도록 선택하면는 요청을 규칙 문과 일치하지 않는 것으로 AWS WAF 처리합니다.

이 일치 옵션을 사용하려면 보호 팩(웹 ACL) 트래픽을 기록해야 합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 단원을 참조하세요.

## 쿼리 문자열
<a name="waf-rule-statement-request-component-query-string"></a>

`?` 문자(있는 경우) 뒤에 나타나는 URL의 부분을 검사합니다.

**참고**  
사이트 간 스크립팅 일치 명령문의 경우 **쿼리 문자열** 대신 **모든 쿼리 파라미터**를 선택하는 것이 좋습니다. **모든 쿼리 파라미터**를 선택하면 기본 비용에 WCU 10개가 추가됩니다.

## 단일 쿼리 파라미터
<a name="waf-rule-statement-request-component-single-query-param"></a>

쿼리 문자열의 일부로 정의한 단일 쿼리 파라미터를 검사합니다. 지정한 파라미터의 값을 AWS WAF 검사합니다.

이 옵션의 경우 **쿼리 인수**도 지정합니다. 예를 들어 URL이 `www.xyz.com?UserName=abc&SalesRegion=seattle`인 경우 쿼리 인수로 `UserName` 또는 `SalesRegion`를 지정할 수 있습니다. 인수의 최대 길이는 30자입니다. 이름은 대소문자를 구분하지 않으므로 `UserName`을 지정하면 AWS WAF 는 `username` 및 `UsERName`을 포함한 `UserName`의 모든 변형과 일치합니다.

쿼리 문자열에 지정한 쿼리 인수의 인스턴스가 두 개 이상 포함된 경우 OR는 로직을 사용하여 일치하는 모든 값을 AWS WAF 검사합니다. 예를 들어 URL `www.xyz.com?SalesRegion=boston&SalesRegion=seattle`에서 AWS WAF 은 `boston` 및 `seattle`에 대해 지정한 이름을 평가합니다. 둘 중 하나가 일치하는 경우 검사는 일치입니다.

## 모든 쿼리 파라미터
<a name="waf-rule-statement-request-component-all-query-params"></a>

ㅌ요청의 모든 쿼리 파라미터를 검사합니다. 이는 단일 쿼리 파라미터 구성 요소 선택과 유사하지만 쿼리 문자열 내의 모든 인수 값을 AWS WAF 검사합니다. 예를 들어, URL이 `www.xyz.com?UserName=abc&SalesRegion=seattle`인 경우 AWS WAF 는 `UserName` 또는 `SalesRegion`의 값이 검사 기준과 일치하는 경우 일치를 트리거합니다.

이 옵션을 선택하면 기본 비용에 WCU 10개가 추가됩니다.

## 바디
<a name="waf-rule-statement-request-component-body"></a>

요청 본문을 일반 텍스트로 평가해 검사합니다. JSON 콘텐츠 유형을 사용하여 본문을 JSON으로 평가할 수도 있습니다.

요청 본문은 요청 헤더 바로 뒤에 오는 요청 부분입니다. 여기에는 웹 요청에 필요한 추가 데이터(예: 양식의 데이터)가 포함됩니다.
+ 콘솔의 **콘텐츠 유형** 옵션에서 **일반 텍스트**를 선택하여 **요청 옵션**에서 **본문**을 선택합니다.
+ API의 규칙 `FieldToMatch` 사양에서 요청 본문을 일반 텍스트로 검사하도록 `Body`를 지정합니다.

Application Load Balancer 및의 경우 요청 본문의 처음 8KB를 검사할 수 AWS AppSync AWS WAF 있습니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본적으로 AWS WAF 는 처음 16KB를 검사할 수 있으며, 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 자세한 내용은 [에서 본문 검사 관리에 대한 고려 사항 AWS WAF](web-acl-setting-body-inspection-limit.md) 단원을 참조하십시오.

이 구성 요소 유형에 대한 과대 처리를 지정해야 합니다. 과대 처리는가 검사할 AWS WAF 수 있는 것보다 큰 본문 데이터가 있는 요청을가 AWS WAF 처리하는 방법을 정의합니다. 검사를 계속하거나 검사를 건너뛰고 요청을 규칙과 일치하거나 일치하지 않는 것으로 표시할 수 있습니다. 과대 콘텐츠 처리에 대한 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 섹션을 참조하세요.

또한 본문을 구문 분석된 JSON으로 평가할 수도 있습니다. 자세한 내용은 이어지는 섹션을 참조하세요.

## JSON 본문
<a name="waf-rule-statement-request-component-json-body"></a>

JSON으로 평가된 요청 본문을 검사합니다. 본문을 일반 텍스트로 평가할 수도 있습니다.

요청 본문은 요청 헤더 바로 뒤에 오는 요청 부분입니다. 여기에는 웹 요청에 필요한 추가 데이터(예: 양식의 데이터)가 포함됩니다.
+ 콘솔의 **콘텐츠 유형** 옵션에서 **JSON**을 선택하여 **요청 옵션**에서 **본문**을 선택합니다.
+ API의 규칙 `FieldToMatch` 사양에서 `JsonBody`를 지정합니다.

Application Load Balancer 및의 경우 요청 본문의 처음 8KB를 검사할 수 AWS AppSync AWS WAF 있습니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본적으로 AWS WAF 는 처음 16KB를 검사할 수 있으며, 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 자세한 내용은 [에서 본문 검사 관리에 대한 고려 사항 AWS WAF](web-acl-setting-body-inspection-limit.md) 단원을 참조하십시오.

이 구성 요소 유형에 대한 과대 처리를 지정해야 합니다. 과대 처리는가 검사할 AWS WAF 수 있는 것보다 큰 본문 데이터가 있는 요청을가 AWS WAF 처리하는 방법을 정의합니다. 검사를 계속하거나 검사를 건너뛰고 요청을 규칙과 일치하거나 일치하지 않는 것으로 표시할 수 있습니다. 과대 콘텐츠 처리에 대한 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 섹션을 참조하세요.

이 옵션을 선택하면 일치 문의 기본 비용 WCU가 두 배로 늘어납니다. 예를 들어 JSON 구문 분석을 사용하지 않는 일치 문 기본 비용이 5WCU인 경우 JSON 구문 분석을 사용하면 비용이 두 배가 되어 10WCU로 됩니다.

이 옵션의 경우 다음 섹션에 설명된 대로 추가 사양을 제공합니다.

**가 JSON 본문 검사를 AWS WAF 처리하는 방법**  
는 웹 요청 본문을 JSON으로 AWS WAF 검사할 때 본문을 구문 분석하고 검사를 위해 JSON 요소를 추출하는 단계를 수행합니다.는 구성 선택에 따라 이러한 단계를 AWS WAF 수행합니다.

다음은가 AWS WAF 수행하는 단계입니다.

1. **본문 콘텐츠 구문 분석** - AWS WAF 는 검사를 위해 JSON 요소를 추출하기 위해 웹 요청 본문의 콘텐츠를 구문 분석합니다.는 본문의 전체 콘텐츠를 구문 분석하는 데 최선을 AWS WAF 다하지만 콘텐츠의 다양한 오류 상태에 대해서는 구문 분석이 실패할 수 있습니다. 예시에는 잘못된 문자, 중복 키, 잘림 및 루트 노드가 객체 또는 배열이 아닌 콘텐츠가 있습니다.

   **본문 구문 분석 대체 동작** 옵션은 JSON 본문을 완전히 구문 분석하지 못하는 경우 수행할 AWS WAF 작업을 결정합니다.
   + **없음(기본 동작)** - 구문 분석 오류가 발생한 시점까지만 콘텐츠를 AWS WAF 평가합니다.
   + **문자열로 평가** - 본문을 일반 텍스트로 검사합니다.는 JSON 검사에 대해 정의한 텍스트 변환 및 검사 기준을 본문 텍스트 문자열에 AWS WAF 적용합니다.
   + **일치** - 웹 요청을 규칙 문과 일치하는 것으로 처리합니다.는 규칙 작업을 요청에 AWS WAF 적용합니다.
   + **일치하지 않음** - 웹 요청을 규칙 문과 일치하지 않는 것으로 처리합니다.
**참고**  
이 폴백 동작은에서 JSON 문자열을 구문 분석하는 동안 오류가 AWS WAF 발생할 때만 트리거됩니다.

**구문 분석으로 JSON이 완전히 검증되지 않음**  
AWS WAF 구문 분석은 입력 JSON 문자열을 완전히 검증하지 않으므로 잘못된 JSON에 대해서도 구문 분석이 성공할 수 있습니다.

   예를 들어,는 오류 없이 다음과 같은 잘못된 JSON을 AWS WAF 구문 분석합니다.
   + 쉼표 누락: `{"key1":"value1""key2":"value2"}`
   + 콜론 누락: `{"key1":"value1","key2""value2"}`
   + 추가 콜론: `{"key1"::"value1","key2""value2"}`

   구문 분석이 성공했지만 결과가 완전히 유효한 JSON이 아닌 것과 같은 경우 평가의 후속 단계의 결과가 달라질 수 있습니다. 추출에 일부 요소가 누락되거나 규칙 평가에서 예상치 못한 결과가 있을 수 있습니다. 애플리케이션에서 수신하는 JSON을 검증하고 필요에 따라 잘못된 JSON을 처리하는 것이 좋습니다.

1. **JSON 요소 추출** - 설정에 따라 검사할 JSON 요소의 하위 집합을 AWS WAF 식별합니다.
   + 옵션 **JSON 일치 범위는**가 검사 AWS WAF 해야 하는 JSON의 요소 유형을 지정합니다.

     키와 값 둘 다에 대해 **키**, **값** 또는 **모두**를 지정할 수 있습니다.

     **모두**의 경우 키와 값에 모두 일치 항목을 찾아야 할 필요는 없습니다. 일치하는 키 또는 값을 찾거나 둘 다 일치하는 항목을 찾으면 됩니다. 키와 값이 일치하도록 하려면 논리 `AND` 문을 사용하여 키를 검사하는 규칙 하나와 값을 검사하는 규칙 하나, 이렇게 두 가지 일치 규칙을 결합합니다.
   + **검사할 콘텐츠** 옵션은 요소 세트를 검사 AWS WAF 하려는 하위 집합으로 필터링하는 방법을 지정합니다.

     다음 중 하나를 지정해야 합니다.
     + **전체 JSON 콘텐츠** - 모든 요소를 평가합니다.
     + **포함된 요소만** - 제공한 JSON 포인터 기준과 경로가 일치하는 요소만 평가합니다. JSON에 *모든* 경로를 포함하려면 이 옵션을 사용하지 마세요. 대신 **전체 JSON 콘텐츠**를 사용합니다.

       JSON 포인터 구문에 대한 자세한 내용을 알아보려면 Internet Engineering Task Force(IETF) 설명서 [JavaScript Object Notation (JSON) Pointer](https://tools.ietf.org/html/rfc6901)(JavaScript 객체 표기법(JSON) 포인터)를 참조하세요.

       예를 들어, 콘솔에서 다음을 제공할 수 있습니다.

       ```
       /dogs/0/name
       /dogs/1/name
       ```

       API 또는 CLI에서 다음을 제공할 수 있습니다.

       ```
       "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
       ```

   예를 들어 **검사할 콘텐츠** 설정이 **요소만 포함**되고 포함된 요소 설정이 `/a/b`이라고 가정해 보겠습니다.

   다음 예시 JSON 본문의 경우: 

   ```
   { 
     "a":{
       "c":"d",
       "b":{
         "e":{
           "f":"g"
         }
       }
     }
   }
   ```

   각 **JSON 일치 범위** 설정을 AWS WAF 검사할 요소 세트는 아래에 나열되어 있습니다. 포함된 요소 경로의 일부인 `b` 키는 평가되지 않는다는 점에 유의하세요.
   + **모두**: `e`, `f,`, `g`.
   + **키**: `e` 및 `f`.
   + **값**: `g`.

1. **JSON 요소 세트 검사** - 추출된 JSON 요소에 지정한 텍스트 변환을 AWS WAF 적용한 다음 결과 요소 세트를 규칙 문의 일치 기준과 일치시킵니다. 이는 다른 웹 요청 구성 요소와 동일한 변환 및 평가 동작입니다. 추출된 JSON 요소 중 하나라도 일치하면 웹 요청이 규칙과 일치하는 것입니다.

# 에서 전달된 IP 주소 사용 AWS WAF
<a name="waf-rule-statement-forwarded-ip-address"></a>

이 섹션은 웹 요청의 IP 주소를 사용하는 규칙 설명에 적용됩니다. 기본적으로는 웹 요청 오리진의 IP 주소를 AWS WAF 사용합니다. 웹 요청이 하나 이상의 프록시 또는 로드 밸런서를 통과할 경우 웹 요청 오리진에는 클라이언트의 최초 주소가 아닌 마지막 프록시의 주소가 포함됩니다. 이 경우 발신 클라이언트 주소는 일반적으로 다른 HTTP 헤더를 통해 전달됩니다. 이 헤더는 일반적으로 `X-Forwarded-For`(XFF)지만 다른 헤더일 수도 있습니다.

**IP 주소를 사용하는 규칙 문**  
IP 주소를 사용하는 규칙 문은 다음과 같습니다.
+ [IP 집합 일치](waf-rule-statement-type-ipset-match.md) - IP 주소가 IP 집합에 정의된 주소와 일치하는지 검사합니다.
+ [지리적 일치](waf-rule-statement-type-geo-match.md)- IP 주소를 사용하여 오리진 국가 및 리전을 결정하고 오리진 국가를 국가 목록과 비교합니다.
+ [ASN 일치](waf-rule-statement-type-asn-match.md) - IP 주소를 사용하여 Autonomous System Number(ASN)를 확인하고 ASN을 ASN의 목록과 일치시킵니다
+ [속도 기반 규칙 문 사용](waf-rule-statement-type-rate-based.md) - 개별 IP 주소가 너무 높은 속도로 요청을 보내지 않도록 IP 주소별로 요청을 집계할 수 있습니다. IP 주소 집계를 단독으로 사용하거나 다른 집계 키와 함께 사용할 수 있습니다.

웹 요청의 오 AWS WAF 리진을 사용하는 대신 헤더 또는 다른 HTTP `X-Forwarded-For` 헤더에서 이러한 규칙 문에 전달된 IP 주소를 사용하도록에 지시할 수 있습니다. 사양을 제공하는 방법에 대한 자세한 내용은 개별 규칙 문 유형에 대한 지침을 참조하세요.

**참고**  
헤더가 누락된 경우는 해당 헤더를 "일치 없음"으로 사용하는 문을 AWS WAF 평가합니다. "일치 없음" 결과가 있는 NOT 문을 사용하는 경우는 평가를 "일치"로 AWS WAF 변환합니다. 누락된 헤더는 대체 동작을 트리거하지 않으며 잘못된 헤더 값만 트리거합니다.

**폴백 동작**  
전달된 IP 주소를 사용하는 경우 요청에 지정된 위치에 유효한 IP 주소가 없는 경우가 웹 요청에 AWS WAF 할당할의 일치 상태를 나타냅니다.
+ **일치** - 웹 요청을 규칙 문과 일치하는 것으로 처리합니다.는 규칙 작업을 요청에 AWS WAF 적용합니다.
+ **일치하지 않음** - 웹 요청을 규칙 문과 일치하지 않는 것으로 처리합니다.

**AWS WAF Bot Control에 사용되는 IP 주소**  
Bot Control 관리형 규칙 그룹은의 IP 주소를 사용하여 봇을 확인합니다 AWS WAF. Bot Control을 사용하고 프록시나 로드 밸런서를 통해 라우팅되는 봇을 확인한 경우 사용자 지정 규칙을 사용하여 봇을 명시적으로 허용해야 합니다. 예를 들어, 전달된 IP 주소를 사용하여 확인된 봇을 탐지하고 허용하는 사용자 지정 IP 집합 일치 규칙을 구성할 수 있습니다. 규칙을 사용하여 다양한 방식으로 봇 관리를 사용자 지정할 수 있습니다. 자세한 내용 및 예제는 [AWS WAF 봇 제어](waf-bot-control.md) 섹션을 참조하세요.

**전달된 IP 주소 사용에 대한 일반 고려 사항**  
전달된 IP 주소를 사용하기 전에 다음과 같은 일반적인 주의 사항을 참고하십시오.
+ 헤더는 과정 중에 프록시를 통해 수정될 수 있으며, 프록시는 다양한 방식으로 헤더를 처리할 수 있습니다.
+ 공격자가 AWS WAF 검사를 우회하기 위해 헤더의 내용을 변경할 수 있습니다.
+ 헤더 내 IP 주소는 형식이 잘못되었거나 유효하지 않을 수 있습니다.
+ 지정한 헤더가 요청에 전혀 없을 수도 있습니다.

**에서 전달된 IP 주소 사용 시 고려 사항 AWS WAF**  
다음 목록은 AWS WAF에서 전달된 IP 주소를 사용하기 위한 요구 사항 및 주의 사항을 설명합니다.
+ 단일 규칙의 경우 전달된 IP 주소에 헤더 하나를 지정할 수 있습니다. 헤더 사양은 대/소문자를 구분하지 않습니다.
+ 속도 기반 규칙 문의 경우 중첩된 범위 지정 문이 전달된 IP 구성을 상속하지 않습니다. 전달된 IP 주소를 사용하는 각 명령문의 구성을 지정하십시오.
+ 지리적 일치, ASN 일치 및 속도 기반 규칙의 경우 헤더의 첫 번째 주소를 AWS WAF 사용합니다. 예를 들어 헤더에이 포함된 경우 `10.1.1.1, 127.0.0.0, 10.10.10.10` AWS WAF 는 `10.1.1.1`
+ IP 집합 일치의 경우, 헤더의 첫 번째 주소, 마지막 주소 또는 임의 주소와 일치시킬지 여부를 지정합니다. 지정한 경우는 헤더의 모든 주소를 AWS WAF 검사하여 일치하는 주소를 최대 10개까지 검사합니다. 헤더에 10개 이상의 주소가 포함된 경우는 마지막 10개를 AWS WAF 검사합니다.
+ 주소가 여러 개 포함된 헤더는 주소 사이에 쉼표 구분 기호를 사용해야 합니다. 요청에 쉼표 이외의 구분자를 사용하는 경우 AWS WAF 는 헤더의 IP 주소 형식을 잘못된 것으로 간주합니다.
+ 헤더 내의 IP 주소 형식이 잘못되었거나 유효하지 않은 경우 AWS WAF 는 사용자가 전달된 IP 구성에 지정하는 폴백 동작에 따라 웹 요청을 규칙과 일치하거나 일치하지 않는 것으로 지정합니다.
+ 지정한 헤더가 요청에 없는 경우 AWS WAF 는 요청에 규칙을 전혀 적용하지 않습니다. 즉, AWS WAF 는 규칙 작업을 적용하지 않고 대체 동작을 적용하지 않습니다.
+ IP 주소에 대해 전달된 IP 헤더를 사용하는 규칙 문은 웹 요청 오리진에서 보고하는 IP 주소를 사용하지 않습니다.

**에서 전달된 IP 주소를 사용하는 모범 사례 AWS WAF**  
전달된 IP 주소를 사용하는 경우 다음 모범 사례를 따르십시오.
+ 전달된 IP 구성을 활성화하기 전에 요청 헤더의 가능한 모든 상태를 신중하게 고려하십시오. 원하는 동작을 얻기 위해 둘 이상의 규칙을 사용해야 할 수도 있습니다.
+ 여러 개의 전달된 IP 헤더를 검사하거나 웹 요청 오리진 및 전달된 IP 헤더를 검사하려면 각 IP 주소 소스에 대해 하나의 규칙을 사용하십시오.
+ 유효하지 않은 헤더를 포함하는 웹 요청을 차단하려면 규칙 작업을 차단으로 설정하고 전달된 IP 구성의 폴백 동작을 일치시키도록 설정하십시오.

**전달된 IP 주소에 대한 JSON 예제**  
다음 지역 일치문은 오리진 국가가 `US`인 IP만 `X-Forwarded-For` 헤더에 포함되는 경우에 일치합니다.

```
{
  "Name": "XFFTestGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestGeo"
  },
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ],
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

다음 속도 기반 규칙은 `X-Forwarded-For` 헤더의 첫 번째 IP를 기준으로 요청을 집계합니다. 규칙은 중첩된 지역 일치 문과 일치하는 요청 수만 계산하고 리전 일치 문과 일치하는 요청만 차단합니다. 또한 중첩된 지역 일치문은 `X-Forwarded-For` 헤더를 사용하여 IP 주소에 오리진 국가로 `US`가 표시되는지 여부를 결정합니다. 이 경우 또는 헤더가 있지만 형식이 잘못된 경우 지역 일치 문에서 일치하는 항목을 반환합니다.

```
{
  "Name": "XFFTestRateGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestRateGeo"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": "100",
      "AggregateKeyType": "FORWARDED_IP",
      "ScopeDownStatement": {
        "GeoMatchStatement": {
          "CountryCodes": [
            "US"
          ],
          "ForwardedIPConfig": {
            "HeaderName": "x-forwarded-for",
            "FallbackBehavior": "MATCH"
          }
        }
      },
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

# 에서 HTTP/2 의사 헤더 검사 AWS WAF
<a name="waf-rule-statement-request-components-for-http2-pseudo-headers"></a>

이 섹션에서는 AWS WAF 를 사용하여 HTTP/2 의사 헤더를 검사하는 방법을 설명합니다.

HTTP/2 트래픽을 지원하는 보호된 AWS 리소스는 검사를 AWS WAF 위해 HTTP/2 의사 헤더를에 전달하지 않지만가 AWS WAF 검사하는 웹 요청 구성 요소에 의사 헤더의 콘텐츠를 제공합니다.

 AWS WAF 를 사용하여 다음 표에 나열된 의사 헤더만 검사할 수 있습니다.


**웹 요청 구성 요소로 매핑된 HTTP/2 의사 헤더 콘텐츠**  

| HTTP/2 의사 헤더 | 검사할 웹 요청 구성 요소 | 설명서 | 
| --- | --- | --- | 
|  `:method`  |  HTTP 메서드   |  [HTTP 메서드](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)  | 
|  `:authority`  |  `Host` 헤더   |  [단일 헤더](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)  [모든 헤더](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)  | 
|  `:path` URI 경로  | URI 경로  | [URI 경로](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path) | 
|  `:path` 쿼리  |  쿼리 문자열  |  [쿼리 문자열](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string) [단일 쿼리 파라미터](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param) [모든 쿼리 파라미터](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)  | 

# 에서 텍스트 변환 사용 AWS WAF
<a name="waf-rule-statement-transformation"></a>

이 섹션에서는 요청을 검사하기 전에 AWS WAF 가 적용할 변환을 제공하는 방법을 설명합니다.

패턴을 찾거나 제약 조건을 설정하는 문에서 요청을 검사하기 전에 AWS WAF 가 적용할 변환을 제공할 수 있습니다. 변환은 공격자가 AWS WAF를 우회하기 위해 사용하는 일부 비정상적인 서식을 제거하기 위해 웹 요청을 다시 포맷합니다.

이 옵션을 JSON 본문 요청 구성 요소 선택과 함께 사용하는 경우 AWS WAF 는 JSON에서 검사할 요소를 구문 분석하고 추출한 후 변환을 적용합니다. 자세한 내용은 [JSON 본문](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body) 단원을 참조하십시오.

하나 이상의 변환을 제공하는 경우 AWS WAF 에서 변환을 적용하는 순서도 설정합니다.

**WCU** – 각 텍스트 변환은 10WCU입니다.

 AWS WAF 콘솔 및 API 설명서는 다음 위치에서 이러한 설정에 대한 지침도 제공합니다.
+ 콘솔의 **규칙 빌더** - **텍스트 변환**. 이 옵션은 요청 구성 요소를 사용할 때 제공됩니다.
+ **API 문 내용** – `TextTransformations`텍스트 변환을 위한 옵션

각 변환 목록에는 콘솔 및 API 사양과 뒤 이어 설명이 표시됩니다.

Base64 decode – `BASE64_DECODE`  
AWS WAF 는 Base64-encoded 문자열을 디코딩합니다.

Base64 decode extension – `BASE64_DECODE_EXT`  
AWS WAF 는 Base64-encoded 문자열을 디코딩하지만 유효하지 않은 문자를 무시하는 관대한 구현을 사용합니다.

Command line – `CMD_LINE`  
이 옵션은 공격자가 운영 체제 명령줄 명령을 삽입하고 명령의 일부 또는 전부를 위장하기 위해 비정상적인 형식을 사용하는 상황을 완화합니다.  
이 옵션을 사용하여 다음 변환을 수행합니다.  
+ 다음 문자 삭제: `\ " ' ^`
+ 다음 문자 앞에 있는 공백 삭제: `/ (`
+ 다음 문자를 공백으로 바꿈: `, ;`
+ 여러 개의 공백을 하나의 공백으로 바꿈
+ 대문자 `A-Z`을 소문자 `a-z`로 변환

Compress whitespace – `COMPRESS_WHITE_SPACE`  
AWS WAF 는 여러 공백을 하나의 공백으로 바꾸고 다음 문자를 공백 문자(ASCII 32)로 바꾸어 공백을 압축합니다.  
+ 폼피드(ASCII 12)
+ 탭(ASCII 9)
+ 새줄(ASCII 10)
+ 캐리지 리턴(ASCII 13)
+ 세로 탭(ASCII 11)
+ 줄 바꿈하지 않는 공백(ASCII 160)

CSS decode – `CSS_DECODE`  
AWS WAF 는 CSS 2.x 이스케이프 규칙를 사용하여 인코딩된 문자를 디코딩합니다`syndata.html#characters`. 이 함수는 디코딩 프로세스에서 최대 2바이트를 사용하므로 일반적으로 인코딩되지 않는 CSS 인코딩을 사용하여 인코딩된 ASCII 문자를 찾는 데 도움이 될 수 있습니다. 또한 백슬래시와 16진수가 아닌 문자의 조합인 회피를 방지하는 데 유용합니다. 예를 들어 `javascript`의 경우 `ja\vascript`입니다.

Escape sequences decode – `ESCAPE_SEQ_DECODE`  
AWS WAF 는 ANSI C 이스케이프 시퀀스 `\a`, , `\b`, `\f`, `\n`, `\r`, `\t`, `\\`, `\v``\?`, `\'`, `\"`, `\xHH` (16진수), `\0OOO` (8진수)를 디코딩합니다. 유효하지 않은 인코딩은 출력에 남아 있습니다.

Hex decode – `HEX_DECODE`  
AWS WAF 는 16진수 문자의 문자열을 바이너리로 디코딩합니다.

HTML entity decode – `HTML_ENTITY_DECODE`  
AWS WAF 는 16진수 형식 `&#xhhhh;` 또는 10진수 형식으로 표시되는 문자를 해당 문자`&#nnnn;`로 바꿉니다.  
AWS WAF 는 다음 HTML 인코딩 문자를 인코딩되지 않은 문자로 바꿉니다. 이 목록은 `&QuOt;` 예시처럼 소문자 HTML 인코딩을 사용하지만 처리는 대소문자를 구분하지 않으며 `&quot;`는 동일하게 처리됩니다.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/waf-rule-statement-transformation.html)

JS decode – `JS_DECODE`  
AWS WAF 는 JavaScript 이스케이프 시퀀스를 디코딩합니다. `\uHHHH` 코드가 `FF01-FF5E`의 전폭 ASCII 코드 범위에 있으면 상위 바이트를 사용하여 하위 바이트를 감지하고 조정합니다. 그렇지 않으면 하위 바이트만 사용되고 상위 바이트는 0이 되어 정보가 손실될 수 있습니다.

Lowercase – `LOWERCASE`  
AWS WAF 는 대문자(A\$1Z)를 소문자(a\$1z)로 변환합니다.

MD5 – `MD5`  
AWS WAF 는 입력의 데이터에서 MD5 해시를 계산합니다. 계산된 해시는 원시 이진 형식입니다.

None – `NONE`  
AWS WAF 는 텍스트 변환 없이 수신된 웹 요청을 검사합니다.

Normalize path – `NORMALIZE_PATH`  
AWS WAF 는 입력 시작 부분에 없는 여러 슬래시, 디렉터리 자체 참조 및 디렉터리 역참조를 제거하여 입력 문자열을 정규화합니다.

Normalize path Windows – `NORMALIZE_PATH_WIN`  
AWS WAF 는 백슬래시 문자를 슬래시로 변환한 다음 `NORMALIZE_PATH` 변환을 사용하여 결과 문자열을 처리합니다.

Remove nulls – `REMOVE_NULLS`  
AWS WAF 는 입력에서 모든 `NULL`바이트를 제거합니다.

Replace comments – `REPLACE_COMMENTS`  
AWS WAF 는 C 스타일 설명(/\$1 ... \$1/)의 각 발생을 단일 공백으로 바꿉니다. 연속으로 여러 번 나타나는 주석은 압축하지 않습니다. 종료되지 않은 주석도 공백(ASCII 0x20)으로 대체합니다. 주석(\$1/)의 독립형 종료는 변경되지 않습니다.

Replace nulls – `REPLACE_NULLS`  
AWS WAF 는 입력의 각 `NULL` 바이트를 공백 문자(ASCII 0x20)로 바꿉니다.

SQL hex decode – `SQL_HEX_DECODE`  
AWS WAF 는 SQL 16진수 데이터를 디코딩합니다. 예를 들어 (`0x414243`)를 ()로 AWS WAF 디코딩합니다`ABC`.

URL decode – `URL_DECODE`  
AWS WAF 는 URL로 인코딩된 값을 디코딩합니다.

URL decode Unicode – `URL_DECODE_UNI`  
`URL_DECODE`와 비슷하지만 Microsoft 고유의 `%u` 인코딩을 지원합니다. 코드가 `FF01-FF5E`의 전폭 ASCII 코드 범위에 있으면 상위 바이트를 사용하여 하위 바이트를 감지하고 조정합니다. 그렇지 않으면 하위 바이트만 사용되며 상위 바이트는 0이 됩니다.

UTF8 to Unicode – `UTF8_TO_UNICODE`  
AWS WAF 는 모든 UTF-8 문자 시퀀스를 유니코드로 변환합니다. 이는 입력을 정규화하고 영어가 아닌 언어에 대한 거짓 긍정 및 거짓 부정 최소화하는데 도움이 됩니다.

# 에서 범위 축소 문 사용 AWS WAF
<a name="waf-rule-scope-down-statements"></a>

이 섹션에서는 범위 축소 문이 무엇이고 어떻게 작동하는지를 설명합니다.

범위 축소 문은 관리형 규칙 그룹 문 또는 속도 기반 문 안에 추가하여 포함 규칙이 평가하는 요청 집합의 범위를 좁힐 수 있는 중첩 가능한 규칙 문입니다. 포함 규칙은 범위 축소 문과 처음 일치하는 요청만 평가합니다.
+ **관리형 규칙 그룹 문** - 관리형 규칙 그룹 문에 범위 축소 문을 추가하는 경우는 범위 축소 문과 일치하지 않는 모든 요청을 규칙 그룹과 일치하지 않는 것으로 AWS WAF 평가합니다. 범위 축소 문과 일치하는 요청만 규칙 그룹에 대해 평가됩니다. 평가되는 요청 수에 기반하여 요금이 적용되는 관리형 규칙 그룹의 경우 범위 축소 문을 사용하면 비용을 절감할 수 있습니다.

  관리형 규칙 그룹 문에 대한 자세한 내용은 [에서 관리형 규칙 그룹 문 사용 AWS WAF](waf-rule-statement-type-managed-rule-group.md) 섹션을 참조하세요.
+ **속도 기반 규칙 문** - 범위 축소 문 속도를 사용하지 않는 속도 기반 규칙 문이 규칙에서 평가하는 모든 요청을 제한합니다. 특정 범주의 요청에 대한 속도만 제어하려면 속도 기반 규칙에 범위 축소 문을 추가하십시오. 예를 들어 특정 지리적 영역의 요청 속도만 추적하고 제어하려면 지리적 일치 문에 해당 리전을 지정하고 이를 속도 기반 규칙에 범위 축소 문으로 추가할 수 있습니다.

  속도 기반 규칙 문에 대한 자세한 내용은 [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md) 섹션을 참조하세요.

범위 축소 문에서는 중첩 규칙을 사용할 수 있습니다. 사용 가능한 명령문을 보려면 [에서 일치 규칙 문 사용 AWS WAF](waf-rule-statements-match.md) 및 [에서 논리적 규칙 문 사용 AWS WAF](waf-rule-statements-logical.md) 섹션을 참조하세요. 범위 축소 문에 대한 WCU는 그 안에 정의되는 규칙 문에 필요한 WCU입니다. 범위 축소 문 사용에 대한 추가 비용이 없습니다.

일반 규칙에서 명령문을 사용할 때와 같은 방식으로 범위 축소 문을 구성할 수 있습니다. 예를 들어 검사 중인 웹 요청 구성 요소에 텍스트 변환을 적용하고 IP 주소로 사용할 전달된 IP 주소를 지정할 수 있습니다. 이러한 구성은 범위 축소 문에만 적용되며 포함되는 관리형 규칙 그룹 또는 속도 기반 규칙 문에는 상속되지 않습니다.

예를 들어, 범위 축소 문의 쿼리 문자열에 텍스트 변환을 적용하는 경우 범위 축소 문은 변환을 적용한 후 쿼리 문자열을 검사합니다. 요청이 범위 축소 문 기준과 일치하면 AWS WAF 는 범위 축소 문의 변환 없이 원래 상태의 포함 규칙에 웹 요청을 전달합니다. 범위 축소 문을 포함하는 규칙은 자체적으로 텍스트 변환을 적용할 수 있지만 범위 축소 문에서 어떠한 것도 상속하지는 않습니다.

범위 축소 문을 사용하여 포함 규칙 문에 대한 어떠한 요청 검사 구성도 지정할 수 없습니다. 범위 축소 문을 포함 규칙 명령문의 웹 요청 프리프로세서로 사용할 수 없습니다. 범위 축소 문의 유일한 역할은 검사를 위해 포함 규칙 문에 전달되는 요청을 결정하는 것입니다.

# 에서 재사용 가능한 엔터티 참조 AWS WAF
<a name="waf-rule-statement-reusable-entities"></a>

이 섹션에서는 재사용 가능한 엔터티가 AWS WAF에서 작동하는 방식을 설명합니다.

일부 규칙은 재사용 가능하고 사용자 AWS또는 AWS Marketplace 판매자가 웹 ACLs 외부에서 관리하는 엔터티를 사용합니다. 재사용 가능한 엔터티가 업데이트되면 AWS WAF 은 해당 업데이트를 규칙에 전파합니다. 예를 들어 보호 팩(웹 ACL)에서 AWS 관리형 규칙 규칙 그룹을 사용하는 경우가 규칙 그룹을 AWS 업데이트하면가 웹 ACL에 변경 사항을 AWS 전파하여 동작을 업데이트합니다. 규칙에서 IP 집합 문을 사용하는 경우 집합을 업데이트하면가 해당 집합을 참조하는 모든 규칙에 변경 사항을 AWS WAF 전파하므로 해당 규칙을 사용하는 모든 보호 팩(웹 ACLs)은 변경 사항과 함께 up-to-date 유지됩니다.

다음은 규칙 문에서 사용할 수 있는 재사용 가능한 엔터티입니다.
+ **IP 집합** – 자체 IP 집합을 생성하고 관리합니다. 콘솔의 탐색 창에서 이러한 항목에 액세스할 수 있습니다. IP 집합 관리에 대한 자세한 내용은 [의 IP 세트 및 정규식 패턴 세트 AWS WAF](waf-referenced-set-managing.md) 단원을 참조하세요.
+ **정규식 일치 집합** – 자체 정규식 일치 집합을 생성 및 관리합니다. 콘솔의 탐색 창에서 이러한 항목에 액세스할 수 있습니다. 정규식 패턴 집합 관리에 대한 자세한 내용은 [의 IP 세트 및 정규식 패턴 세트 AWS WAF](waf-referenced-set-managing.md) 단원을 참조하세요.
+ **AWS 관리형 규칙 규칙 그룹** - 이러한 규칙 그룹을 AWS 관리합니다. 콘솔에서 관리형 규칙 그룹을 보호 팩(웹 ACL)에 추가할 때 사용할 수 있습니다. 이에 대한 자세한 내용은 [AWS 관리형 규칙 규칙 그룹 목록](aws-managed-rule-groups-list.md) 단원을 참조하세요.
+ **AWS Marketplace 관리형 규칙 그룹** - AWS Marketplace 판매자는 이러한 규칙 그룹을 관리하며 사용자는 이를 구독하여 사용할 수 있습니다. 구독을 관리하려면 콘솔의 탐색 창에서 **AWS Marketplace**을 선택합니다. AWS Marketplace 관리형 규칙 그룹은 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가할 때 나열됩니다. 아직 구독하지 않은 규칙 그룹의 경우 해당 페이지에서에 AWS Marketplace 대한 링크도 찾을 수 있습니다. AWS Marketplace 판매자 관리형 규칙 그룹에 대한 자세한 내용은 섹션을 참조하세요[AWS Marketplace 규칙 그룹](marketplace-rule-groups.md).
+ **자체 규칙 그룹** – 일반적으로 관리형 규칙 그룹을 통해 사용할 수 없는 일부 동작이 필요한 경우에 자체 규칙 그룹을 관리합니다. 콘솔의 탐색 창에서 이러한 항목에 액세스할 수 있습니다. 자세한 내용은 [자체 규칙 그룹 관리](waf-user-created-rule-groups.md) 단원을 참조하십시오.

**참조된 집합 또는 규칙 그룹 삭제**  
참조된 개체를 삭제하면가 현재 보호 팩(웹 ACL)에서 사용 중인지 AWS WAF 확인합니다. 가 사용 중임을 AWS WAF 발견하면 경고합니다. AWS WAF 는 거의 항상 개체가 보호 팩(웹 ACL)에서 참조되고 있는지 확인할 수 있습니다. 그러나 드문 경우이지만 그렇게 하지 못할 수도 있습니다. 삭제하려는 엔터티가 사용 중인지 확인해야 하는 경우 삭제하기 전에 웹 ACL에서 해당 엔터티를 확인합니다.

# 에서 일치 규칙 문 사용 AWS WAF
<a name="waf-rule-statements-match"></a>

이 섹션에서는 일치 문이 무엇이고 어떻게 작동하는지 설명합니다.

일치 문은 웹 요청이나 그 출처를 사용자가 제공하는 기준과 비교합니다. 이 유형의 많은 문에 대해는 일치하는 콘텐츠에 대한 요청의 특정 구성 요소를 AWS WAF 비교합니다.

일치 문은 중첩할 수 있습니다. 이러한 명령문을 논리적 규칙 문 안에 중첩하여 범위 축소 문에서 사용할 수 있습니다. 논리적 규칙 문에 대한 자세한 내용은 [에서 논리적 규칙 문 사용 AWS WAF](waf-rule-statements-logical.md) 섹션을 참조하세요. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.

이 표에서는 규칙에 추가할 수 있는 정규식 일치 문에 대해 설명하고 각각에 대한 보호 팩(웹 ACL) 용량 단위(WCU) 사용량을 계산하기 위한 몇 가지 지침을 제공합니다. WCU에 대한 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 단원을 참조하세요.


| 일치 문 | 설명 | WCU | 
| --- | --- | --- | 
| [지리적 일치](waf-rule-statement-type-geo-match.md) | 요청의 오리진을 검사하고 오리진의 국가 및 리전에 대해 레이블을 적용합니다. | 1 | 
|  [ASN 일치](waf-rule-statement-type-asn-match.md)  |  IP 주소 및 주소 범위와 연결된 ASN에 대해 요청을 검사합니다.  |  1  | 
|  [IP 집합 일치](waf-rule-statement-type-ipset-match.md)  |  IP 주소 및 주소 범위 집합에 대해 요청을 검사합니다.  |  대부분의 경우 1입니다. 전달된 IP 주소가 있는 헤더를 사용하도록 명령문을 구성하고 Any의 헤더에 위치를 지정하는 경우 WCU를 4만큼 늘리십시오.  | 
|  [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md)  |  동일한 보호 팩(웹 ACL) 내 다른 규칙에 의해 추가된 레이블에 대한 요청을 검사합니다.  |  1   | 
| [정규식 일치 규칙 문](waf-rule-statement-type-regex-match.md) | 정규식 패턴을 지정된 요청 구성 요소와 비교합니다. | 3, 기본 비용으로. 요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.  | 
|  [정규식 패턴 집합](waf-rule-statement-type-regex-pattern-set-match.md)  |  정규식 패턴을 지정된 요청 구성 요소와 비교합니다.  |  패턴 집합당 25, 기본 비용으로. 요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.  | 
| [크기 제약 조건](waf-rule-statement-type-size-constraint-match.md) | 지정된 요청 구성 요소에 대해 크기 제약 조건을 검사합니다. | 1, 기본 비용으로. 요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.  | 
| [SQL 주입 공격](waf-rule-statement-type-sqli-match.md) | 지정된 요청 구성 요소에서 악성 SQL 코드를 검사합니다. | 20, 기본 비용으로.요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오. | 
| [문자열 일치](waf-rule-statement-type-string-match.md) | 문자열을 지정된 요청 구성 요소와 비교합니다. |  기본 비용은 1\$110으로, 문자열 일치 유형에 따라 달라집니다.요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.  | 
| [XSS 스크팁팅 공격](waf-rule-statement-type-xss-match.md) | 지정된 요청 구성 요소에서 사이트 간 스크립팅 공격을 검사합니다. | 40, 기본 비용으로.요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오. | 

# 지리적 일치 규칙 문
<a name="waf-rule-statement-type-geo-match"></a>

이 섹션에서는 지리적 일치 문이 무엇이고 어떻게 작동하는지를 설명합니다.

지리적 또는 지역 일치 문을 사용하여 오리진 국가 및 리전을 기반으로 웹 요청을 관리할 수 있습니다. 지역 일치 문은 웹 요청에 오리진 국가 및 리전을 나타내는 레이블을 추가합니다. 명령문 기준이 요청과 일치하는지 여부에 관계없이 이러한 레이블을 추가합니다. 또한 지역 일치 문은 요청의 오리진을 기준으로 일치를 수행합니다.

## 지역 일치 문 사용 방법
<a name="waf-rule-statement-geo-how-to-use"></a>

다음과 같이 국가 또는 리전 일치에 지역 일치 문을 사용할 수 있습니다.
+ **국가** - 지역 일치 규칙을 단독으로 사용하면 오리진 국가만을 기준으로 하여 요청을 관리할 수 있습니다. 규칙 문을 국가 코드와 비교하여 일치시킵니다. 오리진 국가 레이블과 일치하는 레이블 일치 규칙을 사용하여 지역 일치 규칙을 따를 수도 있습니다.
**참고**  
홍콩의 트래픽을 필터링하려면 지역 일치 문에서 ISO 3166-1 alpha-2 국가 코드 `HK`를 사용합니다.
+ **리전** - 지역 일치 규칙 다음에 레이블 일치 규칙을 사용하여 오리진 리전을 기준으로 요청을 관리합니다. 지역 일치 규칙만으로는 리전 코드와 일치시킬 수 없습니다.

레이블 일치 규칙 사용에 대한 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 및 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.

## 지역 일치 문 작동 방식
<a name="waf-rule-statement-geo-how-it-works"></a>

지역 일치 문을 사용하여는 다음과 같이 각 웹 요청을 AWS WAF 관리합니다.

1. **요청의 국가 및 리전 코드 결정 **- IP 주소를 기반으로 요청의 국가 및 리전을 AWS WAF 결정합니다. 기본적으로는 웹 요청 오리진의 IP 주소를 AWS WAF 사용합니다. 규칙 문 설정에서 전달된 IP 구성을 활성화`X-Forwarded-For`하여 AWS WAF 와 같은 대체 요청 헤더의 IP 주소를 사용하도록에 지시할 수 있습니다.

   AWS WAF 는 MaxMind GeoIP 데이터베이스를 사용하는 요청의 위치를 결정합니다. MaxMind는 국가 수준에서 매우 높은 데이터 정확도를 보고하지만, 정확도는 국가 및 IP 유형과 같은 요인에 따라 다릅니다. MaxMind에 대한 자세한 내용은 [MaxMind IP 지리적 위치](https://support.maxmind.com/hc/en-us/sections/4407519834267-IP-Geolocation)를 참조하세요. GeoIP 데이터가 잘못되었다고 생각되면 Maxmind([MaxMind Correct GeoIP2 Data](https://support.maxmind.com/hc/en-us/articles/4408252036123-GeoIP-Correction))에 정정 요청을 제출할 수 있습니다.

   AWS WAF 는 ISO(International Organization for Standardization) 3166 표준의 alpha-2 국가 및 리전 코드를 사용합니다. 다음 위치에서 코드를 찾을 수 있습니다.
   + ISO 웹사이트의 [ISO 온라인 브라우징 플랫폼(OBP)](https://www.iso.org/obp/ui#home)에서 국가 코드를 검색할 수 있습니다.
   + 위키백과에서는 [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)에 국가 코드가 나열되어 있습니다.

     국가의 리전 코드는 URL `https://en.wikipedia.org/wiki/ISO_3166-2:<ISO country code>`에 나열되어 있습니다. 예를 들어 미국의 리전은 [ISO 3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US)이고 우크라이나의 경우 [ISO 3166-2:UA](https://en.wikipedia.org/wiki/ISO_3166-2:UA)입니다.

1. **요청에 추가할 국가 레이블 및 리전 레이블 결정** - 레이블은 지역 일치 문에서 원본 IP를 사용하는지 아니면 전달된 IP 구성을 사용하는지를 나타냅니다.
   + **오리진 IP** 

     국가 레이블은 `awswaf:clientip:geo:country:<ISO country code>`입니다. 예를 들어, 미국의 경우 `awswaf:clientip:geo:country:US`입니다.

     리전 라벨은 `awswaf:clientip:geo:region:<ISO country code>-<ISO region code>`입니다. 예를 들어, 미국의 오리건인 경우 `awswaf:clientip:geo:region:US-OR`입니다.
   + **전달된 IP** 

     국가 레이블은 `awswaf:forwardedip:geo:country:<ISO country code>`입니다. 예를 들어, 미국의 경우 `awswaf:forwardedip:geo:country:US`입니다.

     리전 라벨은 `awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>`입니다. 예를 들어, 미국의 오리건인 경우 `awswaf:forwardedip:geo:region:US-OR`입니다.

   요청의 지정된 IP 주소에 해당 국가 또는 리전 코드를 사용할 수 없는 경우 AWS WAF 는 레이블에서 값 대신 `XX`를 사용합니다. 예를 들어, 레이블 `awswaf:clientip:geo:country:XX`는 국가 코드를 사용할 수 없는 클라이언트 IP용이고, `awswaf:forwardedip:geo:region:US-XX`는 국가는 미국이지만 리전 코드를 사용할 수 없는 전달된 IP용입니다.

1. **규칙 기준에 따라 요청 국가 코드 평가** 

지역 일치 문은 일치하는 항목을 찾았는지 여부와 관계없이 검사하는 모든 요청에 국가 및 리전 레이블을 추가합니다.

**참고**  
AWS WAF 는 규칙의 웹 요청 평가 끝에 레이블을 추가합니다. 따라서 지역 일치 명령문의 레이블에 사용하는 모든 레이블 일치는 지역 일치 문이 포함된 규칙과는 별도의 규칙에 정의되어야 합니다.

리전 값만 검사하려는 경우 Count 작업과 단일 국가 코드 일치, 리전 레이블에 대한 레이블 일치 규칙을 포함하는 지역 일치 규칙을 작성할 수 있습니다. 이 접근 방식에서도 지역 일치 규칙을 평가하려면 국가 코드를 입력해야 합니다. 사이트에 대한 트래픽 소스가 될 것 같지 않은 국가를 지정하여 로깅과 계수 지표를 줄일 수 있습니다.

## CloudFront 배포 및 CloudFront 지역 제한 기능
<a name="cloudfront-distributions-geo-restriction"></a>

CloudFront 배포의 경우 CloudFront 지역 제한 기능을 사용하는 경우 이 기능은 차단된 요청을 AWS WAF로 전달하지 않습니다. 허용된 요청을에 전달합니다 AWS WAF. 지리 및 지정할 수 있는 기타 기준에 따라 요청을 차단하려면 AWS WAF 지역 일치 문을 AWS WAF사용하고 CloudFront 지역 제한 기능을 사용하지 마십시오.

## 규칙 문 특성
<a name="geo-match-statement-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** – 1WCU.

**설정** - 이 명령문은 다음 설정을 사용합니다.
+ **국가 코드** — 지역 일치 여부를 확인하기 위해 비교할 국가 코드 배열. 이러한 코드는 ISO 3166 국제 표준의 alpha-2 국가 ISO 코드에서 나온 2자리 국가 코드(예: `["US","CN"]`)여야 합니다.
+ **(선택 사항) 전달된 IP 구성** - 기본적으로 웹 요청 오리진의 IP 주소를 AWS WAF 사용하여 오리진 국가를 결정합니다. 또는 `X-Forwarded-For` 대신 같은 HTTP 헤더에서 전달된 IP를 사용하도록 규칙을 구성할 수 있습니다.는 헤더의 첫 번째 IP 주소를 AWS WAF 사용합니다. 이 구성을 사용하면 헤더에 잘못된 형식의 IP 주소가 있는 웹 요청에 적용할 폴백 동작도 지정할 수 있습니다. 폴백 동작은 요청에 대한 일치 결과를 일치하거나 일치하지 않음으로 설정합니다. 자세한 내용은 [전달된 IP 주소 사용](waf-rule-statement-forwarded-ip-address.md) 단원을 참조하십시오.

## 이 규칙 문을 찾을 수 있는 위치
<a name="geo-match-statement-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **요청 옵션**에서 **출처 국가**를 선택합니다.
+ **API** – [GeoMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html)

## 예제
<a name="waf-rule-statement-geo-examples"></a>

지리적 일치 문을 사용하여 특정 국가 또는 리전의 요청을 관리할 수 있습니다. 예를 들어 특정 국가를 차단하되 해당 국가의 특정 IP 주소 집합에서 요청을 허용하려면 유사 코드에 나와 있는 대로 작업을 Block로 설정하고 다음과 같은 중첩된 문을 사용하여 규칙을 생성할 수 있습니다.
+ AND 명령문
  + 차단하려는 국가를 나열하는 지역 일치 문
  + NOT 명령문 
    + 다음을 통해 허용하려는 IP 주소를 지정하는 IP 집합 문

또는 특정 국가의 일부 리전을 차단하면서도 해당 국가의 다른 리전에서 들어오는 요청은 계속 허용하려는 경우 먼저 작업을 Count로 설정한 상태로 지역 일치 규칙을 정의할 수 있습니다. 그런 다음 추가된 지역 일치 레이블과 일치하는 레이블 일치 규칙을 정의하고 필요에 따라 요청을 처리합니다.

다음 의사 코드는 이 접근 방식의 예를 설명합니다.

1. 차단하려는 리전이 있지만 작업이 계산으로 설정된 국가를 나열하는 지역 일치 문. 이 문은 일치 상태에 관계없이 모든 웹 요청에 레이블을 지정하고 관심 국가의 개수 지표도 제공합니다.

1. 차단 작업을 포함하는 `AND` 문
   + 차단하려는 국가에 대해 레이블을 지정하는 레이블 일치 문
   + `NOT` 명령문 
     + 허용하려는 국가에 대해 레이블을 지정하는 레이블 일치 문

다음 JSON 목록에는 이전 의사 코드에 설명된 두 규칙의 구현이 나와 있습니다. 이들 규칙은 오레곤 및 워싱턴에서 들어오는 트래픽을 제외하고 미국에서 들어오는 모든 트래픽을 차단합니다. 지역 일치 문은 검사하는 모든 요청에 국가 및 리전 레이블을 추가합니다. 레이블 일치 규칙은 지역 일치 규칙 이후에 실행되므로 지역 일치 규칙이 방금 추가한 국가 및 리전 레이블과 일치시킬 수 있습니다. 지역 일치 문은 전달된 IP 주소를 사용하므로 레이블 일치에서 전달된 IP 레이블도 지정합니다.

```
{
   "Name": "geoMatchForLabels",
   "Priority": 10,
   "Statement": {
     "GeoMatchStatement": {
       "CountryCodes": [
         "US"
       ],
       "ForwardedIPConfig": {
           "HeaderName": "X-Forwarded-For",
           "FallbackBehavior": "MATCH"
       }
     }
   },
   "Action": {
     "Count": {}
   },
   "VisibilityConfig": {
     "SampledRequestsEnabled": true,
     "CloudWatchMetricsEnabled": true,
     "MetricName": "geoMatchForLabels"
   }
},
{
   "Name": "blockUSButNotOROrWA",
   "Priority": 11,
   "Statement": {
     "AndStatement": {
       "Statements": [
         {
           "LabelMatchStatement": {
             "Scope": "LABEL",
             "Key": "awswaf:forwardedip:geo:country:US"
           }
         },
         {
           "NotStatement": {
             "Statement": {
                "OrStatement": {
                  "Statements": [
                    {
                       "LabelMatchStatement": {
                         "Scope": "LABEL",
                         "Key": "awswaf:forwardedip:geo:region:US-OR"
                       }
                    },
                    {
                       "LabelMatchStatement": {
                         "Scope": "LABEL",
                         "Key": "awswaf:forwardedip:geo:region:US-WA"
                       }
                    }
                 ]
               }
             }
           }
         }
       ]
     }
   },
   "Action": {
     "Block": {}
   },
   "VisibilityConfig": {
     "SampledRequestsEnabled": true,
     "CloudWatchMetricsEnabled": true,
     "MetricName": "blockUSButNotOROrWA"
   }
}
```

또 다른 예로 특정 국가 또는 리전의 사용자에게 리소스를 우선적으로 할당하려면, 속도 기반 규칙에 지역 일치 조건을 결합하면 됩니다. 사용자를 차별화하는 데 사용하는 각 지역 일치 또는 레이블 일치 문에 대해 서로 다른 속도 기반 문을 생성합니다. 선호하는 국가 또는 리전의 사용자에게는 요청률 한도를 더 높게 설정하고, 기타 사용자에게는 요청률 한도를 더 낮게 설정합니다.

다음 JSON 목록은 지역 일치 규칙과 미국에서 들어오는 트래픽 속도를 제한하는 속도 기반 규칙을 보여줍니다. 이러한 규칙을 사용하면 오리건 주에서 들어오는 트래픽이 미국 내 다른 리전에서 들어오는 트래픽보다 더 높은 속도로 유입될 수 있습니다.

```
{
  "Name": "geoMatchForLabels",
  "Priority": 190,
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ]
    }
  },
  "Action": {
    "Count": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "geoMatchForLabels"
  }
},
{
  "Name": "rateLimitOregon",
  "Priority": 195,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 3000,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "LabelMatchStatement": {
          "Scope": "LABEL",
          "Key": "awswaf:clientip:geo:region:US-OR"
        }
      }
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "rateLimitOregon"
  }
},
{
  "Name": "rateLimitUSNotOR",
  "Priority": 200,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 100,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "AndStatement": {
          "Statements": [
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:clientip:geo:country:US"
              }
            },
            {
              "NotStatement": {
                "Statement": {
                  "LabelMatchStatement": {
                    "Scope": "LABEL",
                    "Key": "awswaf:clientip:geo:region:US-OR"
                  }
                }
              }
            }
          ]
        }
      }
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "rateLimitUSNotOR"
  }
}
```

# IP 집합 일치 규칙 문
<a name="waf-rule-statement-type-ipset-match"></a>

이 섹션에서는 IP 집합 일치 문이 무엇이고 어떻게 작동하는지 설명합니다.

IP 집합 일치 문은 IP 주소 및 주소 범위의 집합에 대한 웹 요청의 IP 주소를 검사합니다. 요청이 시작된 IP 주소를 기반으로 웹 요청을 허용하거나 차단하려면 이 옵션을 사용합니다. 기본적으로 AWS WAF 는 웹 요청 오리진의 IP 주소를 사용하지만 대신에 `X-Forwarded-For`와 같은 HTTP 헤더를 사용하도록 규칙을 구성할 수 있습니다.



AWS WAF 는를 제외한 모든 IPv4 및 IPv6 CIDR 범위를 지원합니다`/0`. CIDR 표기법에 대한 자세한 내용은 [클래스 없는 도메인 간 라우팅](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)에 대한 Wikipedia 항목을 참조하세요. IP 집합에서는 최대 10,000개의 IP 주소 또는 IP 주소 범위를 확인할 수 있습니다.

**참고**  
각 IP 집합 일치 규칙은 규칙과 관계 없이 생성 및 유지 관리하는 IP 집합을 참조합니다. 여러 규칙에서 단일 IP 세트를 사용할 수 있으며 참조된 세트를 업데이트할 때는 이를 참조하는 모든 규칙을 AWS WAF 자동으로 업데이트합니다.  
IP 집합의 생성 및 관리 방법에 대한 자세한 내용은 [에서 IP 세트 생성 및 관리 AWS WAF](waf-ip-set-managing.md) 섹션을 참조하세요.

규칙 그룹 또는 보호 팩(웹 ACL)에서 규칙을 추가하거나 업데이트할 때 **IP 세트** 옵션을 선택하고 사용할 IP 세트의 이름을 선택합니다.

## 규칙 문 특성
<a name="ipset-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** - 대부분의 경우 1WCU입니다. 전달된 IP 주소를 사용하도록 문을 구성하고 ANY의 위치를 지정하는 경우 WCU 사용을 4만큼 늘리세요.

이 문은 다음 설정을 사용합니다.
+ **IP 집합 사양** – 목록에서 사용할 IP 집합을 선택하거나 새 IP 집합을 생성합니다.
+ **(선택 사항) 전달된 IP 구성** - 요청 오리진 대신 사용할 대체 전달 IP 헤더 이름입니다. 헤더의 첫 번째 주소, 마지막 주소 또는 임의 주소와 일치시킬지 여부를 지정합니다. 지정된 헤더에 잘못된 형식의 IP 주소가 있는 웹 요청에 적용할 폴백 동작도 지정할 수 있습니다. 폴백 동작은 요청에 대한 일치 결과를 일치하거나 일치하지 않음으로 설정합니다. 자세한 내용은 [전달된 IP 주소 사용](waf-rule-statement-forwarded-ip-address.md) 단원을 참조하십시오.

## 이 규칙 문을 찾을 수 있는 위치
<a name="ipset-match-where-to-find"></a>

**이 규칙 문을 찾을 수 있는 위치**
+ 콘솔의 **규칙 빌더** – **요청 옵션**에서 **출처 IP 주소**를 선택합니다.
+ 콘솔의 **자체 규칙 및 규칙 그룹 추가** 페이지 - **IP 집합** 옵션을 선택합니다.
+ **API** – [IPSetReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_IPSetReferenceStatement.html)

# Autonomous System Number(ASN) 일치 규칙 문
<a name="waf-rule-statement-type-asn-match"></a>

의 ASN 일치 규칙 문 AWS WAF 을 사용하면 요청의 IP 주소와 연결된 ASN(자율 시스템 번호)을 기반으로 웹 트래픽을 검사할 수 있습니다. ASN은 인터넷 서비스 제공업체, 엔터프라이즈, 대학 또는 정부 기관과 같은 조직에서 관리하는 대규모 인터넷 네트워크에 할당된 고유 식별자입니다. ASN 일치 문을 사용하면 개별 IP 주소를 관리할 필요 없이 특정 네트워크 조직의 트래픽을 허용하거나 차단할 수 있습니다. 이 접근 방식은 ASN이 IP 범위보다 덜 자주 변경되므로 IP 기반 규칙에 비해 액세스를 제어하는 보다 안정적이고 효율적인 방법을 제공합니다.

ASN 일치는 알려진 문제가 있는 네트워크의 트래픽을 차단하거나 신뢰할 수 있는 파트너 네트워크에서만 액세스를 허용하는 등의 시나리오에 특히 유용합니다. ASN 일치 문은 전달된 IP 구성 옵션을 통해 클라이언트 IP 주소를 유연하게 결정할 수 있으므로 콘텐츠 전송 네트워크(CDN) 또는 역방향 프록시를 사용하는 설정 등 다양한 네트워크 설정과 호환됩니다.

**참고**  
ASN 일치는 표준 인증 및 권한 부여 제어를 보완하지만 대체하지는 않습니다. 애플리케이션에서 모든 요청의 ID를 확인하려면 IAM과 같은 인증 및 권한 부여 메커니즘을 구현하는 것이 좋습니다.

## ASN 일치 문 작동 방식
<a name="waf-rule-statement-type-asn-match-how-it-works"></a>

AWS WAF 는 IP 주소를 기반으로 요청의 ASN을 결정합니다. 기본적으로는 웹 요청 오리진의 IP 주소를 AWS WAF 사용합니다. 규칙 문 설정에서 전달된 IP 구성을 활성화`X-Forwarded-For`하여와 같은 대체 요청 헤더의 IP 주소를 AWS WAF 사용하도록를 구성할 수 있습니다.

ASN 일치 문은 요청의 ASN을 규칙에 지정된 ASN 목록과 비교합니다. ASN이 목록의 ASN과 일치하면 문이 true로 평가되고 관련 규칙 작업이 적용됩니다.

### 매핑되지 않은 ASN 처리
<a name="waf-rule-statement-type-asn-match-unmapped"></a>

가 유효한 IP 주소에 대한 ASN을 확인할 AWS WAF 수 없는 경우 ASN 0을 할당합니다. 이러한 사례를 명시적으로 처리하기 위해 규칙에 ASN 0을 포함할 수 있습니다.

### 잘못된 IP 주소에 대한 폴백 동작
<a name="waf-rule-statement-type-asn-match-fallback"></a>

전달된 IP 주소를 사용하도록 ASN 일치 문을 구성할 때 지정된 헤더에 유효하지 않거나 누락된 IP 주소가 있는 요청에 대해 *일치* 또는 *일치하지 않음*의 폴백 동작을 지정할 수 있습니다.

## 규칙 문 특성
<a name="waf-rule-statement-type-asn-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCUs** – 1WCU

이 문은 다음 설정을 사용합니다.
+ **ASN 목록** - ASN 일치 항목과 비교할 ASN 번호 배열입니다. 유효한 값의 범위는 0\$14294967295입니다. 각 규칙에 최대 100개의 ASN을 지정할 수 있습니다.
+ **(선택 사항) 전달된 IP 구성** - 기본적으로 웹 요청 오리진의 IP 주소를 AWS WAF 사용하여 ASN을 결정합니다. 또는 `X-Forwarded-For`와 같이 HTTP 헤더에 전달된 IP를 대신 사용하도록 규칙을 구성할 수도 있습니다. 헤더의 첫 번째 주소, 마지막 주소 또는 임의 주소를 사용할지 여부를 지정합니다. 이 구성을 사용하면 헤더에 잘못된 형식의 IP 주소가 있는 웹 요청에 적용할 폴백 동작도 지정할 수 있습니다. 폴백 동작은 요청에 대한 일치 결과를 일치하거나 일치하지 않음으로 설정합니다. 자세한 내용은 [전달된 IP 주소 사용](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-forwarded-ip-address.html)을 참조하세요.

## 이 규칙 문을 찾을 수 있는 위치
<a name="waf-rule-statement-type-asn-match-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **요청 옵션**에서 **출처 ASN**을 선택합니다.
+ **API** - [AsnMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AsnMatchStatement.html)

## 예제
<a name="waf-rule-statement-type-asn-match-examples"></a>

이 예제에서는 `X-Forwarded-For` 헤더에서 파생된 두 개의 특정 ASN에서 발생하는 요청을 차단합니다. 헤더의 IP 주소 형식이 잘못된 경우 구성된 폴백 동작은 `NO_MATCH`입니다.

```
{
  "Action": {
    "Block": {}
  },
  "Name": "AsnMatchStatementRule",
  "Priority": 1,
  "Statement": {
    "AsnMatchStatement": {
      "AsnList": [64496, 64500]
    },
    "ForwardedIPConfig": {
      "FallbackBehavior": "NO_MATCH",
      "HeaderName": "X-Forwarded-For"
    }
  },
  "VisibilityConfig": {
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AsnMatchRuleMetrics",
    "SampledRequestsEnabled": true
  }
},
"VisibilityConfig": {
  "CloudWatchMetricsEnabled": true,
  "MetricName": "WebAclMetrics",
  "SampledRequestsEnabled": true
}
}
```

# 레이블 일치 규칙 문
<a name="waf-rule-statement-type-label-match"></a>

이 섹션에서는 레이블 일치 문이 무엇이고 어떻게 작동하는지를 설명합니다.

레이블 일치 문은 문자열 사양을 기준으로 웹 요청의 레이블을 검사합니다. 규칙에서 검사할 수 있는 레이블은 동일한 보호 팩(웹 ACL) 평가의 다른 규칙에 의해 웹 요청에 이미 추가된 레이블입니다.

레이블은 보호 팩(웹 ACL) 평가 외부에서는 유지되지 않지만 CloudWatch에서 레이블 지표에 액세스할 수 있으며 AWS WAF 콘솔에서 모든 보호 팩(웹 ACL)에 대한 레이블 정보 요약을 볼 수 있습니다. 자세한 내용은 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 및 [AWS WAF 보호 모니터링 및 튜닝](web-acl-testing-activities.md) 섹션을 참조하세요. 로그에서 레이블을 확인할 수도 있습니다. 자세한 내용은 [보호 팩(웹 ACL) 트래픽에 대한 로그 필드](logging-fields.md) 단원을 참조하세요.

**참고**  
레이블 일치 문은 보호 팩(웹 ACL)에서 이전에 평가된 규칙의 레이블만 볼 수 있습니다. 가 보호 팩(웹 ACL)에서 규칙 및 규칙 그룹을 AWS WAF 평가하는 방법에 대한 자세한 내용은 섹션을 참조하세요[규칙 우선 순위 설정](web-acl-processing-order.md).

레이블 추가 및 일치에 대한 자세한 정보는 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.

## 규칙 문 특성
<a name="label-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCUs** – 1WCU

이 문은 다음 설정을 사용합니다.
+ **범위 일치** — 레이블 이름 및 필요에 따라 이전 네임스페이스 및 접두사와 일치시키려면 이 값을 **레이블**로 설정합니다. 일부 또는 모든 네임스페이스 사양 그리고 필요에 따라 이전 접두사와 일치시키려면 이 값을 **네임스페이스**로 설정합니다.
+ **키** — 일치시키려는 문자열입니다. 네임스페이스 일치 범위를 지정하는 경우 네임스페이스와 접두사(필요 시) 및 콜론 구분 기호만 지정하면 됩니다. 레이블 일치 범위를 지정하는 경우 레이블 이름이 포함해야 하며 필요 시 이전 네임스페이스와 접두사를 포함할 수 있습니다.

이러한 설정에 대한 자세한 내용은 [AWS WAF 레이블과 일치하는 규칙](waf-rule-label-match.md) 및 [AWS WAF 레이블 일치 예제](waf-rule-label-match-examples.md) 섹션을 참조하세요.

## 이 규칙 문을 찾을 수 있는 위치
<a name="label-match-where-to-find"></a>
+ 콘솔의 **규칙 빌더** - **요청 옵션**에서 **레이블 있음**을 선택합니다.
+ **API** – [LabelMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_LabelMatchStatement.html)

# 정규식 일치 규칙 문
<a name="waf-rule-statement-type-regex-match"></a>

이 섹션에서는 정규식 일치 문이 무엇이고 어떻게 작동하는지 설명합니다.

정규식 일치 문은 요청 구성 요소를 단일 정규식(정규식)과 일치 AWS WAF 시키도록에 지시합니다. 지정하는 정규식과 요청 구성 요소가 일치하면 웹 요청이 해당 문을 일치시킵니다.

이 명령문 유형은 수학 논리를 사용하여 일치 기준을 결합하려는 경우 [정규식 패턴 집합 일치 규칙 문](waf-rule-statement-type-regex-pattern-set-match.md)에 대한 좋은 대안입니다. 예를 들어 요청 구성 요소를 일부 정규식 패턴과 일치시키고 다른 패턴과는 일치되지 않도록 하려는 경우 [AND 규칙 문](waf-rule-statement-type-and.md) 및 [NOT 규칙 문](waf-rule-statement-type-not.md)를 사용하여 정규식 일치 문을 결합할 수 있습니다.

AWS WAF 는 일부 예외를 `libpcre` 제외하고 PCRE 라이브러리에서 사용하는 패턴 구문을 지원합니다. 이 라이브러리는 [PCRE - Perl 호환 정규식](http://www.pcre.org/)에 문서화되어 있습니다. AWS WAF 지원에 대한 자세한 내용은 섹션을 참조하세요[에서 지원되는 정규식 구문 AWS WAF](waf-regex-pattern-support.md).

## 규칙 문 특성
<a name="regex-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** - 3WCU(기본 비용). 요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.

이 문은 웹 요청 구성 요소에서 작동하며 작동을 위해선 다음과 같은 요청 구성 요소 설정이 필요합니다.
+ **요청 구성 요소** – 검사할 웹 요청 부분(예: 쿼리 문자열 또는 본문).
**주의**  
요청 구성 요소 **본문**, **JSON 본문**, **헤더** 또는 **쿠키를** 검사하는 경우에서 검사 AWS WAF 할 수 있는 콘텐츠의 양에 대한 제한 사항에 대해 읽어보세요[에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md).

  웹 요청 구성 요소에 대한 자세한 내용은 [에서 규칙 문 설정 조정 AWS WAF](waf-rule-statement-fields.md) 섹션을 참조하세요.
+ **선택적 텍스트 변환** - 요청 구성 요소를 검사 AWS WAF 하기 전에 요청 구성 요소에 대해 수행하려는 변환입니다. 예를 들어, 소문자로 변환하거나 공백을 정규화할 수 있습니다. 둘 이상의 변환을 지정하는 경우는 나열된 순서대로 변환을 AWS WAF 처리합니다. 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 단원을 참조하세요.

## 이 규칙 문을 찾을 수 있는 위치
<a name="regex-match-where-to-find"></a>
+ 콘솔의 **규칙 빌더** - **일치 유형**의 경우 **정규식과 일치**를 선택합니다.
+ **API** – [RegexMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RegexMatchStatement.html)

# 정규식 패턴 집합 일치 규칙 문
<a name="waf-rule-statement-type-regex-pattern-set-match"></a>

이 섹션에서는 정규식 패턴 집합 일치 문이 무엇이고 어떻게 작동하는지 설명합니다.

정규식 패턴 집합 일치는 정규식 패턴 집합 내에서 지정한 정규 표현식 패턴에 대해 지정한 웹 요청 부분을 검사합니다.

AWS WAF 는 일부 예외를 `libpcre` 제외하고 PCRE 라이브러리에서 사용하는 패턴 구문을 지원합니다. 이 라이브러리는 [PCRE - Perl 호환 정규식](http://www.pcre.org/)에 문서화되어 있습니다. AWS WAF 지원에 대한 자세한 내용은 섹션을 참조하세요[에서 지원되는 정규식 구문 AWS WAF](waf-regex-pattern-support.md).

**참고**  
각 정규식 패턴 집합 일치 규칙은 규칙과 관계 없이 생성 및 유지 관리하는 정규식 패턴 집합을 참조합니다. 여러 규칙에서 단일 정규식 패턴 세트를 사용할 수 있으며 참조된 세트를 업데이트할 때는 이를 참조하는 모든 규칙을 AWS WAF 자동으로 업데이트합니다.  
정규식 패턴 집합을 생성 및 관리하는 방법은 [에서 정규식 패턴 세트 생성 및 관리 AWS WAF](waf-regex-pattern-set-managing.md) 단원을 참조하세요.

정규식 패턴 세트 일치 문은가 선택한 요청 구성 요소 내에서 세트의 패턴을 검색 AWS WAF 하도록 지시합니다. 요청 구성 요소가 집합의 패턴 중 하나와 일치하는 경우 웹 요청은 패턴 집합 규칙 문과 일치하게 됩니다.

로직을 사용하여 정규식 패턴 일치를 결합하려는 경우(예: 일부 정규식과 일치시키고 다른 정규식과는 일치하지 않도록 하려는 경우) [정규식 일치 규칙 문](waf-rule-statement-type-regex-match.md)의 사용을 고려해 보십시오.

## 규칙 문 특성
<a name="regex-pattern-set-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** - 25WCU(기본 비용). 요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.

이 문은 웹 요청 구성 요소에서 작동하며 작동을 위해선 다음과 같은 요청 구성 요소 설정이 필요합니다.
+ **요청 구성 요소** – 검사할 웹 요청 부분(예: 쿼리 문자열 또는 본문).
**주의**  
요청 구성 요소 **본문**, **JSON 본문**, **헤더** 또는 **쿠키를** 검사하는 경우에서 검사 AWS WAF 할 수 있는 콘텐츠의 양에 대한 제한 사항에 대해 읽어보세요[에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md).

  웹 요청 구성 요소에 대한 자세한 내용은 [에서 규칙 문 설정 조정 AWS WAF](waf-rule-statement-fields.md) 섹션을 참조하세요.
+ **선택적 텍스트 변환** - 요청 구성 요소를 검사 AWS WAF 하기 전에 요청 구성 요소에 대해 수행하려는 변환입니다. 예를 들어, 소문자로 변환하거나 공백을 정규화할 수 있습니다. 둘 이상의 변환을 지정하는 경우는 나열된 순서대로 변환을 AWS WAF 처리합니다. 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 단원을 참조하세요.

이 문에는 다음 설정이 필요합니다.
+ 정규식 패턴 집합 사양 - 사용할 정규식 패턴 집합을 선택하거나 새 정규식 패턴 집합을 생성합니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="regex-pattern-set-match-where-to-find"></a>
+ 콘솔의 **규칙 빌더** - **일치 유형**에서 **문자열 일치 조건** > **정규 표현식 집합에서 패턴 일치**를 선택합니다.
+ **API** – [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RegexPatternSetReferenceStatement.html)

# 크기 제약 조건 규칙 문
<a name="waf-rule-statement-type-size-constraint-match"></a>

이 섹션에서는 크기 제한 문이 무엇이고 어떻게 작동하는지 설명합니다.

크기 제약 문은가 웹 요청 구성 요소에 대해 AWS WAF 수신하는 바이트 수를 사용자가 제공한 숫자와 비교하고 비교 기준에 따라 일치시킵니다.

비교 기준은 보다 큼(>) 또는 보다 작음(<) 과 같은 연산자입니다. 예를 들어 크기가 100바이트보다 큰 쿼리 문자열이 있는 요청을 일치시킬 수 있습니다.

URI 경로를 검사하면 경로에 있는 모든 `/`가 1자로 계산됩니다. 예컨대, URI 경로 `/logo.jpg`는 9자 길이입니다.

**참고**  
이 명령문은 웹 요청 구성 요소의 크기만 검사합니다. 구성 요소의 콘텐츠는 검사하지 않습니다.

## 규칙 문 특성
<a name="size-constraint-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** - 1WCU(기본 비용). 요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.

이 문은 웹 요청 구성 요소에서 작동하며 작동을 위해선 다음과 같은 요청 구성 요소 설정이 필요합니다.
+ **요청 구성 요소** – 검사할 웹 요청 부분(예: 쿼리 문자열 또는 본문). 웹 요청 구성 요소에 대한 자세한 내용은 [에서 규칙 문 설정 조정 AWS WAF](waf-rule-statement-fields.md) 섹션을 참조하세요.

  크기 제약 문은 변환이 적용된 후 구성 요소의 크기만 검사합니다. 구성 요소의 내용은 검사하지 않습니다.
+ **선택적 텍스트 변환** - 크기를 검사 AWS WAF 하기 전에 요청 구성 요소에 대해 수행하려는 변환입니다. 예를 들어, 공백을 압축하거나 HTML 엔티티를 디코딩할 수 있습니다. 둘 이상의 변환을 지정하는 경우는 나열된 순서대로 변환을 AWS WAF 처리합니다. 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 단원을 참조하세요.

또한 이 문에는 다음 설정이 필요합니다.
+ **크기 일치 조건** - 선택한 요청 구성 요소에 제공하는 크기를 비교하는 데 사용할 수치 비교 연산자를 나타냅니다. 목록에서 연산자를 선택합니다.
+ **크기** – 비교에 사용할 크기 설정(바이트)입니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="size-constraint-match-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **일치 유형**의 **크기 일치 조건**에서 사용할 조건을 선택합니다.
+ **API** – [SizeConstraintStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_SizeConstraintStatement.html)

# SQL 주입 공격 규칙 문
<a name="waf-rule-statement-type-sqli-match"></a>

이 섹션에서는 SQL 명령어 삽입 문이 무엇인지, 어떻게 작동하는지 설명합니다.

SQL 명령어 삽입 규칙 문은 악성 SQL 코드를 검사합니다. 공격자는 웹 요청에 악성 SQL 코드를 삽입하여 데이터베이스를 수정하거나 데이터베이스에서 데이터를 추출하는 등의 작업을 수행합니다.

## 규칙 문 특성
<a name="sqli-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** - 기본 비용은 규칙 문의 민감도 수준 설정에 따라 달라집니다(Low 비용 20, High 비용 30).

요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.

이 문은 웹 요청 구성 요소에서 작동하며 작동을 위해선 다음과 같은 요청 구성 요소 설정이 필요합니다.
+ **요청 구성 요소** – 검사할 웹 요청 부분(예: 쿼리 문자열 또는 본문).
**주의**  
요청 구성 요소 **본문**, **JSON 본문**, **헤더** 또는 **쿠키를** 검사하는 경우에서 검사 AWS WAF 할 수 있는 콘텐츠의 양에 대한 제한 사항에 대해 읽어보세요[에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md).

  웹 요청 구성 요소에 대한 자세한 내용은 [에서 규칙 문 설정 조정 AWS WAF](waf-rule-statement-fields.md) 섹션을 참조하세요.
+ **선택적 텍스트 변환** - 요청 구성 요소를 검사 AWS WAF 하기 전에 요청 구성 요소에 대해 수행하려는 변환입니다. 예를 들어, 소문자로 변환하거나 공백을 정규화할 수 있습니다. 둘 이상의 변환을 지정하는 경우는 나열된 순서대로 변환을 AWS WAF 처리합니다. 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 단원을 참조하세요.

또한 이 문에는 다음 설정이 필요합니다.
+ **민감도 수준** - 이 설정은 SQL 명령어 삽입 일치 조건의 민감도를 조정합니다. 옵션은 LOW 및 HIGH입니다. 기본 설정은 LOW입니다.

  이 HIGH 설정은 더 많은 SQL 명령어 삽입 공격을 탐지하므로 이 설정은 권장 설정입니다. 이 설정은 민감도가 더 높기 때문에 특히 웹 요청에 일반적으로 비정상적인 문자열이 포함되어 있는 경우 거짓 긍정이 더 많이 발생합니다. 보호 팩(웹 ACL) 테스트 및 조정 중에 거짓 긍정을 완화하기 위한 노력이 더 많이 필요할 수 있습니다. 자세한 내용은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 단원을 참조하세요.

  설정이 낮을수록 덜 엄격한 SQL 명령어 삽입 탐지가 제공되므로 거짓 긍정도 그만큼 감소합니다. LOW는 SQL 명령어 삽입 공격에 대한 다른 보호 기능이 있거나 거짓 긍정에 대한 허용 오차가 낮은 리소스에 더 적합합니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="sqli-match-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **일치 유형**에서 **공격 일치 조건** > **SQL 명령어 삽입 공격 포함**을 선택합니다.
+ **API** – [SqliMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_SqliMatchStatement.html)

# 문자열 일치 규칙 문
<a name="waf-rule-statement-type-string-match"></a>

이 섹션에서는 문자열 일치 문이 무엇인지와 작동 방식을 설명합니다.

문자열 일치 문은 요청에서 AWS WAF 검색할 문자열, 검색할 요청의 위치 및 방법을 나타냅니다. 예를 들어 요청의 쿼리 문자열의 시작 부분에서 특정 문자열을 찾거나 요청의 `User-agent` 헤더와 정확히 일치하는 문자열을 찾을 수 있습니다. 일반적으로 문자열은 인쇄 가능한 ASCII 문자로 구성되지만, 16진수 0x00에서 0xFF(10진수 0\$1255) 사이의 어떤 문자든지 사용할 수 있습니다.

## 규칙 문 특성
<a name="string-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** – 기본 비용은 사용하는 일치 유형에 따라 다릅니다.
+ **정확히 문자열과 일치** – 2 
+ **문자열로 시작** – 2 
+ **문자열로 끝** – 2 
+ **문자열 포함** – 10 
+ **단어 포함** – 10 

요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.

이 문은 웹 요청 구성 요소에서 작동하며 작동을 위해선 다음과 같은 요청 구성 요소 설정이 필요합니다.
+ **요청 구성 요소** – 검사할 웹 요청 부분(예: 쿼리 문자열 또는 본문).
**주의**  
요청 구성 요소 **본문**, **JSON 본문**, **헤더** 또는 **쿠키를** 검사하는 경우에서 검사 AWS WAF 할 수 있는 콘텐츠의 양에 대한 제한 사항에 대해 읽어보세요[에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md).

  웹 요청 구성 요소에 대한 자세한 내용은 [에서 규칙 문 설정 조정 AWS WAF](waf-rule-statement-fields.md) 섹션을 참조하세요.
+ **선택적 텍스트 변환** - 요청 구성 요소를 검사 AWS WAF 하기 전에 요청 구성 요소에 대해 수행하려는 변환입니다. 예를 들어, 소문자로 변환하거나 공백을 정규화할 수 있습니다. 둘 이상의 변환을 지정하는 경우는 나열된 순서대로 변환을 AWS WAF 처리합니다. 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 단원을 참조하세요.

또한 이 문에는 다음 설정이 필요합니다.
+ **일치시킬 문자열** - 지정된 요청 구성 요소와 비교 AWS WAF 하려는 문자열입니다. 일반적으로 문자열은 인쇄 가능한 ASCII 문자로 구성되지만, 16진수 0x00에서 0xFF(10진수 0\$1255) 사이의 어떤 문자든지 사용할 수 있습니다.
+ **문자열 일치 조건** - 수행 AWS WAF 하려는 검색 유형을 나타냅니다.
  + **정확히 문자열과 일치)** – 문자열과 요청 구성 요소의 값이 동일합니다.
  + **문자열로 시작** – 문자열이 요청 구성 요소의 시작 부분에 나타납니다.
  + **문자열로 끝** – 문자열이 요청 구성 요소의 끝에 나타납니다.
  + **문자열 포함** – 문자열이 요청 구성 요소의 아무 곳이나 나타납니다.
  + **단어 포함** – 지정한 문자열은 요청 구성 요소에 나타나야 합니다.

    이 옵션의 경우 지정하는 문자열에는 영숫자 또는 밑줄(A-Z, a-z, 0-9 또는 \$1)만 포함해야 합니다.

    요청이 일치하려면 다음 중 하나가 true여야 합니다.
    + 문자열은 헤더의 값 같은 요청 구성 요소의 값과 정확히 일치합니다.
    + 문자열이 요청 구성 요소의 시작 부분에 있고 그 뒤에 영숫자 또는 밑줄(\$1)을 제외한 다른 문자(예: `BadBot;`)가 있습니다.
    + 문자열이 요청 구성 요소의 끝에 있고 그 앞에 영숫자 또는 밑줄(\$1)을 제외한 다른 문자(예: `;BadBot`)가 있습니다.
    + 문자열이 요청 구성 요소의 중간에 있고 그 앞과 뒤에 영숫자 또는 밑줄(\$1)을 제외한 다른 문자(예: `-BadBot;`)이 있습니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="string-match-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **일치 유형**에서 **문자열 일치 조건**을 선택한 다음, 일치시킬 문자열을 입력합니다.
+ **API** – [ByteMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html)

# 교차 사이트 스크립팅 공격 규칙 문
<a name="waf-rule-statement-type-xss-match"></a>

이 섹션에서는 XSS(크로스 사이트 스크립팅) 공격 문이 무엇인지, 어떻게 작동하는지를 설명합니다.

XSS 공격 문은 웹 요청 구성 요소의 악성 스크립트를 검사합니다. XSS 공격에서 공격자는 악성 클라이언트 사이트 스크립트를 다른 합법적 웹 브라우저에 삽입하는 수단으로 양성 웹 사이트의 취약점을 이용합니다.

## 규칙 문 특성
<a name="xss-match-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** - 40WCU(기본 비용). 요청 구성 요소 **모든 쿼리 파라미터**를 사용하는 경우 10WCU를 추가하십시오. 요청 구성 요소 **JSON 본문**을 사용하는 경우 기본 비용 WCU를 두 배로 늘리십시오. 적용하는 각 **텍스트 변환**에 대해 10WCU를 추가하십시오.

이 문은 웹 요청 구성 요소에서 작동하며 작동을 위해선 다음과 같은 요청 구성 요소 설정이 필요합니다.
+ **요청 구성 요소** – 검사할 웹 요청 부분(예: 쿼리 문자열 또는 본문).
**주의**  
요청 구성 요소 **본문**, **JSON 본문**, **헤더** 또는 **쿠키를** 검사하는 경우에서 검사 AWS WAF 할 수 있는 콘텐츠의 양에 대한 제한 사항에 대해 읽어보세요[에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md).

  웹 요청 구성 요소에 대한 자세한 내용은 [에서 규칙 문 설정 조정 AWS WAF](waf-rule-statement-fields.md) 섹션을 참조하세요.
+ **선택적 텍스트 변환** - 요청 구성 요소를 검사 AWS WAF 하기 전에 요청 구성 요소에 대해 수행하려는 변환입니다. 예를 들어, 소문자로 변환하거나 공백을 정규화할 수 있습니다. 둘 이상의 변환을 지정하는 경우는 나열된 순서대로 변환을 AWS WAF 처리합니다. 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 단원을 참조하세요.

## 이 규칙 문을 찾을 수 있는 위치
<a name="xss-match-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **일치 유형**에서 **공격 일치 조건** > **XSS 주입 공격 포함**을 선택합니다.
+ **API** – [XssMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_XssMatchStatement.html)

# 에서 논리적 규칙 문 사용 AWS WAF
<a name="waf-rule-statements-logical"></a>

이 섹션에서는 논리적 규칙 문이 무엇이고 어떻게 작동하는지를 설명합니다.

논리적 규칙 문을 사용하여 다른 문을 결합하거나 결과를 무효화할 수 있습니다. 모든 논리적 규칙 문은 적어도 하나의 중첩 문을 사용합니다.

규칙 문 결과를 논리적으로 결합하거나 무효화하려면 해당 문을 논리적 규칙 문 아래에 중첩해야 합니다.

논리적 규칙 문을 중첩할 수 있습니다. 이를 다른 논리적 규칙 문 안에 중첩하여 범위 축소 문에서 사용할 수 있습니다. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.

**참고**  
콘솔의 시각적 편집기는 여러 요구 사항에 대해 작동하는 한 수준의 규칙 문 중첩을 지원합니다. 더 많은 수준을 중첩하려면 콘솔에서 규칙의 JSON 표현을 편집하거나 API를 사용합니다.

이 표에서는 논리적 규칙 문에 대해 설명하고 각각에 대한 보호 팩(웹 ACL) 용량 단위(WCU) 사용량을 계산하기 위한 몇 가지 지침을 제공합니다. WCU에 대한 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 단원을 참조하세요.


| 논리적 문  | 설명 | WCU | 
| --- | --- | --- | 
| [AND 로직](waf-rule-statement-type-and.md) | 중첩된 문을 AND 로직과 결합합니다. | 중첩 문 기반 | 
|  [NOT 로직](waf-rule-statement-type-not.md)  |  중첩된 문의 결과를 무효화합니다.  |  중첩 문 기반  | 
| [OR 로직](waf-rule-statement-type-or.md) | 중첩된 문을 OR 로직과 결합합니다. | 중첩 문 기반 | 

# AND 규칙 문
<a name="waf-rule-statement-type-and"></a>

AND 규칙 문은 중첩된 문을 논리적 AND 연산과 결합하므로 AND 문이 일치하도록 모든 중첩된 문이 일치해야 합니다. 여기에는 적어도 두 개의 중첩 문이 필요합니다.

## 규칙 문 특성
<a name="and-rule-statement-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** – 중첩된 문에 따라 다릅니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="and-rule-statement-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **요청의 경우**에서 **모든 문과 일치(AND)**를 선택한 다음, 중첩된 문을 입력합니다.
+ **API** – [AndStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AndStatement.html)

## 예제
<a name="and-rule-statement-examples"></a>

다음 목록은 AND 및 NOT 논리 규칙 문을 사용하여 SQL 명령어 삽입 공격 문에 대한 일치 항목에서 거짓 긍정을 제거하는 방법을 보여줍니다. 이 예제의 경우 단일 바이트 일치 문을 작성하여 거짓 긍정을 초래하는 요청을 일치시킬 수 있다고 가정해 보겠습니다.

AND 문은 바이트 일치 문과 일치하지 않으면서 SQL 명령어 삽입 공격 문과 일치하는 요청과 일치합니다.

```
{
      "Name": "SQLiExcludeFalsePositives",
      "Priority": 0,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "NotStatement": {
                "Statement": {
                  "ByteMatchStatement": {
                    "SearchString": "string identifying a false positive",
                    "FieldToMatch": {
                      "Body": {
                        "OversizeHandling": "MATCH"
                      }
                    },
                    "TextTransformations": [
                      {
                        "Priority": 0,
                        "Type": "NONE"
                      }
                    ],
                    "PositionalConstraint": "CONTAINS"
                  }
                }
              }
            },
            {
              "SqliMatchStatement": {
                "FieldToMatch": {
                  "Body": {
                    "OversizeHandling": "MATCH"
                  }
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "SQLiExcludeFalsePositives"
      }
    }
```

콘솔 규칙 시각 편집기를 사용하면 비논리문 또는 NOT 문을 OR 또는 AND 문 아래에 중첩할 수 있습니다. NOT 문의 중첩은 이전 예제에 나와 있습니다.

콘솔 규칙 시각적 편집기를 사용하면 대부분의 중첩이 가능한 명령문을 이전 예제와 같은 논리적 규칙 문 아래에 중첩할 수 있습니다. 시각적 편집기를 사용하여 OR 또는 AND 문을 중첩할 수는 없습니다. 이러한 유형의 중첩을 구성하려면 규칙 문을 JSON으로 제공해야 합니다. 예를 들어, 다음 JSON 규칙 목록에는 AND 문 내에 중첩된 OR 문이 포함됩니다.

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# NOT 규칙 문
<a name="waf-rule-statement-type-not"></a>

NOT 규칙 문은 중첩된 단일 명령문의 결과를 논리적으로 무효화하므로 중첩된 문이 매치할 NOT 문과 일치하지 않아야 하며, 그 반대의 경우도 마찬가지입니다. 이를 위해서는 하나의 중첩된 문이 필요합니다.

예를 들어 특정 국가가 출처가 아닌 요청을 차단하려면 작업을 차단으로 설정하여 NOT 문을 생성하고 국가를 지정하는 지역 일치 문을 중첩합니다.

## 규칙 문 특성
<a name="not-rule-statement-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** – 중첩된 문에 따라 다릅니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="not-rule-statement-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **요청의 경우**에서 **문과 일치하지 않음(NOT)**을 선택한 다음, 중첩된 문을 입력합니다.
+ **API** – [NotStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_NotStatement.html)

# OR 규칙 문
<a name="waf-rule-statement-type-or"></a>

OR 규칙 문은 중첩된 문과 OR 로직을 결합하므로 중첩된 문 중 하나가 매치할 OR 문과 일치해야 합니다. 여기에는 적어도 두 개의 중첩 문이 필요합니다.

예를 들어 특정 국가에서 나온 요청이나 특정 쿼리 문자열이 포함된 요청을 차단하려는 경우에는 OR 문을 생성하고 해당 국가에 대한 지역 일치 문과 쿼리 문자열에 대한 문자열 일치 문을 중첩할 수 있습니다.

대신 특정 국가에서 나오지 *않거나* 특정 쿼리 문자열이 포함된 요청을 차단하려면 이전 OR 문을 수정하여 NOT 문 내부에서 지역 일치 문을 한 수준 낮게 중첩합니다. 콘솔은 한 수준의 중첩만 지원하므로 이러한 수준의 중첩을 위해서는 JSON 서식을 사용해야 합니다.

## 규칙 문 특성
<a name="or-rule-statement-characteristics"></a>

**중첩 가능** – 이러한 문 유형을 중첩할 수 있습니다.

**WCU** – 중첩된 문에 따라 다릅니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="or-rule-statement-where-to-find"></a>
+ 콘솔의 **규칙 빌더** – **요청의 경우**에서 **최소 하나의 문과 일치(OR)**를 선택한 다음, 중첩된 문을 입력합니다.
+ **API** – [OrStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_OrStatement.html)

**예제**  
다음 목록은 OR를 사용하여 다른 두 명령문을 결합하는 방법을 보여줍니다. 중첩된 명령문 중 하나라도 일치하면 OR 문은 일치하는 것입니다.

```
{
  "Name": "neitherOfTwo",
  "Priority": 1,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "neitherOfTwo"
  },
  "Statement": {
    "OrStatement": {
      "Statements": [
        {
          "GeoMatchStatement": {
            "CountryCodes": [
              "CA"
            ]
          }
        },
        {
          "IPSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/ipset/test-ip-set-22222222/33333333-4444-5555-6666-777777777777"
          }
        }
      ]
    }
  }
}
```

콘솔 규칙 시각적 편집기를 사용하면 대부분의 중첩 가능한 명령문을 논리적 규칙 문 아래에 중첩할 수 있지만 시각적 편집기를 사용하여 OR 또는 AND 문을 중첩할 수는 없습니다. 이러한 유형의 중첩을 구성하려면 규칙 문을 JSON으로 제공해야 합니다. 예를 들어, 다음 JSON 규칙 목록에는 AND 문 내에 중첩된 OR 문이 포함됩니다.

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# 에서 속도 기반 규칙 문 사용 AWS WAF
<a name="waf-rule-statement-type-rate-based"></a>

이 섹션에서는 속도 기반 규칙 문이 무엇인지, 어떻게 작동하는지 설명합니다.

속도 기반 규칙은 요청이 너무 빠른 속도로 수신될 때 수신 요청 수를 계산하고 요청 속도를 제한합니다. 규칙은 기준에 따라 요청을 집계하며, 규칙의 평가 기간, 요청 제한 및 작업 설정에 따라 집계 그룹의 수를 계산하고 집계 그룹의 속도를 제한합니다.

**참고**  
Bot Control AWS 관리형 규칙 규칙 그룹의 대상 보호 수준을 사용하여 웹 요청의 속도를 제한할 수도 있습니다. 이 관리형 규칙 그룹을 사용할 경우 추가 요금이 발생합니다. 자세한 내용은 [속도 기반 규칙 및 대상 지정 Bot Control 규칙의 속도 제한 옵션](waf-rate-limiting-options.md) 단원을 참조하십시오.

AWS WAF 는 사용하는 속도 기반 규칙의 각 인스턴스에 대해 별도로 웹 요청을 추적하고 관리합니다. 예를 들어 두 웹 ACLs에서 동일한 속도 기반 규칙 설정을 제공하는 경우 두 규칙 문 각각은 속도 기반 규칙의 별도의 인스턴스를 나타내며 각각은에 의해 자체 추적 및 관리를 받습니다 AWS WAF. 규칙 그룹 내에서 속도 기반 규칙을 정의한 다음 해당 규칙 그룹을 여러 위치에서 사용하는 경우 각 사용에서는 자체 추적 및 관리를 가져오는 속도 기반 규칙의 별도의 인스턴스를 생성합니다 AWS WAF.

**중첩 불가능** – 다른 문 안에 이 문 유형을 중첩 할 수 없습니다. 보호 팩(웹 ACL) 또는 규칙 그룹에 직접 포함할 수 있습니다.

**범위 축소 문** - 이 규칙 유형은 범위 축소 문을 사용하여 규칙이 추적하고 속도가 제한되는 요청의 범위를 좁힙니다. 범위 축소 문은 다른 규칙 구성 설정에 따라 선택 사항이거나 필수일 수 있습니다. 세부 정보는 이 섹션에서 다룹니다. 범위 축소 문에 대한 일반적인 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.

**WCU** - 2(기본 비용). 지정하는 각 사용자 지정 집계 키마다 30WCU를 추가하십시오. 규칙에서 범위 축소 문을 사용하는 경우 해당 문에 대한 WCU를 계산하여 추가합니다.

**이 규칙 문을 찾을 수 있는 위치**
+ 콘솔의 보호 팩(웹 ACL) **규칙 빌더** – **규칙**에서 **유형**에 대해 **속도 기반 규칙**을 선택합니다.
+ **API** – [RateBasedStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RateBasedStatement.html)

**Topics**
+ [의 속도 기반 규칙 상위 수준 설정 AWS WAF](waf-rule-statement-type-rate-based-high-level-settings.md)
+ [의 속도 기반 규칙 주의 사항 AWS WAF](waf-rule-statement-type-rate-based-caveats.md)
+ [에서 속도 기반 규칙 집계 AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md)
+ [속도 기반 규칙 집계 인스턴스 및 수](waf-rule-statement-type-rate-based-aggregation-instances.md)
+ [의 요청에 속도 제한 적용 AWS WAF](waf-rule-statement-type-rate-based-request-limiting.md)
+ [의 속도 기반 규칙 예제 AWS WAF](waf-rule-statement-type-rate-based-examples.md)
+ [속도 기반 규칙에 의해 속도 제한이 적용되는 IP 주소 나열](listing-managed-ips.md)

# 의 속도 기반 규칙 상위 수준 설정 AWS WAF
<a name="waf-rule-statement-type-rate-based-high-level-settings"></a>

속도 기반 규칙 문은 다음과 같은 상위 수준 설정을 사용합니다.
+ **평가 기간** - AWS WAF 가 요청 수에 포함해야 하는 초 단위의 시간으로, 현재 시간에서 되돌아와야 합니다. 예를 들어 설정 120의 경우가 속도를 AWS WAF 확인하면 현재 시간 직전 2분 동안의 요청 수를 계산합니다. 유효한 설정은 60(1분), 120(2분), 300(5분) 및 600(10분)이고, 300(5분)이 기본값입니다.

  이 설정은 AWS WAF 가 속도를 얼마나 자주 검사하는지는 결정하지 않지만 검사할 때마다 얼마나 멀리 보이는지는 결정하지 않습니다. AWS WAF 는 평가 기간 설정과 무관한 타이밍으로 속도를 자주 검사합니다.
+ **속도 제한** - 지정된 평가 기간에 대해서만 추적 AWS WAF 해야 하는 기준과 일치하는 최대 요청 수입니다. 허용되는 최저 한도 설정은 10입니다. 이 제한이 위반되면는 규칙 작업 설정을 기준과 일치하는 추가 요청에 AWS WAF 적용합니다.

  AWS WAF 는 설정한 제한에 가깝게 속도 제한을 적용하지만 정확한 제한 일치를 보장하지는 않습니다. 자세한 내용은 [속도 기반 규칙 주의 사항](waf-rule-statement-type-rate-based-caveats.md) 단원을 참조하십시오.
+ **요청 집계** - 속도 기반 규칙에서 개수를 계산하고 및 속도를 제한하는 웹 요청에 사용할 집계 기준입니다. 설정한 속도 제한은 각 집계 인스턴스에 적용됩니다. 자세한 내용은 [속도 기반 규칙 집계](waf-rule-statement-type-rate-based-aggregation-options.md) 및 [집계 인스턴스 및 개수](waf-rule-statement-type-rate-based-aggregation-instances.md) 섹션을 참조하세요.
+ **작업** - 규칙이 속도를 제한하는 요청에 대해 수행할 작업입니다. Allow를 제외한 모든 규칙 작업을 사용할 수 있습니다. 이는 평소와 같이 규칙 수준에서 설정되지만 속도 기반 규칙과 관련된 몇 가지 제한 및 동작이 있습니다. 규칙 작업에 대한 전체적인 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요. 속도 제한과 관련된 자세한 내용은 이 섹션의 [의 요청에 속도 제한 적용 AWS WAF](waf-rule-statement-type-rate-based-request-limiting.md)을 참조하세요.
+ **검사 및 속도 제한 범위** - 범위 축소 문을 추가하여 속도 기반 명령문이 추적하고 속도를 제한하는 요청의 범위를 좁힐 수 있습니다. 범위 축소 문을 지정하는 경우 규칙이 범위 축소 문과 일치하는 요청만 집계, 계산 및 속도를 제한합니다. 요청 집계 옵션 **모두 계산**을 선택한 경우 범위 축소 문이 필요합니다. 범위 축소 문에 대한 자세한 내용은 [범위 축소 문 사용](waf-rule-scope-down-statements.md) 섹션을 참조하세요.
+ **(선택 사항) 전달 IP 구성** - 이 옵션은 요청 집계의 **헤더에 IP 주소**를 단독으로 또는 사용자 지정 키 설정의 일부로 지정하는 경우에만 사용됩니다. AWS WAF 는 지정된 헤더에서 첫 번째 IP 주소를 검색하고 이를 집계 값으로 사용합니다. 이 용도의 공통 헤더는 `X-Forwarded-For`지만 원하는 헤더를 지정할 수 있습니다. 자세한 내용은 [전달된 IP 주소 사용](waf-rule-statement-forwarded-ip-address.md) 단원을 참조하십시오.

# 의 속도 기반 규칙 주의 사항 AWS WAF
<a name="waf-rule-statement-type-rate-based-caveats"></a>

이 섹션에서는 속도 기반 규칙 사용에 대한 주의 사항을 나열합니다.

AWS WAF 속도 제한은 가장 효율적이고 효과적인 방법으로 높은 요청 속도를 제어하고 애플리케이션의 가용성을 보호하도록 설계되었습니다. 이는 요청 속도를 정확히 제한하기 위함이 아닙니다.
+ AWS WAF 는 최신 요청에 더 중요한 알고리즘을 사용하여 현재 요청 속도를 추정합니다. 따라서 AWS WAF 는 설정한 제한에 가깝게 속도 제한을 적용하지만 정확한 제한 일치를 보장하지는 않습니다.
+ 가 요청 속도를 AWS WAF 추정할 때마다는 구성된 평가 기간 동안 들어온 요청 수를 다시 AWS WAF 살펴봅니다. 이러한 요인과 전파 지연과 같은 다른 요인으로 인해가 요청을 AWS WAF 감지하고 속도를 제한하기 전에 최대 몇 분 동안 요청이 너무 높은 속도로 수신될 수 있습니다. 마찬가지로 AWS WAF 에서 속도 제한 작업을 축소 및 중단하기 전에 일정 시간 동안 요청 속도가 제한보다 낮을 수 있습니다. 일반적으로 이 지연은 30초 미만입니다.
+ 사용 중인 규칙에서 속도 제한 설정을 변경하면 규칙의 속도 제한 수가 재설정됩니다. 이렇게 하면 규칙의 속도 제한 활동이 최대 1분 동안 일시 중지될 수 있습니다. 속도 제한 설정은 평가 기간, 속도 제한, 요청 집계 설정, 전달된 IP 구성 및 검사 범위입니다.

# 에서 속도 기반 규칙 집계 AWS WAF
<a name="waf-rule-statement-type-rate-based-aggregation-options"></a>

이 섹션에서는 요청을 집계하는 옵션을 설명합니다.

기본적으로 속도 기반 규칙은 요청 IP 주소에 기반하여 요청을 집계하고 속도를 제한합니다. 다양한 기타 집계 키와 키 조합을 사용하도록 규칙을 구성할 수 있습니다. 예를 들어 전달된 IP 주소, HTTP 메서드 또는 쿼리 인수를 기반으로 집계할 수 있습니다. 집계 키 조합(예: IP 주소 및 HTTP 메서드)이나 서로 다른 두 쿠키의 값을 지정할 수도 있습니다.

**참고**  
집계 키에 지정하는 모든 요청 구성 요소가 웹 요청에 있어야 규칙을 통해 요청을 평가하거나 속도를 제한할 수 있습니다.

다음 집계 옵션을 사용하여 속도 기반 규칙을 구성할 수 있습니다.
+ **소스 IP 주소** - 웹 요청 오리진의 IP 주소만 사용하여 집계합니다.

  소스 IP 주소는 발신 클라이언트의 주소를 포함하지 않을 수 있습니다. 웹 요청이 하나 이상의 프록시 또는 로드 밸런서를 통과하는 경우 여기에는 마지막 프록시의 주소가 포함됩니다.
+ **헤더의 IP 주소** - HTTP 헤더의 클라이언트 주소만 사용하여 집계합니다. 이러한 주소를 전달된 IP 주소라고도 합니다.

  이 구성을 사용하면 헤더에 잘못된 형식의 IP 주소가 있는 웹 요청에 적용할 폴백 동작도 지정할 수 있습니다. 폴백 동작은 요청에 대한 일치 결과를 일치하거나 일치하지 않음으로 설정합니다. 일치하는 항목이 없는 경우애는 속도 기반 규칙이 요청 수를 계산하거나 요청의 속도를 제한하지 않습니다. 일치할 경우 속도 기반 규칙은 해당 요청을 지정된 헤더에 잘못된 IP 주소가 있는 다른 요청과 함께 그룹화합니다.

  헤더가 프록시를 통해 일관되지 않게 처리되고 검사를 우회하도록 수정될 수도 있으므로 이 옵션은 주의하여 사용해야 합니다. 추가 정보와 정책 모범 사례는 [에서 전달된 IP 주소 사용 AWS WAF](waf-rule-statement-forwarded-ip-address.md) 섹션을 참조하세요.
+ **ASN** - 소스 IP 주소와 연결된 Autonomous System Number(ASN)를 집계 키로 사용하여 집계합니다. 이는 발신 클라이언트의 주소가 아닐 수 있습니다. 웹 요청이 하나 이상의 프록시 또는 로드 밸런서를 통과하는 경우 여기에는 마지막 프록시의 주소가 포함됩니다.

  가 IP 주소에서 ASN을 도출 AWS WAF 할 수 없는 경우 ASN을 ASN 0으로 계산합니다. 매핑되지 않은 ASN에 속도 제한을 적용하지 않으려면 ASN 0이 있는 요청을 제외하는 범위 축소 규칙을 생성할 수 있습니다.
+ **헤더의 IP 주소** - HTTP 헤더의 클라이언트 IP 주소와 연결된 ASN을 사용하여 집계합니다. 이러한 주소를 전달된 IP 주소라고도 합니다. 이 구성을 사용하면 유효하지 않거나 잘못된 형식의 IP 주소가 있는 웹 요청에 적용할 폴백 동작도 지정할 수 있습니다. 폴백 동작은 요청에 대한 일치 결과를 일치하거나 일치하지 않음으로 설정합니다. 전달된 IP 구성에서 폴백 동작을 일치하도록 설정하면는 잘못된 IP 주소를 일치하는 값으로 AWS WAF 처리합니다. 이렇게 하면 AWS WAF 가 비율 기반 규칙의 복합 키의 나머지 부분을 계속 평가할 수 있습니다. 일치하는 항목이 없는 경우애는 속도 기반 규칙이 요청 수를 계산하거나 요청의 속도를 제한하지 않습니다.

  헤더가 프록시를 통해 일관되지 않게 처리되고 검사를 우회하도록 수정될 수 있으므로 이 옵션은 주의하여 사용해야 합니다. 추가 정보와 정책 모범 사례는 [에서 전달된 IP 주소 사용 AWS WAF](waf-rule-statement-forwarded-ip-address.md) 섹션을 참조하세요.
+ **모두 계산** - 규칙의 범위 축소 문과 일치하는 모든 요청 수를 계산하고 이들 요청의 속도를 제한합니다. 이 옵션에는 범위 축소 문이 필요합니다. 이는 일반적으로 특정 요청의 속도를 제한하는 데 사용됩니다(예: 특정 레이블이 있는 모든 요청 또는 특정 지리적 영역에서 들어오는 모든 요청).
+ **사용자 지정 키** - 하나 이상의 사용자 지정 집계 키를 사용하여 집계합니다. IP 주소 옵션 중 하나를 다른 집계 키와 결합하려면 여기 사용자 지정 키에서 해당 옵션을 정의하십시오.

  사용자 지정 집계 키는 [에서 구성 요소 요청 AWS WAF](waf-rule-statement-fields-list.md)에 설명된 웹 요청 구성 요소 옵션의 하위 집합입니다.

  다음과 같은 키 옵션이 있습니다. 별도로 명시된 경우가 아니면 옵션을 여러 번 사용할 수 있습니다. 예: 헤더 2개 또는 레이블 네임스페이스 3개.
  + **레이블 네임스페이스** - 레이블 네임스페이스를 집계 키로 사용합니다. 지정된 레이블 네임스페이스가 있는 각각의 고유한 정규화된 레이블 이름이 집계 인스턴스에 포함됩니다. 사용자 지정 키로 사용하는 경우 각 레이블 이름만 사용하는 경우 각 레이블 이름만으로 집계 인스턴스가 정의됩니다.

    속도 기반 규칙은 보호 팩(웹 ACL)에서 미리 평가되는 규칙에 의해 요청에 추가된 레이블만 사용합니다.

    레이블 네임스페이스와 이름에 대한 자세한 내용은 [의 레이블 구문 및 이름 지정 요구 사항 AWS WAF](waf-rule-label-requirements.md) 섹션을 참조하세요.
  + **헤더** - 이름이 지정된 헤더를 집계 키로 사용합니다. 헤더의 각 고유 값은 집계 인스턴스에 포함됩니다.

    헤더는 선택적 텍스트 변환을 사용합니다. [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md)을(를) 참조하세요.
  + **쿠키** - 이름이 지정된 쿠키를 집계 키로 사용합니다. 쿠키의 각 고유 값은 집계 인스턴스에 포함됩니다.

    쿠키는 선택적 텍스트 변환을 사용합니다. [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md)을(를) 참조하세요.
  + **쿼리 인수** - 요청의 단일 쿼리 인수를 집계 키로 사용합니다. 이름이 지정된 쿼리 인수에 대한 각각의 고유 값이 집계 인스턴스에 포함됩니다.

    쿼리 인수는 선택적 텍스트 변환을 사용합니다. [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md)을(를) 참조하세요.
  + **쿼리 문자열** - 요청의 전체 쿼리 문자열을 집계 키로 사용합니다. 각각의 고유한 쿼리 문자열이 집계 인스턴스에 포함됩니다. 이 키 유형은 한 번만 사용할 수 있습니다.

    쿼리 문자열은 선택적 텍스트 변환을 사용합니다. [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md)을(를) 참조하세요.
  + **URI 경로** - 요청의 URI 경로를 집계 키로 사용합니다. 각각의 고유한 URI 경로가 집계 인스턴스에 포함됩니다. 이 키 유형은 한 번만 사용할 수 있습니다.

    URI 경로는 선택적 텍스트 변환을 사용합니다. [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md)을(를) 참조하세요.
  + **JA3 지문** - 요청에 JA3 지문을 집계 키로 사용합니다. 각각의 고유한 JA3 지문이 집계 인스턴스에 포함됩니다. 이 키 유형은 한 번만 사용할 수 있습니다.
  + **JA4 지문** - 요청에 JA4 지문을 집계 키로 사용합니다. 각각의 고유한 JA4 지문이 집계 인스턴스에 포함됩니다. 이 키 유형은 한 번만 사용할 수 있습니다.
  + **HTTP 메서드** - 요청의 HTTP 메서드를 집계 키로 사용합니다. 각각의 고유한 HTTP 메서드가 집계 인스턴스에 포함됩니다. 이 키 유형은 한 번만 사용할 수 있습니다.
  + **IP 주소** - 웹 요청 오리진의 IP 주소를 다른 키와 함께 사용하여 집계합니다.

    여기에는 발신 클라이언트의 주소가 포함되지 않을 수 있습니다. 웹 요청이 하나 이상의 프록시 또는 로드 밸런서를 통과하는 경우 여기에는 마지막 프록시의 주소가 포함됩니다.
  + **헤더의 IP 주소** - HTTP 헤더의 클라이언트 주소를 다른 키와 함께 사용하여 집계합니다. 이러한 주소를 전달된 IP 주소라고도 합니다.

    헤더가 프록시를 통해 일관되지 않게 처리되고 검사를 우회하도록 수정될 수 있으므로 이 옵션은 주의하여 사용해야 합니다. 추가 정보와 정책 모범 사례는 [에서 전달된 IP 주소 사용 AWS WAF](waf-rule-statement-forwarded-ip-address.md) 섹션을 참조하세요.

# 속도 기반 규칙 집계 인스턴스 및 수
<a name="waf-rule-statement-type-rate-based-aggregation-instances"></a>

이 섹션에서는 속도 기반 규칙이 웹 요청을 평가하는 방법을 설명합니다.

속도 기반 규칙이 집계 기준을 사용하여 웹 요청을 평가하는 경우, 규칙이 지정된 집계 키에 대해 찾는 각각의 고유한 값 집합이 고유한 *집계 인스턴스*를 정의합니다.
+ **다중 키** - 사용자 지정 키를 여러 개 정의한 경우 각 키의 값이 집계 인스턴스 정의에 포함됩니다. 각각의 고유한 값 조합이 집계 인스턴스를 정의합니다.
+ **단일 키** - 사용자 지정 키에서 또는 싱글톤 IP 주소 선택 항목 중 하나를 선택하여 단일 키를 선택한 경우 키의 각 고유 값이 집계 인스턴스를 정의합니다.
+ **모두 계산 - 키 없음** - **모두 계산** 옵션을 선택한 경우 규칙이 평가하는 모든 요청은 해당 규칙의 단일 집계 인스턴스에 속합니다. 이 옵션에는 범위 축소 문이 필요합니다.

 

속도 기반 규칙은 식별된 각 집계 인스턴스마다 별도로 웹 요청 수를 계산합니다.

예를 들어, 속도 기반 규칙이 다음 IP 주소 및 HTTP 메서드 값을 사용하여 웹 요청을 평가한다고 가정해 보겠습니다.
+ IP 주소 10.1.1.1, HTTP 메서드 POST
+ IP 주소 10.1.1.1, HTTP 메서드 GET
+ IP 주소 127.0.0.0, HTTP 메서드 POST
+ IP 주소 10.1.1.1, HTTP 메서드 GET

이 규칙은 집계 기준에 따라 다양한 집계 인스턴스를 생성합니다.
+ 집계 기준이 단지 IP 주소인 경우 각 개별 IP 주소는 집계 인스턴스이며 각각에 대해 개별적으로 요청을 AWS WAF 계산합니다. 이 예제의 집계 인스턴스와 요청 수는 다음과 같습니다.
  + IP 주소 10.1.1.1: 개수 3
  + IP 주소 127.0.0.0: 개수 1
+ 집계 기준이 HTTP 메서드이면 각 개별 HTTP 메서드가 집계 인스턴스입니다. 이 예제의 집계 인스턴스와 요청 수는 다음과 같습니다.
  + HTTP 메서드 POST: 개수 2
  + HTTP 메서드 GET: 개수 2
+ 집계 기준이 IP 주소 및 HTTP 메서드 둘 다인 경우 각 IP 주소와 각 HTTP 메서드가 통합 집계 인스턴스에 포함됩니다. 이 예제의 집계 인스턴스와 요청 수는 다음과 같습니다.
  + IP 주소 10.1.1.1, HTTP 메서드 POST: 개수 1
  + IP 주소 10.1.1.1, HTTP 메서드 GET: 개수 2
  + IP 주소 127.0.0.0, HTTP 메서드 POST: 개수 1

# 의 요청에 속도 제한 적용 AWS WAF
<a name="waf-rule-statement-type-rate-based-request-limiting"></a>

이 섹션에서는 속도 제한 동작이 속도 기반 규칙에 어떻게 작동하는지 설명합니다.

가 속도 기반 규칙에 대한 요청의 속도를 제한하는 데 AWS WAF 사용하는 기준은가 규칙에 대한 요청을 집계하는 데 AWS WAF 사용하는 기준과 동일합니다. 규칙에 대한 범위 축소 문을 정의하면 범위 축소 문과 일치하는 요청 AWS WAF 만 집계, 계산 및 속도 제한합니다.

웹 요청이 다음과 같은 일치 기준을 충족하는 경우 속도 기반 규칙은 해당 규칙 작업 설정을 특정 웹 요청에 적용합니다.
+ 웹 요청은 규칙의 범위 축소 문(정의된 경우)과 일치합니다.
+ 웹 요청이 요청 수가 현재 규칙 제한을 초과하는 집계 인스턴스에 속합니다.

**가 규칙 작업을 AWS WAF 적용하는 방법**  
속도 기반 규칙이 요청에 속도 제한을 적용하는 경우 해당 규칙 작업이 적용되며, 작업 사양에 사용자 지정 처리 또는 레이블을 정의한 경우 규칙은 그러한 처리 또는 레이블을 적용합니다. 이 요청 처리는 일치 규칙이 해당 작업 설정을 일치하는 웹 요청에 적용하는 방식과 동일합니다. 속도 기반 규칙은 속도 제한이 적극적으로 적용되는 요청에 대해서만 레이블을 적용하거나 다른 작업을 수행합니다.

Allow를 제외한 모든 규칙 작업을 사용할 수 있습니다. 규칙 작업에 대한 전체적인 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

다음 목록은 각 작업에 대해 속도 제한이 작동하는 방식을 설명합니다.
+ **Block** - 요청을 AWS WAF 차단하고 정의한 사용자 지정 차단 동작을 적용합니다.
+ **Count** - 요청을 AWS WAF 계산하고, 정의한 사용자 지정 헤더 또는 레이블을 적용하고, 요청에 대한 보호 팩(웹 ACL) 평가를 계속합니다.

  이 작업은 요청의 속도를 제한하지 않습니다. 한도를 초과하는 요청만 계산합니다.
+ **CAPTCHA 또는 Challenge** - AWS WAF 가 요청 토큰의 상태에 따라 요청을 Block 또는 Count와 같이 처리합니다.

  이 작업은 유효한 토큰이 있는 요청의 속도를 제한하지 않습니다. 제한을 초과하고 유효한 토큰이 누락된 요청의 속도를 제한합니다.
  + 요청에 만료되지 않은 유효한 토큰이 없는 경우 이 작업은 요청을 차단하고 CAPTCHA 퍼즐 또는 브라우저 챌린지를 클라이언트로 다시 보냅니다.

    최종 사용자나 클라이언트 브라우저가 성공적으로 응답하면 클라이언트는 유효한 토큰을 받고 원래 요청을 자동으로 다시 보냅니다. 집계 인스턴스에 대한 속도 제한이 여전히 유효한 경우 유효하고 만료되지 않은 토큰이 포함된 이 새 요청에는 다음 글머리 항목에 설명된 대로 작업이 적용됩니다.
  + 요청에 유효하고 만료되지 않은 토큰이 있는 경우 CAPTCHA or Challenge 작업은 토큰을 확인하고 Count 작업과 마찬가지로 요청에 대해 아무런 작업도 수행하지 않습니다. 속도 기반 규칙은 종료 작업을 취하지 않고 요청 평가를 보호 팩(웹 ACL)에 반환하며, 보호 팩(웹 ACL)은 요청 평가를 계속 진행합니다.

  자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 섹션을 참조하세요.

**IP 주소 또는 전달된 IP 주소만 속도를 제한하는 경우**  
전달된 IP 주소에 대한 IP 주소만 속도 제한하도록 규칙을 구성하는 경우 규칙이 현재 속도를 제한하는 IP 주소의 목록을 검색할 수 있습니다. 범위 축소 문을 사용하는 경우 속도가 제한되는 요청은 IP 목록에서 범위 축소 문과 일치하는 요청입니다. IP 주소 목록 검색에 대한 자세한 내용은 [속도 기반 규칙에 의해 속도 제한이 적용되는 IP 주소 나열](listing-managed-ips.md) 섹션을 참조하세요.

# 의 속도 기반 규칙 예제 AWS WAF
<a name="waf-rule-statement-type-rate-based-examples"></a>

이 섹션에서는 다양한 일반 속도 기반 규칙 사용 사례에 대한 예제 구성을 설명합니다.

각 예제는 사용 사례에 대한 설명을 제공하고 나서 사용자 지정 구성 규칙의 JSON 목록에 나와 있는 솔루션을 표시합니다.

**참고**  
이 예제에 표시된 JSON 목록은 콘솔에서 규칙을 구성하고 나서 **규칙 JSON 편집기**로 편집하여 생성한 것입니다.

**Topics**
+ [로그인 페이지에 대한 요청 속도 제한](waf-rate-based-example-limit-login-page.md)
+ [IP 주소, 사용자 에이전트 쌍으로부터의 로그인 페이지에 대한 요청 속도 제한](waf-rate-based-example-limit-login-page-keys.md)
+ [특정 헤더가 누락된 요청의 속도 제한](waf-rate-based-example-limit-missing-header.md)
+ [특정 레이블이 있는 요청의 속도 제한](waf-rate-based-example-limit-labels.md)
+ [지정된 레이블 네임스페이스가 있는 레이블에 대한 요청 속도 제한](waf-rate-based-example-limit-label-aggregation.md)
+ [특정 ASN이 있는 요청의 속도 제한](waf-rate-based-example-limit-asn.md)

# 로그인 페이지에 대한 요청 속도 제한
<a name="waf-rate-based-example-limit-login-page"></a>

사이트의 나머지 부분에 대한 트래픽에 영향을 주지 않으면서 웹 사이트의 로그인 페이지에 대한 요청 수를 제한하려는 경우 로그인 페이지에 대한 요청과 일치하는 범위 축소 문과 **모두 계산**으로 설정된 요청 집계를 사용하여 속도 기반 규칙을 생성할 수 있습니다.

속도 기반 규칙은 단일 집계 인스턴스의 로그인 페이지에 대한 모든 요청을 계산하고 요청이 제한을 초과할 때 범위 축소 문과 일치하는 모든 요청에 규칙 작업을 적용합니다.

다음 JSON 목록은 이 규칙 구성의 예를 보여줍니다. 모두 계산 집계 옵션은 JSON에 `CONSTANT` 설정으로 나와 있습니다. 이 예제는 `/login`으로 시작하는 로그인 페이지와 일치합니다.

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 1000,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "CONSTANT",
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "FieldToMatch": {
            "UriPath": {}
          },
          "PositionalConstraint": "STARTS_WITH",
          "SearchString": "/login",
          "TextTransformations": [
            {
              "Type": "NONE",
              "Priority": 0
            }
          ]
        }
      }
    }
  }
}
```

# IP 주소, 사용자 에이전트 쌍으로부터의 로그인 페이지에 대한 요청 속도 제한
<a name="waf-rate-based-example-limit-login-page-keys"></a>

제한을 초과하는 IP 주소, 사용자 에이전트 쌍의에 대한 로그인 페이지 요청 수를 제한하려면 요청 집계를 **사용자 지정 키**로 설정하고 집계 기준을 지정합니다.

다음 JSON 목록은 이 규칙 구성의 예를 보여줍니다. 이 예제에서는 IP 주소, 사용자 에이전트 쌍당 요청 제한을 5분 동안 100개로 설정했습니다.

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 100,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "CUSTOM_KEYS",
      "CustomKeys": [
        {
          "Header": {
            "Name": "User-Agent",
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ]
          }
        },
        {
          "IP": {}
        }
      ],
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "FieldToMatch": {
            "UriPath": {}
          },
          "PositionalConstraint": "STARTS_WITH",
          "SearchString": "/login",
          "TextTransformations": [
            {
              "Type": "NONE",
              "Priority": 0
            }
          ]
        }
      }
    }
  }
}
```

# 특정 헤더가 누락된 요청의 속도 제한
<a name="waf-rate-based-example-limit-missing-header"></a>

특정 헤더가 누락된 요청의 수를 제한하려는 경우 **모든 계산** 집계 옵션을 범위 축소 문과 함께 사용할 수 있습니다. 헤더가 존재하고 값이 있는 경우에만 true를 반환하는 명령문을 포함하는 논리 `NOT` 문을 사용하여 범위 축소 문을 구성합니다.

다음 JSON 목록은 이 규칙 구성의 예를 보여줍니다.

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 1000,
      "AggregateKeyType": "CONSTANT",
      "EvaluationWindowSec": 300,
      "ScopeDownStatement": {
        "NotStatement": {
          "Statement": {
            "SizeConstraintStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "user-agent"
                }
              },
              "ComparisonOperator": "GT",
              "Size": 0,
              "TextTransformations": [
                {
                  "Type": "NONE",
                  "Priority": 0
                }
              ]
            }
          }
        }
      }
    }
  }
}
```

# 특정 레이블이 있는 요청의 속도 제한
<a name="waf-rate-based-example-limit-labels"></a>

다양한 범주의 요청 수를 제한하기 위해 속도 제한을 요청에 레이블을 추가하는 규칙 또는 규칙 그룹과 결합할 수 있습니다. 이를 수행하려면 다음과 같이 보호 팩(웹 ACL)을 구성합니다.
+ 레이블을 추가하는 규칙 또는 규칙 그룹을 추가하고 속도를 제한할 요청을 차단하거나 허용하지 않도록 구성합니다. 관리형 규칙 그룹을 사용하는 경우 Count에서 이 동작을 수행하려면 일부 규칙 그룹의 규칙 작업을 재정의해야 할 수 있습니다.
+ 레이블 지정 규칙 및 규칙 그룹보다 높은 우선 순위 번호 설정을 사용하여 보호 팩(웹 ACL)에 속도 기반 규칙을 추가합니다.는 가장 낮은 것부터 시작하여 숫자 순서로 규칙을 AWS WAF 평가하므로 속도 기반 규칙은 레이블 지정 규칙 이후에 실행됩니다. 규칙의 범위 축소 문에 있는 레이블 일치와 레이블 집계를 조합하여 레이블에 대한 속도 제한을 구성합니다.

다음 예제에서는 Amazon IP 평판 목록 AWS 관리형 규칙 규칙 그룹을 사용합니다. 규칙 그룹 규칙은 `AWSManagedIPDDoSList`에서 DDoS 활동에 적극적으로 참여하는 것으로 알려진 IP의 요청을 탐지하고 레이블을 지정합니다. 이 규칙의 동작은 규칙 그룹 정의에서 Count로 구성됩니다. 규칙 그룹에 대한 자세한 내용은 [Amazon IP 신뢰도 목록 관리형 규칙 그룹](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-amazon) 섹션을 참조하세요.

다음 보호 팩(웹 ACL) JSON 목록은 IP 신뢰도 규칙 그룹과 레이블 일치 속도 기반 규칙을 차례로 사용합니다. 속도 기반 규칙은 범위 축소 문을 사용하여 규칙 그룹 규칙으로 표시된 요청을 필터링합니다. 속도 기반 규칙 명령문은 필터링된 요청을 해당 IP 주소별로 집계하고 속도를 제한합니다.

```
{
  "Name": "test-web-acl",
  "Id": ... 
  "ARN": ...
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesAmazonIpReputationList",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesAmazonIpReputationList"
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesAmazonIpReputationList"
      }
    },
    {
      "Name": "test-rbr",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "EvaluationWindowSec": 300,
          "AggregateKeyType": "IP",
          "ScopeDownStatement": {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList"
            }
          }
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-web-acl"
  },
  "Capacity": 28,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:"
}
```

# 지정된 레이블 네임스페이스가 있는 레이블에 대한 요청 속도 제한
<a name="waf-rate-based-example-limit-label-aggregation"></a>

**참고**  
Bot Control 관리형 규칙 그룹의 공통 수준 규칙은 다양한 범주의 봇에 레이블을 추가하지만 확인되지 않은 봇의 요청만 차단합니다. 이러한 규칙에 대한 자세한 내용은 [봇 컨트롤 규칙 목록](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules) 섹션을 참조하세요.

Bot Control 관리형 규칙 그룹을 사용하는 경우 확인된 개별 봇의 요청에 대해 속도 제한을 추가할 수 있습니다. 이를 위해 Bot Control 규칙 그룹 이후에 실행되어 봇 이름 레이블별로 요청을 집계하는 속도 기반 규칙을 추가합니다. **Label 네임스페이스** 집계 키를 지정하고 네임스페이스 키를 `awswaf:managed:aws:bot-control:bot:name:`으로 설정합니다. 지정된 네임스페이스가 있는 각 고유 레이블이 집계 인스턴스를 정의합니다. 예를 들어, 레이블 `awswaf:managed:aws:bot-control:bot:name:axios` 및 `awswaf:managed:aws:bot-control:bot:name:curl`이 각각 집계 인스턴스를 정의합니다.

다음 보호 팩(웹 ACL) JSON 목록은 이러한 구성을 보여줍니다. 이 예제의 규칙은 단일 봇 집계 인스턴스에 대한 요청을 2분 동안 1,000개로 제한합니다.

```
{
  "Name": "test-web-acl",
  "Id": ... 
  "ARN": ...
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesBotControlRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesBotControlRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesBotControlRuleSet": {
                "InspectionLevel": "COMMON"
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesBotControlRuleSet"
      }
    },
    {
      "Name": "test-rbr",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 1000,
          "EvaluationWindowSec": 120,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "LabelNamespace": {
                "Namespace": "awswaf:managed:aws:bot-control:bot:name:"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-web-acl"
  },
  "Capacity": 82,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:"
}
```

# 특정 ASN이 있는 요청의 속도 제한
<a name="waf-rate-based-example-limit-asn"></a>

요청의 IP 주소를 기반으로 특정 Autonomous System Number(ASN)의 요청 수를 제한하려면 요청 집계를 *사용자 지정 키*로 설정하고 집계 기준을 제공합니다.

다음 JSON은 `X-Forwarded-For` 헤더에 있는 전달된 IP 주소에서 파생된 ASN을 집계하는 규칙의 예를 보여줍니다. IP 주소의 형식이 잘못되어가 ASN을 도출 AWS WAF 할 수 없는 경우 대체 동작은 로 설정됩니다`MATCH`.

```
{
    "Name": "test-rbr",
    "Priority": 0,
    "Statement": {
        "RateBasedStatement": {
            "AggregateKeyType": "CUSTOM_KEYS",
            "CustomKeys": [
                {
                    "ASN": {}
                },
                {
                    "ForwardedIP": {}
                }
            ],
            "EvaluationWindowSec": 300,
            "ForwardedIPConfig": {
                "FallbackBehavior": "MATCH",
                "HeaderName": "X-Forwarded-For"
            },
            "Limit": 2000
        }
    },
    "VisibilityConfig": {
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr",
        "SampledRequestsEnabled": true
    }
}
```

# 속도 기반 규칙에 의해 속도 제한이 적용되는 IP 주소 나열
<a name="listing-managed-ips"></a>

이 섹션에서는 CLI, API 또는 SDK를 사용하여 속도 기반 규칙에서 현재 속도 제한된 IP 주소 목록에 액세스하는 방법에 대해 설명합니다.

속도 기반 규칙이 IP 주소 또는 전달된 IP 주소에서만 집계되는 경우 규칙이 현재 속도를 제한하는 IP 주소 목록을 검색할 수 있습니다.는 이러한 IP 주소를 규칙의 관리형 키 목록에 AWS WAF 저장합니다.

**참고**  
이 옵션은 IP 주소만 또는 헤더의 IP 주소만 집계하는 경우에 한하여 사용할 수 있습니다. 사용자 지정 키 요청 집계를 사용하는 경우 사용자 지정 키에서 IP 주소 사양 중 하나를 사용하더라도 속도가 제한된 IP 주소의 목록을 검색할 수 없습니다.

속도 기반 규칙은 규칙의 범위 축소 문과 일치하는 규칙의 관리 키 목록에 있는 요청에 해당 규칙 작업을 적용합니다. 규칙에 범위 축소 문이 없는 경우 목록에 있는 IP 주소의 모든 요청에 작업이 적용됩니다. 규칙 작업은 기본적으로 Block이지만, Allow의 경우를 제외하고는 유효한 규칙 작업이면 어떤 것이든 사용할 수 있습니다. 단일 속도 기반 규칙 인스턴스를 사용하여 속도를 제한 AWS WAF 할 수 있는 최대 IP 주소 수는 10,000개입니다. 10,000개 이상의 주소가 속도 제한을 초과하는 경우는 속도가 가장 높은 주소를 AWS WAF 제한합니다.

CLI, API 또는 SDK를 사용하여 속도 기반 규칙의 관리형 키 목록에 액세스할 수 있습니다. 이 주제에서는 CLI 및 API를 사용한 액세스에 대해 설명합니다. 현재는 콘솔에서 목록에 대한 액세스를 제공하지 않습니다.

 AWS WAF API의 경우 명령은 [GetRateBasedStatementManagedKeys](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetRateBasedStatementManagedKeys.html).

 AWS WAF CLI의 경우 명령은 [get-rate-based-statement-managed-keys](https://docs.aws.amazon.com/cli/latest/reference/wafv2/get-rate-based-statement-managed-keys.html)입니다.

다음은 Amazon CloudFront 배포의 보호 팩(웹 ACL)에서 사용 중인 속도 기반 규칙에서 속도 제한한 IP 주소 목록을 검색하는 구문을 보여줍니다.

```
aws wafv2 get-rate-based-statement-managed-keys --scope=CLOUDFRONT --region=us-east-1 --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-name=RuleName
```

다음은 리전 애플리케이션, Amazon API Gateway REST API, Application Load Balancer, an AWS AppSync GraphQL API, Amazon Cognito 사용자 풀, AWS App Runner 서비스 AWS Amplify또는 AWS Verified Access 인스턴스의 구문을 보여줍니다.

```
aws wafv2 get-rate-based-statement-managed-keys --scope=REGIONAL --region=region --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-name=RuleName
```

AWS WAF 는 웹 요청을 모니터링하고 보호 팩(웹 ACL), 선택적 규칙 그룹 및 속도 기반 규칙의 각 고유한 조합에 대해 독립적으로 키를 관리합니다. 예를 들어 규칙 그룹 내에서 속도 기반 규칙을 정의한 다음 보호 팩(웹 ACL)의 규칙 그룹을 사용하는 경우 AWS WAF 는 웹 요청을 모니터링하고 해당 보호 팩(웹 ACL), 규칙 그룹 참조문 및 속도 기반 규칙 인스턴스에 대한 키를 관리합니다. 두 번째 보호 팩(웹 ACL)에서 동일한 규칙 그룹을 사용하는 경우는 웹 요청을 AWS WAF 모니터링하고이 두 번째 사용에 대한 키를 첫 번째 사용과 완전히 독립적으로 관리합니다.

규칙 그룹 내에 정의한 속도 기반 규칙의 경우, 보호 팩(웹 ACL) 이름 및 규칙 그룹 내 속도 기반 규칙 이름 외에도 요청에 규칙 그룹 참조 문의 이름을 제공해야 합니다. 다음은 속도 기반 규칙이 규칙 그룹 안에 정의되고 규칙 그룹이 보호 팩(웹 ACL)에서 사용되는 지리적 응용 프로그램의 구문을 보여줍니다.

```
aws wafv2 get-rate-based-statement-managed-keys --scope=REGIONAL --region=region --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-group-rule-name=RuleGroupRuleName --rule-name=RuleName
```

# 에서 규칙 그룹 규칙 문 사용 AWS WAF
<a name="waf-rule-statements-rule-group"></a>

**참고**  
규칙 그룹 규칙 문은 중첩할 수 없습니다.

이 섹션에서는 보호 팩(웹 ACL)에서 사용할 수 있는 규칙 그룹의 규칙문에 대해 설명합니다. 규칙 그룹 보호 팩(웹 ACL) 용량 단위(WCU)는 규칙 그룹 생성 시 규칙 그룹 소유자가 설정합니다. WCU에 대한 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 단원을 참조하세요.


| 규칙 그룹 문 | 설명 | WCU | 
| --- | --- | --- | 
|  [관리형 규칙 그룹 문 사용](waf-rule-statement-type-managed-rule-group.md)  |  지정된 관리형 규칙 그룹에 정의된 규칙을 실행합니다. 범위 축소 문을 추가하여 규칙 그룹이 평가하는 요청 범위를 좁힐 수 있습니다. 관리형 규칙 그룹 문을 다른 문 유형 안에 중첩할 수 없습니다.  |  규칙 그룹과 범위 축소 문에 대한 모든 추가 WCU에 의해 정의됩니다.  | 
| [규칙 그룹 문 사용](waf-rule-statement-type-rule-group.md) | 관리하는 규칙 그룹에 정의된 규칙을 실행합니다. 사용자 고유의 규칙 그룹 대한 규칙 그룹 참조 문에는 범위 축소 문을 추가할 수 없습니다. 규칙 그룹 문을 다른 문 유형 안에 중첩할 수 없습니다.  | 규칙 그룹을 생성할 때 규칙 그룹에 대해 WCU 제한을 정의합니다. | 

# 에서 관리형 규칙 그룹 문 사용 AWS WAF
<a name="waf-rule-statement-type-managed-rule-group"></a>

이 섹션에서는 관리형 규칙 그룹 규칙 문이 작동하는 방식을 설명합니다.

관리형 규칙 그룹 규칙 문은 보호 팩(웹 ACL) 규칙 목록의 참조를 관리형 규칙 그룹에 추가합니다. 콘솔의 규칙 문 아래에 이 옵션이 표시되어 있지 않지만 웹 ACL의 JSON 형식으로 작업할 경우, 추가한 모든 관리형 규칙 그룹이 보호 팩(웹 ACL) 규칙 아래에 이 유형으로 표시됩니다.

관리형 규칙 그룹은 AWS 관리형 규칙 규칙 그룹으로, 대부분 AWS WAF 고객이 무료로 사용할 수 있습니다 AWS Marketplace . 유료 AWS 관리형 규칙 규칙 그룹을 보호 팩(웹 ACL)에 추가할 때 해당 그룹을 자동으로 구독합니다. 를 통해 AWS Marketplace 관리형 규칙 그룹을 구독할 수 있습니다 AWS Marketplace. 자세한 내용은 [에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md) 단원을 참조하십시오.

보호 팩(웹 ACL)에 규칙 그룹을 추가할 때 그룹에 있는 규칙의 작업을 Count로 또는 다른 규칙 작업으로 재정의할 수 있습니다. 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 단원을 참조하십시오.

가 규칙 그룹으로 AWS WAF 평가하는 요청의 범위를 좁힐 수 있습니다. 이렇게 하려면 규칙 그룹 문 안에 범위 축소 문을 추가합니다. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요. 이렇게 하면 규칙 그룹이 트래픽에 미치는 영향을 관리하고 규칙 그룹 사용 시 트래픽 볼륨과 관련된 비용을 절감하는 데 도움이 될 수 있습니다. AWS WAF Bot Control 관리형 규칙 그룹에서 범위 축소 문을 사용하는 방법에 대한 자세한 내용과 예제는 섹션을 참조하세요[AWS WAF 봇 제어](waf-bot-control.md).

## 규칙 문 특성
<a name="managed-rule-group-rule-statement-characteristics"></a>

**중첩 불가능** – 다른 문 안에 이 문 유형을 중첩할 수 없으며, 규칙 그룹에 포함시킬 수 없습니다. 보호 팩(웹 ACL)에 직접 포함할 수 있습니다.

**(선택 사항) 범위 축소 문** - 이 규칙 유형은 선택적 범위 축소 문을 사용하여 규칙 그룹이 평가하는 요청의 범위를 좁힙니다. 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 단원을 참조하십시오.

**WCU** – 생성 시 규칙 그룹에 설정됩니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="managed-rule-group-rule-statement-where-to-find"></a>
+ **콘솔** – 보호 팩(웹 ACL)을 생성하는 동안 **규칙 및 규칙 그룹 추가** 페이지에서 **관리형 규칙 그룹 추가**를 선택하고 사용할 규칙 그룹을 찾아서 선택합니다.
+ **API** – [ManagedRuleGroupStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_ManagedRuleGroupStatement.html)

# 에서 규칙 그룹 문 사용 AWS WAF
<a name="waf-rule-statement-type-rule-group"></a>

이 섹션에서는 규칙 그룹 규칙 문이 작동하는 방식을 설명합니다.

규칙 그룹 규칙 문은 보호 팩(웹 ACL) 규칙 목록에 대한 참조를 관리하는 규칙 그룹에 추가합니다. 콘솔의 규칙 문 아래에 이 옵션이 표시되어 있지 않지만 보호 팩(웹 ACL)의 JSON 형식으로 작업할 경우, 추가한 모든 자체 규칙 그룹이 보호 팩(웹 ACL) 규칙 아래에 이 유형으로 표시됩니다. 자체 규칙 그룹 사용에 대한 자세한 내용은 [자체 규칙 그룹 관리](waf-user-created-rule-groups.md) 단원을 참조하세요.

보호 팩(웹 ACL)에 규칙 그룹을 추가할 때 그룹에 있는 규칙의 작업을 Count로 또는 다른 규칙 작업으로 재정의할 수 있습니다. 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 단원을 참조하십시오.

## 규칙 문 특성
<a name="rule-group-rule-statement-characteristics"></a>

**중첩 불가능** – 다른 문 안에 이 문 유형을 중첩할 수 없으며, 규칙 그룹에 포함시킬 수 없습니다. 보호 팩(웹 ACL)에 직접 포함할 수 있습니다.

**WCU** – 생성 시 규칙 그룹에 설정됩니다.

## 이 규칙 문을 찾을 수 있는 위치
<a name="rule-group-rule-statement-where-to-find"></a>
+ **콘솔** – 보호 팩(웹 ACL)을 생성하는 동안 **규칙 및 규칙 그룹 추가** 페이지에서 **자체 규칙 및 규칙 그룹 추가**, **규칙 그룹**을 차례로 선택하고 사용할 규칙 그룹을 추가합니다.
+ **API** – [RuleGroupReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleGroupReferenceStatement.html)

# AWS WAF 규칙 그룹
<a name="waf-rule-groups"></a>

이 섹션에서는 규칙 그룹이 무엇이고 어떻게 작동하는지 설명합니다.

규칙 그룹은 보호 팩(웹 ACL)에 추가할 수 있는 재사용 가능한 규칙 세트입니다. 보호 팩(웹 ACL)에 대한 자세한 내용은 [에서 보호 구성 AWS WAF](web-acl.md) 섹션을 참조하세요.

규칙 그룹은 다음 주요 범주로 나뉩니다.
+ 생성 및 유지 관리하는 자체 규칙 그룹 
+ 관리형 규칙 팀이 생성하고 유지 관리하는 AWS 관리형 규칙 그룹입니다.
+  AWS Marketplace 판매자가 생성하고 유지 관리하는 관리형 규칙 그룹입니다.
+  AWS Firewall Manager 및 Shield Advanced와 같은 다른 서비스가 소유하고 관리하는 규칙 그룹입니다.

**규칙 그룹과 보호 팩(웹 ACL) 간의 차이점**  
규칙 그룹과 보호 팩(웹 ACL) 모두 두 위치에서 동일한 방식으로 정의된 규칙을 포함합니다. 규칙 그룹은 다음과 같은 방식으로 보호 팩(웹 ACL)과 다릅니다.
+ 규칙 그룹은 규칙 그룹 참조 문을 포함할 수 없습니다.
+ 각 보호 팩(웹 ACL)에 규칙 그룹 참조 문을 추가하여 단일 규칙 그룹을 여러 보호 팩(웹 ACL)에서 재사용할 수 있습니다. 보호 팩(웹 ACL)은 재사용할 수 없습니다.
+ 규칙 그룹에는 기본 작업이 없습니다. 보호 팩(웹 ACL)에서는 포함하는 각 규칙 또는 규칙 그룹에 대해 기본 작업을 설정합니다. 규칙 그룹 또는 보호 팩(웹 ACL) 내의 각 개별 규칙에는 정의된 작업이 있습니다.
+ 규칙 그룹을 AWS 리소스와 직접 연결하지 않습니다. 규칙 그룹을 사용하여 리소스를 보호하려면 보호 팩(웹 ACL)에서 규칙 그룹을 사용합니다.
+ 시스템은 각 보호 팩(웹 ACL)에 대해 최대 5,000개의 보호 팩(웹 ACL) 용량 단위(WCU)를 정의합니다. 각 규칙 그룹에는 생성 시 설정해야 하는 WCU 설정이 있습니다. 이 설정을 통해 규칙 그룹을 사용하여 보호 팩(웹 ACL)에 추가할 추가 용량 요구 사항을 계산할 수 있습니다. WCU에 대한 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 섹션을 참조하세요.

규칙에 대한 자세한 내용은 [AWS WAF 규칙](waf-rules.md) 단원을 참조하세요.

이 섹션에서는 자체 규칙 그룹을 생성하고 관리하도록 필요한 지침을 제공하고, 사용자에게 제공되는 관리형 규칙 그룹에 대해 설명하며, 관리형 규칙 그룹을 사용하는 데 필요한 지침을 제공합니다.

**Topics**
+ [에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md)
+ [자체 규칙 그룹 관리](waf-user-created-rule-groups.md)
+ [AWS Marketplace 규칙 그룹](marketplace-rule-groups.md)
+ [다른 서비스에서 제공하는 규칙 그룹 인지](waf-service-owned-rule-groups.md)

# 에서 관리형 규칙 그룹 사용 AWS WAF
<a name="waf-managed-rule-groups"></a>

이 섹션에서는 관리형 규칙 그룹이 무엇이고 어떻게 작동하는지 설명합니다.

관리형 규칙 그룹은 AWS 및 AWS Marketplace 판매자가 자동으로 작성하고 유지 관리하는 사전 정의되고 ready-to-use 수 있는 규칙 모음입니다. 기본 AWS WAF 요금은 모든 관리형 규칙 그룹 사용에 적용됩니다. AWS WAF 요금 정보는 [AWS WAF 요금을](https://aws.amazon.com/waf/pricing/) 참조하세요.
+ * AWS WAF Bot Control, AWS WAF 사기 제어 계정 탈취 방지(ATP) 및 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)에 대한 AWS 관리형 규칙 규칙 그룹은* 기본 AWS WAF 요금 외에 추가 요금을 지불하면 사용할 수 있습니다. 요금에 대한 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.
+ *다른 모든 AWS 관리형 규칙 규칙 그룹은* 추가 비용 없이 AWS WAF 고객이 사용할 수 있습니다.
+ *AWS Marketplace 규칙 그룹은* 구독을 통해 사용할 수 있습니다 AWS Marketplace. 이러한 각 규칙 그룹은 AWS Marketplace 판매자가 소유하고 관리합니다. AWS Marketplace 규칙 그룹 사용에 대한 요금 정보는 AWS Marketplace 판매자에게 문의하세요.

일부 관리형 규칙 그룹은 WordPress, Joomla 또는 PHP와 같은 특정 유형의 웹 애플리케이션을 보호하는 데 유용하도록 설계되었습니다. 다른 관리형 규칙 그룹은 알려진 위협 또는 일반적인 웹 애플리케이션 취약성(예: [OWASP Top 10](https://owasp.org/www-project-top-ten/)에 나열된 취약성)에 대한 폭넓은 보호를 제공합니다. PCI 또는 HIPAA 등의 규제를 준수해야 하는 경우 관리형 규칙 그룹을 사용하여 웹 애플리케이션 방화벽 요구 사항을 충족할 수 있습니다.

**자동 업데이트**  
끊임없이 변화하는 위협 환경을 놓치지 않고 파악하려면 많은 시간과 비용이 들 수 있습니다. 관리형 규칙 그룹은 AWS WAF구현 및 사용 시 시간을 절약할 수 있습니다. 많은 AWS 및 AWS Marketplace 판매자가 관리형 규칙 그룹을 자동으로 업데이트하고 새로운 취약성과 위협이 발생할 때 규칙 그룹의 새 버전을 제공합니다.

경우에 따라 AWS 는 여러 비공개 공개 커뮤니티에 참여하므로 공개 전에 새로운 취약성에 대한 알림을 받습니다. 이러한 경우는 새로운 위협이 널리 알려지기 전에도 AWS 관리형 규칙 규칙 그룹을 AWS 업데이트하고 이를 배포할 수 있습니다.

**관리형 규칙 그룹의 규칙에 대한 제한된 액세스**  
각 관리형 규칙 그룹은 보호를 위해 설계된 공격 유형 및 취약성에 대한 포괄적인 설명을 제공합니다. 규칙 그룹 제공자의 지적 재산을 보호하기 위해 규칙 그룹 내의 개별 규칙에 대한 모든 세부 정보를 볼 수 없습니다. 이러한 제한을 통해 악의적인 사용자가 게시된 규칙을 교묘하게 회피하는 위협을 설계하는 것을 방지할 수 있습니다.

**Topics**
+ [에서 버전 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups-versioning.md)
+ [관리형 규칙 그룹 작업](waf-using-managed-rule-groups.md)
+ [AWS 에 대한 관리형 규칙 AWS WAF](aws-managed-rule-groups.md)

# 에서 버전 관리형 규칙 그룹 사용 AWS WAF
<a name="waf-managed-rule-groups-versioning"></a>

이 섹션에서는 관리형 규칙 그룹에 대한 버전 관리를 처리하는 방법을 설명합니다.

많은 관리형 규칙 그룹 공급자는 버전 관리를 사용하여 규칙 그룹의 옵션과 기능을 업데이트합니다. 일반적으로 관리형 규칙 그룹의 특정 버전은 정적 버전입니다. 예를 들어 공급자는 새로운 보안 위협에 대응하기 위해 관리형 규칙 그룹의 정적 버전 일부 또는 전체를 업데이트해야 할 수 있습니다.

보호 팩(웹 ACL)에서 버전 관리형 규칙 그룹을 사용하는 경우 기본 버전을 선택하여 공급자가 사용하는 정적 버전을 관리하도록 하거나 특정 정적 버전을 선택할 수 있습니다.

**원하는 버전을 찾을 수 없나요?**  
규칙 그룹의 버전 목록에 버전이 없으면 해당 버전은 만료 예정이거나 이미 만료되었을 수 있습니다. 버전 만료가 예약된 후에는 더 이상에서 규칙 그룹에 대해 해당 버전을 선택할 수 AWS WAF 없습니다.

**AWS 관리형 규칙 규칙 그룹에 대한 SNS 알림**  
 AWS 관리형 규칙 규칙 그룹은 IP 평판 규칙 그룹을 제외하고 모두 버전 관리 및 SNS 업데이트 알림을 제공합니다. 알림을 제공하는 AWS 관리형 규칙 규칙 그룹은 모두 동일한 SNS 주제 Amazon 리소스 이름(ARN)을 사용합니다. SNS 알림에 가입하려면 [새 버전 및 업데이트에 대한 알림 받기](waf-using-managed-rule-groups-sns-topic.md) 섹션을 참조하세요.

**Topics**
+ [관리형 규칙 그룹의 버전 수명 주기](waf-managed-rule-groups-versioning-lifecycle.md)
+ [관리형 규칙 그룹의 버전 만료](waf-managed-rule-groups-versioning-expiration.md)
+ [관리형 규칙 그룹 버전 처리 모범 사례](waf-managed-rule-groups-best-practice.md)

# 관리형 규칙 그룹의 버전 수명 주기
<a name="waf-managed-rule-groups-versioning-lifecycle"></a>

공급자는 관리형 규칙 그룹 정적 버전의 다음 수명 주기 단계를 처리합니다.
+ **릴리스 및 업데이트** — 관리형 규칙 그룹 공급자는 Amazon Simple Notification Service(Amazon SNS) 주제에 대한 알림을 통해 관리형 규칙 그룹의 향후 및 새로운 정적 버전을 발표합니다. 공급자는 이 주제를 사용하여 긴급 필수 업데이트와 같은 규칙 그룹에 대한 기타 중요한 정보를 전달할 수도 있습니다.

  규칙 그룹의 주제를 구독하고 알림 수신 방법을 구성할 수 있습니다. 자세한 내용은 [새 버전 및 업데이트에 대한 알림 받기](waf-using-managed-rule-groups-sns-topic.md)을 참조하세요.
+ **만료 예약** — 관리형 규칙 그룹 공급자가 규칙 그룹의 이전 버전이 만료되도록 예약합니다. 만료될 예정인 버전은 보호 팩(웹 ACL) 규칙에 추가할 수 없습니다. 버전에 대한 만료가 예약된 후는 Amazon CloudWatch에서 카운트다운 지표를 사용하여 만료를 AWS WAF 추적합니다.
+ **버전 만료** - 만료된 버전의 관리형 규칙 그룹을 사용하도록 구성된 보호 팩(웹 ACL)이 있는 경우 보호 팩(웹 ACL) 평가 중에 규칙 그룹의 기본 버전을 AWS WAF 사용합니다. 또한 규칙 그룹을 제거하거나 버전을 만료되지 않은 것으로 변경하지 않는 보호 팩(웹 ACL)에 대한 업데이트를 AWS WAF 차단합니다.

 AWS Marketplace 관리형 규칙 그룹을 사용하는 경우 버전 수명 주기에 대한 추가 정보를 공급자에게 문의하세요.

# 관리형 규칙 그룹의 버전 만료
<a name="waf-managed-rule-groups-versioning-expiration"></a>

 이 섹션에서는 버전 만료가 버전 관리형 규칙 그룹에 어떻게 적용되는지 설명합니다.

특정 버전의 규칙 그룹을 사용하는 경우 만료 날짜가 지난 버전을 계속 사용해서는 안 됩니다. 규칙 그룹의 SNS 알림과 Amazon CloudWatch 지표를 통해 버전 만료를 모니터링할 수 있습니다.

보호 팩(웹 ACL)에서 사용 중인 버전이 만료되면는 규칙 그룹을 만료되지 않은 버전으로 이동하는 것을 포함하지 않는 보호 팩(웹 ACL)에 대한 모든 업데이트를 AWS WAF 차단합니다. 규칙 그룹을 사용 가능한 버전으로 업데이트하거나 보호 팩(웹 ACL)에서 제거할 수 있습니다.

관리형 규칙 그룹의 만료 처리는 규칙 그룹 공급자에 따라 다릅니다. AWS 관리형 규칙의 규칙 그룹의 경우 만료된 버전이 규칙 그룹의 기본 버전으로 자동 변경됩니다. AWS Marketplace 규칙 그룹의 경우 공급자에게 만료 처리 방법을 문의하세요.

공급자는 새 버전의 규칙 그룹을 생성할 때 해당 버전의 예상 수명을 설정합니다. 버전이 만료될 예정은 없지만 Amazon CloudWatch 지표 값은 예측 수명 설정으로 설정되며 CloudWatch에서 지표의 고정 값을 확인할 수 있습니다. 공급자가 지표 만료를 예약한 후에는 만료일이 되어 0에 도달할 때까지 지표 값이 매일 감소합니다. 모니터링 만료에 대한 내용은 [버전 만료 추적](waf-using-managed-rule-groups-expiration.md) 섹션을 참조하세요.

# 관리형 규칙 그룹 버전 처리 모범 사례
<a name="waf-managed-rule-groups-best-practice"></a>

버전이 관리되는 관리형 규칙 그룹을 사용하는 경우 이 모범 사례 지침에 따라 버전 관리를 처리합니다.

보호 팩(웹 ACL)에서 관리형 규칙 그룹을 사용하는 경우 규칙 그룹의 특정 정적 버전을 사용하거나 기본 버전을 사용하도록 선택할 수 있습니다.
+ **기본 버전** - AWS WAF 항상 기본 버전을 공급자가 현재 권장하는 정적 버전으로 설정합니다. 공급자가 권장 정적 버전을 업데이트하는 경우 AWS WAF 에서 보호 팩(웹 ACL)의 규칙 그룹에 대한 기본 버전 설정이 자동으로 업데이트됩니다.

  관리형 규칙 그룹의 기본 버전을 사용하는 경우 모범 사례로서 다음을 수행합니다.
  + **알림 구독** — 규칙 그룹 변경 사항에 대한 알림을 구독하여 최신 상태를 유지합니다. 대부분의 공급자는 새로운 정적 버전과 기본 버전 변경에 대한 고급 알림을 보냅니다. 이를 통해가 기본 버전을 해당 버전으로 AWS 전환하기 전에 새 정적 버전의 효과를 확인할 수 있습니다. 자세한 내용은 [새 버전 및 업데이트에 대한 알림 받기](waf-using-managed-rule-groups-sns-topic.md)을 참조하세요.
  + **기본 버전을 정적 버전으로 설정하기 전에 정적 버전 설정의 영향을 검토하고 필요에 따라 조정** - 기본 버전을 새 정적 버전으로 설정하기 전에 정적 버전이 웹 요청의 모니터링 및 관리에 미치는 영향을 검토합니다. 새 정적 버전에는 검토해야 할 새 규칙이 있을 수 있습니다. 규칙 그룹 사용 방식을 수정해야 하는 경우 거짓 긍정이나 기타 예기치 않은 동작이 있는지 살펴봅니다. 예를 들어, 새 동작을 어떻게 처리할지 결정하는 동안 트래픽을 차단하지 못하도록 규칙을 count로 설정할 수 있습니다. 자세한 내용은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 단원을 참조하십시오.
+ **정적 버전** - 정적 버전을 사용하기로 선택한 경우 규칙 그룹의 새 버전을 채택할 준비가 되면 버전 설정을 수동으로 업데이트해야 합니다.

  관리형 규칙 그룹의 정적 버전을 사용하는 경우 모범 사례로서 다음을 수행합니다.
  + **버전을 최신 상태로 유지** - 관리형 규칙 그룹을 가능한 최신 버전으로 유지합니다. 새 버전이 출시되면 이를 테스트하고 필요에 따라 설정을 조정하여 적시에 구현합니다. 테스트에 대한 자세한 내용은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 섹션을 참조하세요.
  + **알림 구독** — 규칙 그룹 변경에 대한 알림을 구독하여 공급자가 언제 새로운 정적 버전을 출시하는지 알 수 있습니다. 대부분의 공급자는 버전 변경에 대한 사전 알림을 제공합니다. 또한 공급자는 보안 허점을 제거하거나 그 밖의 긴급한 이유로 사용 중인 정적 버전을 업데이트해야 할 수도 있습니다. 공급자의 알림을 구독하면 현 상황을 파악할 수 있습니다. 자세한 내용은 [새 버전 및 업데이트에 대한 알림 받기](waf-using-managed-rule-groups-sns-topic.md) 단원을 참조하십시오.
  + **버전 만료 방지** — 정적 버전을 사용하는 동안 만료되지 않도록 하세요. 공급자의 만료된 버전에 대한 처리는 다양할 수 있으며, 여기에는 사용 가능한 버전으로의 강제 업그레이드 또는 예상치 못한 결과를 초래할 수 있는 기타 변경 사항이 포함될 수 있습니다. AWS WAF 만료 지표를 추적하고 지원되는 버전으로 성공적으로 업그레이드할 수 있는 충분한 일수를 제공하는 경보를 설정합니다. 자세한 내용은 [버전 만료 추적](waf-using-managed-rule-groups-expiration.md) 단원을 참조하십시오.



# 관리형 규칙 그룹 작업
<a name="waf-using-managed-rule-groups"></a>

이 섹션에서는 관리형 규칙 그룹에 액세스하고 관리하기 위한 지침을 제공합니다.

보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가할 때 자체 규칙 그룹과 동일한 구성 옵션 및 추가 설정을 선택할 수 있습니다.

콘솔을 통해 보호 팩(웹 ACL)에서 규칙을 추가하고 편집하는 과정에서 관리형 규칙 그룹 정보에 액세스할 수 있습니다. API와 명령줄 인터페이스(CLI)를 통해 관리형 규칙 그룹 정보를 직접 요청할 수 있습니다.

보호 팩(웹 ACL)에서 관리형 규칙 그룹을 사용하는 경우 다음 설정을 편집할 수 있습니다.
+ **버전** - 규칙 그룹의 버전이 관리되는 경우에만 사용할 수 있습니다. 자세한 내용은 [에서 버전 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups-versioning.md) 단원을 참조하십시오.
+ **규칙 작업 재정의** - 규칙 그룹에 있는 규칙에 대한 작업을 모든 작업으로 재정의할 수 있습니다. 작업을 Count로 설정하면 규칙 그룹을 사용하기 전에 테스트할 수 있어 웹 요청을 관리하는 데 유용합니다. 자세한 내용은 [규칙 그룹 규칙 작업 재정의](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rules) 단원을 참조하십시오.
+ **범위 축소 명령문** — 범위 축소 문을 추가하면 규칙 그룹을 사용하여 평가하지 않을 웹 요청을 필터링할 수 있습니다. 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 단원을 참조하십시오.
+ **규칙 그룹 작업 재정의** - 규칙 그룹 평가의 결과로 발생하는 작업을 재정의하고 이 작업을 Count 전용으로 설정할 수 있습니다. 이 옵션은 일반적으로 사용되지 않습니다. 가 규칙 그룹의 규칙을 AWS WAF 평가하는 방법은 변경되지 않습니다. 자세한 내용은 [규칙 그룹 반환 작업을 Count로 재정의](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rule-group) 단원을 참조하십시오.

**보호 팩(웹 ACL)에서 관리형 규칙 그룹 설정 편집**
+ **콘솔** 
  + (선택 사항) 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가할 때 **편집**을 선택하여 설정을 보고 편집할 수 있습니다.
  + (선택 사항) 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가한 후 **보호 팩(웹 ACL)** 페이지에서 방금 생성한 보호 팩(웹 ACL)을 선택합니다. 그러면 보호 팩(웹 ACL) 편집 페이지로 이동합니다.
    + **규칙**을 선택합니다.
    + 규칙 그룹을 선택한 다음 **편집**을 선택하여 설정을 보고 편집합니다.
+ **API 및 CLI** - 콘솔 외부에서 보호 팩(웹 ACL)을 생성하고 업데이트할 때 관리형 규칙 그룹 설정을 관리할 수 있습니다.

# 관리형 규칙 그룹 목록 검색
<a name="waf-using-managed-rule-groups-list"></a>

보호 팩(웹 ACL)에서 사용할 수 있는 관리형 규칙 그룹의 목록을 검색할 수 있습니다. 목록에는 다음이 포함됩니다.
+ 모든 AWS 관리형 규칙 규칙 그룹.
+ 구독한 AWS Marketplace 규칙 그룹입니다.
**참고**  
 AWS Marketplace 규칙 그룹 구독에 대한 자세한 내용은 섹션을 참조하세요[AWS Marketplace 규칙 그룹](marketplace-rule-groups.md).

관리형 규칙 그룹 목록을 검색하면 반환되는 목록은 사용 중인 인터페이스에 따라 달라집니다.
+ **콘솔** - 콘솔을 통해 아직 구독하지 않은 규칙 그룹을 포함하여 모든 관리형 AWS Marketplace 규칙 그룹을 볼 수 있습니다. 아직 구독하지 않은 사용자의 경우 인터페이스에서 사용자에게 구독을 안내하는 링크를 제공합니다.
+ **API 및 CLI** — 콘솔 외부에서 요청은 사용 가능한 규칙 그룹만 반환합니다.

**관리형 규칙 그룹 목록을 검색하려면**
+ **콘솔** – 웹 ACL을 생성하는 동안 **규칙 및 규칙 그룹 추가** 페이지에서 **관리형 그룹 추가**를 선택합니다. 최상위 수준에는 공급업체 이름이 나열됩니다. 각 공급업체 목록을 확장하여 관리형 규칙 그룹 목록을 확인합니다. 버전 관리된 규칙 그룹의 경우 이 수준에 표시된 정보는 기본 버전에 적용됩니다. 관리형 규칙 그룹을 보호 팩(웹 ACL)에 추가하면 콘솔에 명명 체계 `<Vendor Name>-<Managed Rule Group Name>`에 따라 해당 그룹이 나열됩니다.
+ **API** –
  +  `ListAvailableManagedRuleGroups`
+ **CLI** –
  + `aws wafv2 list-available-managed-rule-groups --scope=<CLOUDFRONT|REGIONAL>`

# 관리형 규칙 그룹의 규칙 검색
<a name="waf-using-managed-rule-groups-rules"></a>

관리형 규칙 그룹의 규칙 목록을 검색할 수 있습니다. API 및 CLI 호출은 JSON 모델 또는를 통해 참조할 수 있는 규칙 사양을 반환합니다 AWS CloudFormation.

**관리형 규칙 그룹의 규칙 목록을 검색하려면**
+ **콘솔** 
  + (선택 사항) 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가할 때 **편집**을 선택하여 규칙을 볼 수 있습니다.
  + (선택 사항) 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가한 후 **보호 팩(웹 ACL)** 페이지에서 방금 생성한 보호 팩(웹 ACL)을 선택합니다. 그러면 보호 팩(웹 ACL) 편집 페이지로 이동합니다.
    + **규칙**을 선택합니다.
    + 규칙 목록을 보려는 규칙 그룹을 선택한 다음 **편집**을 선택합니다. 규칙 그룹의 규칙 목록이 AWS WAF 표시됩니다.
+ **API** – `DescribeManagedRuleGroup`
+ **CLI** – `aws wafv2 describe-managed-rule-group --scope=<CLOUDFRONT|REGIONAL> --vendor-name <vendor> --name <managedrule_name>`

# 관리형 규칙 그룹에 대해 사용 가능한 버전 검색
<a name="waf-using-managed-rule-groups-versions"></a>

관리형 규칙 그룹의 사용 가능한 버전은 아직 만료가 예정되지 않은 버전입니다. 목록에 규칙 그룹에 대한 현재 기본 버전이 표시됩니다.

**관리형 규칙 그룹의 사용 가능한 버전 목록을 검색하려면**
+ **콘솔** 
  + (선택 사항) 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가할 때 **편집**을 선택하여 규칙 그룹의 정보를 확인합니다. **버전** 드롭다운을 확장하여 사용 가능한 버전 목록을 확인합니다.
  + (선택 사항) 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가한 후 보호 팩(웹 ACL)에서 **편집**을 선택한 다음, 규칙 그룹의 규칙을 선택하고 편집합니다. **버전** 드롭다운을 확장하여 사용 가능한 버전 목록을 확인합니다.
+ **API** –
  +  `ListAvailableManagedRuleGroupVersions`
+ **CLI** –
  +  `aws wafv2 list-available-managed-rule-group-versions --scope=<CLOUDFRONT|REGIONAL> --vendor-name <vendor> --name <managedrule_name>`

# 콘솔을 통해 보호 팩(웹 ACL)에 관리형 규칙 그룹 추가
<a name="waf-using-managed-rule-group"></a>

이 섹션에서는 콘솔을 통해 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가하는 방법에 대해 설명합니다. 이 지침은 모든 AWS 관리형 규칙 규칙 그룹과 구독 중인 AWS Marketplace 규칙 그룹에 적용됩니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 보호 팩(웹 ACL)의 변경 사항을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 변경 사항을 테스트하고 조정합니다. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**참고**  
보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**콘솔을 통해 보호 팩(웹 ACL)에 관리형 규칙 그룹 추가**

**콘솔을 통해 웹 ACL에 관리형 규칙 그룹을 추가하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **보호 팩(웹 ACL)**을 선택합니다.

1. **보호 팩(웹 ACL)** 페이지의 보호 팩(웹 ACL) 목록에서 규칙 그룹을 추가할 대상 보호 팩을 선택합니다. 그러면 단일 보호 팩(웹 ACL)에 대한 페이지로 이동합니다.

1. 보호 팩(웹 ACL)의 페이지에서 **규칙** 탭을 선택합니다.

1. **규칙** 창에서 **규칙 추가**를 선택한 다음 **관리형 규칙 그룹 추가**를 선택합니다.

1. **관리형 규칙 그룹 추가** 페이지에서 규칙 그룹 공급자의 선택 항목을 확장하여 사용 가능한 규칙 그룹 목록을 확인합니다.

1. 추가하려는 각 규칙 그룹에 대해 **보호 팩(웹 ACL)에 추가**를 선택합니다. 규칙 그룹에 대한 보호 팩(웹 ACL)의 구성을 변경하려면 **편집**을 선택하고 변경한 다음 **규칙 저장**을 선택합니다. 옵션에 대한 자세한 내용은 [에서 버전 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups-versioning.md)의 버전 관리 지침 및 [에서 관리형 규칙 그룹 문 사용 AWS WAF](waf-rule-statement-type-managed-rule-group.md)의 보호 팩(웹 ACL)의 관리형 규칙 그룹 사용 지침을 참조하세요.

1. **관리형 규칙 그룹 추가** 페이지 하단에서 **규칙 추가**를 선택합니다.

1. **규칙 우선 순위 설정** 페이지에서 필요에 따라 규칙 실행 순서를 조정한 다음 **저장**을 선택합니다. 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 단원을 참조하십시오.

보호 팩(웹 ACL) 페이지의 **규칙** 탭 아래에 추가한 관리형 규칙 그룹이 나열됩니다.

프로덕션 트래픽에 사용하기 전에 AWS WAF 보호에 대한 변경 사항을 테스트하고 조정합니다. 자세한 내용은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 단원을 참조하세요.

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경하면 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 집합에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

# 관리형 규칙 그룹의 새 버전 및 업데이트에 대한 알림 받기
<a name="waf-using-managed-rule-groups-sns-topic"></a>

이 섹션에서는 새 버전 및 업데이트에 대한 Amazon SNS 알림을 수신하는 방법을 설명합니다.

관리형 규칙 그룹 공급자는 SNS 알림을 사용하여 출시될 새 버전 및 긴급 보안 업데이트와 같은 규칙 그룹 변경 사항을 알립니다.

**SNS 알림을 구독하는 방법**  
규칙 그룹의 알림을 구독하려면 미국 동부(버지니아 북부) 리전 us-east-1에서 규칙 그룹의 Amazon SNS 주제 ARN에 대한 Amazon SNS 구독을 생성합니다.

구독하는 방법에 대한 정보는 [Amazon Simple Notification Service 개발자 안내서](https://docs.aws.amazon.com/sns/latest/dg/)를 참조하세요.

**참고**  
us-east-1 리전에서만 SNS 주제에 대한 구독을 생성하십시오.

버전이 지정된 AWS 관리형 규칙 규칙 그룹은 모두 동일한 SNS 주제 Amazon 리소스 이름(ARN)을 사용합니다. AWS 관리형 규칙 규칙 그룹 알림에 대한 자세한 내용은 섹션을 참조하세요[배포 알림](waf-managed-rule-groups-deployments-notifications.md).

**관리형 규칙 그룹에 대한 Amazon SNS 주제 ARN을 찾을 수 있는 위치**  
AWS 관리형 규칙 규칙 그룹은 단일 SNS 주제 ARN을 사용하므로 규칙 그룹 중 하나에서 주제 ARN을 검색하고 구독하여 SNS 알림을 제공하는 모든 AWS 관리형 규칙 규칙 그룹에 대한 알림을 받을 수 있습니다.
+ **콘솔** 
  + (선택 사항) 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가할 때 **편집**을 선택하여 규칙 그룹의 Amazon SNS 주제 ARN을 포함한 규칙 그룹의 정보를 확인합니다.
  + (선택 사항) 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가한 후 보호 팩(웹 ACL)에서 **편집**을 선택한 다음, 규칙 그룹의 규칙을 선택하고 편집하여 규칙 그룹의 Amazon SNS 주제 ARN을 확인합니다.
+ **API** – `DescribeManagedRuleGroup`
+ **CLI** – `aws wafv2 describe-managed-rule-group --scope=<CLOUDFRONT|REGIONAL> --vendor-name <vendor> --name <managedrule_name>`

Amazon SNS 알림 형식과 수신한 알림을 필터링하는 방법에 대한 일반적인 정보는 Amazon Simple Notification Service 개발자 안내서의 [메시지 형식 구문 분석](https://docs.aws.amazon.com/sns/latest/dg/sns-message-and-json-formats.html) 및 [Amazon SNS 구독 필터 정책](https://docs.aws.amazon.com/sns/latest/dg/sns-subscription-filter-policies.html)을 참조하세요.

# 규칙 그룹의 버전 만료 추적
<a name="waf-using-managed-rule-groups-expiration"></a>

이 섹션에서는 Amazon CloudWatch를 통해 관리형 규칙 그룹의 만료 일정을 모니터링하는 방법을 설명합니다.

특정 버전의 규칙 그룹을 사용하는 경우 만료 날짜가 지난 버전을 계속 사용해서는 안 됩니다.

**작은 정보**  
관리형 규칙 그룹에 대한 Amazon SNS 알림에 가입하고 관리형 규칙 그룹 버전을 최신 상태로 유지합니다. 규칙 그룹의 최신 보호 기능을 활용하고 만료를 앞당길 수 있습니다. 자세한 내용은 [새 버전 및 업데이트에 대한 알림 받기](waf-using-managed-rule-groups-sns-topic.md) 단원을 참조하세요.

**Amazon CloudWatch를 통해 관리형 규칙 그룹의 만료 일정을 모니터링하려면**

1. CloudWatch에서 관리형 규칙 그룹에 AWS WAF 대한의 만료 지표를 찾습니다. 지표에는 다음과 같은 지표 이름과 차원이 있습니다.
   + 지표 이름: DaysToExpiry
   + 지표 차원: Region, ManagedRuleGroup, Vendor 및 Version

   보호 팩(웹 ACL)에 트래픽을 평가하는 관리형 규칙 그룹이 있는 경우 이에 대한 지표를 얻게 됩니다. 사용하지 않는 규칙 그룹에는 지표를 사용할 수 없습니다.

1. 관심 있는 지표에 경보를 설정하여 규칙 그룹의 최신 버전으로 전환하라는 알림을 적시에 받습니다.

Amazon CloudWatch 지표를 사용하고 경보를 구성하는 방법에 대한 자세한 내용은 [Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.

# JSON 및 YAML의 관리형 규칙 그룹 구성 예
<a name="waf-using-managed-rule-groups-json-yaml"></a>

이 섹션에서는 관리형 규칙 그룹 구성의 예제를 제공합니다.

API 및 CLI 호출은 JSON 모델 또는를 통해 참조할 수 있는 관리형 규칙 그룹의 모든 규칙 목록을 반환합니다 AWS CloudFormation.

**JSON**  
JSON을 사용하여 규칙 문 내에서 관리형 규칙 그룹을 참조하고 수정할 수 있습니다. 다음 목록은 AWS 관리`AWSManagedRulesCommonRuleSet`형 규칙 규칙 그룹를 JSON 형식으로 보여줍니다. RuleActionOverrides 사양에는 해당 작업이 Count로 재정의된 규칙이 나열되어 있습니다.

```
{
    "Name": "AWS-AWSManagedRulesCommonRuleSet",
    "Priority": 0,
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesCommonRuleSet",
        "RuleActionOverrides": [                                                                                                                                            
          {                                                                                                                                                                
            "ActionToUse": {                                                                                                                                              
              "Count": {}                                                                                                                                                
            },                                                                                                                                                            
            "Name": "NoUserAgent_HEADER"                                                                                                                                 
          }                                                                                                                                                                
        ],
        "ExcludedRules": []
      }
    },
    "OverrideAction": {
      "None": {}
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSManagedRulesCommonRuleSet"
    }
}
```

**YAML**  
 CloudFormation YAML 템플릿을 사용하여 규칙 문 내에서 관리형 규칙 그룹을 참조하고 수정할 수 있습니다. 다음 목록은 CloudFormation 템플릿의 AWS 관리형 규칙 그룹 `AWSManagedRulesCommonRuleSet`를 보여줍니다. RuleActionOverrides 사양에는 해당 작업이 Count로 재정의된 규칙이 나열되어 있습니다.

```
Name: AWS-AWSManagedRulesCommonRuleSet
Priority: 0
Statement:
  ManagedRuleGroupStatement:
    VendorName: AWS
    Name: AWSManagedRulesCommonRuleSet
    RuleActionOverrides:
    - ActionToUse:
        Count: {}
      Name: NoUserAgent_HEADER
    ExcludedRules: []
OverrideAction:
  None: {}
VisibilityConfig:
  SampledRequestsEnabled: true
  CloudWatchMetricsEnabled: true
  MetricName: AWS-AWSManagedRulesCommonRuleSet
```

# AWS 에 대한 관리형 규칙 AWS WAF
<a name="aws-managed-rule-groups"></a>

이 섹션에서는에 대한 AWS 관리형 규칙 AWS WAF 이 무엇인지 설명합니다.

AWS 용 관리형 규칙 AWS WAF 은 애플리케이션 취약성 또는 기타 원치 않는 트래픽에 대한 보호를 제공하는 관리형 서비스입니다. 각 웹 ACL의 AWS 관리형 규칙에서 최대 보호 팩(웹 ACL) 용량 단위(WCU) 한도까지 하나 이상의 규칙 그룹을 선택할 수 있습니다.

**거짓 긍정을 완화하고 규칙 그룹 변경 테스트**  
프로덕션 환경에서 관리형 규칙 그룹을 사용하기 전에 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)의 지침에 따라 비프로덕션 환경에서 테스트합니다. 보호 팩(웹 ACL)에 규칙 그룹을 추가할 때, 새 버전의 규칙 그룹을 테스트할 때, 그리고 규칙 그룹이 필요한 시점에 웹 트래픽을 처리하지 못할 때마다 테스트 및 조정 지침을 따르세요.

**공유 보안 책임**  
AWS 관리형 규칙은 일반적인 웹 위협으로부터 사용자를 보호하도록 설계되었습니다. 설명서에 따라 사용하는 경우 AWS 관리형 규칙 규칙 그룹은 애플리케이션에 또 다른 보안 계층을 추가합니다. 그러나 AWS 관리형 규칙 규칙 그룹은 보안 책임을 대체하기 위한 것이 아니며, 이는 선택한 AWS 리소스에 따라 결정됩니다. 의 리소스가 AWS 제대로 보호되는지 확인하려면 [공동 책임 모델을](https://aws.amazon.com/compliance/shared-responsibility-model/) 참조하세요.

**중요**  
AWS 관리형 규칙은 일반적인 웹 위협으로부터 사용자를 보호하도록 설계되었습니다. 설명서에 따라 사용하는 경우 AWS 관리형 규칙 규칙 그룹은 애플리케이션에 또 다른 보안 계층을 추가합니다. 그러나 AWS 관리형 규칙 규칙 그룹은 보안 책임을 대체하기 위한 것이 아니며, 이는 선택한 AWS 리소스에 따라 결정됩니다. 의 리소스가 AWS 제대로 보호되는지 확인하려면 [공동 책임 모델을](https://aws.amazon.com/compliance/shared-responsibility-model/) 참조하세요.

# AWS 관리형 규칙 규칙 그룹 목록
<a name="aws-managed-rule-groups-list"></a>

이 섹션에서는 사용 가능한 AWS 관리형 규칙 규칙 그룹의 목록을 제공합니다.

이 섹션에서는 AWS 관리형 규칙 그룹의 최신 버전을 설명합니다. 관리형 규칙 그룹을 보호 팩(웹 ACL)에 추가하면 콘솔에서 이러한 목록이 나타납니다. API를 통해를 호출하여 구독한 AWS Marketplace 규칙 그룹과 함께이 목록을 검색할 수 있습니다`ListAvailableManagedRuleGroups`.

**참고**  
 AWS 관리형 규칙 그룹의 버전 검색에 대한 자세한 내용은 섹션을 참조하세요[관리형 규칙 그룹에 대해 사용 가능한 버전 검색](waf-using-managed-rule-groups-versions.md).

모든 AWS 관리형 규칙 규칙 그룹은 레이블 지정을 지원하며이 섹션의 규칙 목록에는 레이블 사양이 포함됩니다. `DescribeManagedRuleGroup`를 호출하여 API를 통해 관리형 규칙 그룹의 레이블을 검색할 수 있습니다. 레이블은 응답의 AvailableLabels 속성에 나열됩니다. 라벨링에 대한 자세한 내용은 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.

프로덕션 트래픽에 사용하기 전에 AWS WAF 보호에 대한 변경 사항을 테스트하고 조정합니다. 자세한 내용은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 단원을 참조하세요.

**Contents**
+ [기준 규칙 그룹](aws-managed-rule-groups-baseline.md)
  + [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs)
  + [관리 보호 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-admin)
  + [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)
+ [사용 사례별 규칙 그룹](aws-managed-rule-groups-use-case.md)
  + [SQL 데이터베이스 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-sql-db)
  + [Linux 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os)
  + [POSIX 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os)
  + [Windows 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-windows-os)
  + [PHP 애플리케이션 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app)
  + [WordPress 애플리케이션 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-wordpress-app)
+ [IP 신뢰도 규칙 그룹](aws-managed-rule-groups-ip-rep.md)
  + [Amazon IP 신뢰도 목록 관리형 규칙 그룹](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-amazon)
  + [익명 IP 목록 관리형 규칙 그룹](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-anonymous)
+ [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md)
  + [이 규칙 그룹 사용 시 고려 사항](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-using)
  + [이 규칙 그룹에서 추가한 레이블](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-labels)
    + [토큰 레이블](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-labels-token)
    + [ACFP 레이블](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-labels-rg)
  + [계정 생성 사기 방지 규칙 목록](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-rules)
+ [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md)
  + [이 규칙 그룹 사용 시 고려 사항](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-using)
  + [이 규칙 그룹에서 추가한 레이블](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-labels)
    + [토큰 레이블](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-labels-token)
    + [ATP 레이블](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-labels-rg)
  + [계정 탈취 방지 규칙 목록](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-rules)
+ [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md)
  + [보호 수준](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-prot-levels)
  + [이 규칙 그룹 사용 시 고려 사항](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-using)
  + [이 규칙 그룹에서 추가한 레이블](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-labels)
    + [토큰 레이블](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-labels-token)
    + [봇 컨트롤 레이블](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-labels-rg)
  + [봇 컨트롤 규칙 목록](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules)
+ [AWS WAF 분산 서비스 거부(DDoS) 방지 규칙 그룹](aws-managed-rule-groups-anti-ddos.md)
  + [이 규칙 그룹 사용 시 고려 사항](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-using)
  + [이 규칙 그룹에서 추가한 레이블](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-labels)
    + [토큰 레이블](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-labels-token)
    + [DDoS 방지 레이블](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-labels-rg)
  + [DDoS 방지 규칙 목록](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-rules)

# 기준 규칙 그룹
<a name="aws-managed-rule-groups-baseline"></a>

기준 관리형 규칙 그룹은 다양한 일반적인 위협에 대한 일반적인 보호 기능을 제공합니다. 이러한 규칙 그룹 중 하나 이상을 선택하여 리소스에 대한 기준 보호를 설정합니다.

## 핵심 규칙 세트(CRS) 관리형 규칙 그룹
<a name="aws-managed-rule-groups-baseline-crs"></a>

VendorName: `AWS`, Name: `AWSManagedRulesCommonRuleSet`, WCU: 700

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 찾을 수 있는 내용보다 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

핵심 규칙 집합(CRS, Core rule set) 규칙 그룹에는 일반적으로 웹 애플리케이션에 적용할 수 있는 규칙이 포함되어 있습니다. 이를 통해 [OWASP Top 10](https://owasp.org/www-project-top-ten/)과 같은 OWASP 게시물에 설명된 자주 발생하고 위험성 높은 일부 취약성을 비롯한 광범위한 취약성 도용을 막을 수 있습니다. AWS WAF 모든 사용 사례에이 규칙 그룹을 사용하는 것이 좋습니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| NoUserAgent\$1HEADER |  HTTP `User-Agent` 헤더가 누락된 요청을 검사합니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:core-rule-set:NoUserAgent_Header`  | 
| UserAgent\$1BadBots\$1HEADER |  요청이 불량 봇임을 나타내는 공통 `User-Agent` 헤더 값이 있는지 검사합니다. 예제 패턴에는 `nessus` 및 `nmap`이 포함되어 있습니다. 봇 관리에 대한 자세한 내용은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:BadBots_Header`  | 
| SizeRestrictions\$1QUERYSTRING |  URI 쿼리 문자열이 2,048바이트를 초과하는지 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:SizeRestrictions_QueryString`  | 
| SizeRestrictions\$1Cookie\$1HEADER |  쿠키 헤더가 10,240바이트를 초과하늕 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:SizeRestrictions_Cookie_Header`  | 
| SizeRestrictions\$1BODY |  요청 본문이 8KB(8,192바이트)를 초과하는지 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:SizeRestrictions_Body`  | 
| SizeRestrictions\$1URIPATH |  URI 경로가 1,024바이트를 초과하는지 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:SizeRestrictions_URIPath`  | 
| EC2MetaDataSSRF\$1BODY |  요청 본문에서 Amazon EC2 메타데이터를 빼내려는 시도가 있는지 검사합니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:EC2MetaDataSSRF_Body`  | 
| EC2MetaDataSSRF\$1COOKIE |  요청 쿠키에서 Amazon EC2 메타데이터를 빼내려는 시도가 있는지 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:EC2MetaDataSSRF_Cookie`  | 
| EC2MetaDataSSRF\$1URIPATH |  요청 URI 경로에서 Amazon EC2 메타데이터를 빼내려는 시도가 있는지 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:EC2MetaDataSSRF_URIPath`  | 
| EC2MetaDataSSRF\$1QUERYARGUMENTS |  요청 쿼리 인수에서 Amazon EC2 메타데이터를 빼내려는 시도가 있는지 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:EC2MetaDataSSRF_QueryArguments`  | 
| GenericLFI\$1QUERYARGUMENTS |  쿼리 인수에 로컬 파일 포함(LFI) 도용이 있는지 검사합니다. 예를 들면 `../../` 같은 기술을 사용한 경로 탐색 시도가 있을 수 있습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:GenericLFI_QueryArguments`  | 
| GenericLFI\$1URIPATH |  URI 경로에 로컬 파일 포함(LFI) 도용이 있는지 검사합니다. 예를 들면 `../../` 같은 기술을 사용한 경로 탐색 시도가 있을 수 있습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:GenericLFI_URIPath`  | 
| GenericLFI\$1BODY |  요청 본문에 로컬 파일 포함(LFI) 도용이 있는지 검사합니다. 예를 들면 `../../` 같은 기술을 사용한 경로 탐색 시도가 있을 수 있습니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:GenericLFI_Body`  | 
| RestrictedExtensions\$1URIPATH |  URI 경로에 읽거나 실행하기에 안전하지 않은 시스템 파일 확장자가 포함된 요청이 있는지 검사합니다. 예제 패턴에는 `.log` 및 `.ini` 같은 확장명이 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:RestrictedExtensions_URIPath`  | 
| RestrictedExtensions\$1QUERYARGUMENTS |  쿼리 인수가 클라이언트가 읽거나 실행하기에 안전하지 않은 시스템 파일 확장명인 요청을 검사합니다. 예제 패턴에는 `.log` 및 `.ini` 같은 확장명이 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:RestrictedExtensions_QueryArguments`  | 
| GenericRFI\$1QUERYARGUMENTS |  모든 쿼리 매개 변수의 값을 검사하여 IPv4 주소가 포함된 URL을 포함하여 웹 애플리케이션에서 RFI(Remote File Inclusion)를 악용하려는 시도가 있는지 확인합니다. 예를 들면, 악용 시도에는 IPv4 호스트 헤더가 있는 `http://`, `https://`,`ftp://`,`ftps://` 및 `file://` 등의 패턴이 있습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:GenericRFI_QueryArguments`  | 
| GenericRFI\$1BODY |  IPv4 주소가 포함된 URL을 포함하여 웹 애플리케이션에서 RFI(Remote File Inclusion)를 악용하려는 시도가 있는지 알아보기 위해 요청 본문을 검사합니다. 예를 들면, 악용 시도에는 IPv4 호스트 헤더가 있는 `http://`, `https://`,`ftp://`,`ftps://` 및 `file://` 등의 패턴이 있습니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:GenericRFI_Body`  | 
| GenericRFI\$1URIPATH |  IPv4 주소가 포함된 URL을 포함하여 웹 애플리케이션에서 RFI(Remote File Inclusion)를 악용하려는 시도가 있는지 알아보기 위해 URI 경로를 검사합니다. 예를 들면, 악용 시도에는 IPv4 호스트 헤더가 있는 `http://`, `https://`,`ftp://`,`ftps://` 및 `file://` 등의 패턴이 있습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:GenericRFI_URIPath`  | 
| CrossSiteScripting\$1COOKIE |  내장된를 사용하여 쿠키 헤더의 값에 일반적인 교차 사이트 스크립팅(XSS) 패턴이 있는지 검사합니다 AWS WAF [교차 사이트 스크립팅 공격 규칙 문](waf-rule-statement-type-xss-match.md). 예제 패턴에는 `<script>alert("hello")</script>` 같은 스크립트가 포함됩니다.   AWS WAF 로그의 규칙 일치 세부 정보는이 규칙 그룹의 버전 2.0에 대해 채워지지 않습니다.  규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:CrossSiteScripting_Cookie`  | 
| CrossSiteScripting\$1QUERYARGUMENTS |  내장된를 사용하여 쿼리 인수의 값에 일반적인 교차 사이트 스크립팅(XSS) 패턴이 있는지 검사합니다 AWS WAF [교차 사이트 스크립팅 공격 규칙 문](waf-rule-statement-type-xss-match.md). 예제 패턴에는 `<script>alert("hello")</script>` 같은 스크립트가 포함됩니다.   AWS WAF 로그의 규칙 일치 세부 정보는이 규칙 그룹의 버전 2.0에 대해 채워지지 않습니다.  규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:CrossSiteScripting_QueryArguments`  | 
| CrossSiteScripting\$1BODY |  기본 제공를 사용하여 요청 본문에 일반적인 교차 사이트 스크립팅(XSS) 패턴이 있는지 검사합니다 AWS WAF [교차 사이트 스크립팅 공격 규칙 문](waf-rule-statement-type-xss-match.md). 예제 패턴에는 `<script>alert("hello")</script>` 같은 스크립트가 포함됩니다.   AWS WAF 로그의 규칙 일치 세부 정보는이 규칙 그룹의 버전 2.0에 대해 채워지지 않습니다.  이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:CrossSiteScripting_Body`  | 
| CrossSiteScripting\$1URIPATH |  기본 제공를 사용하여 URI 경로의 값에 일반적인 교차 사이트 스크립팅(XSS) 패턴이 있는지 검사합니다 AWS WAF [교차 사이트 스크립팅 공격 규칙 문](waf-rule-statement-type-xss-match.md). 예제 패턴에는 `<script>alert("hello")</script>` 같은 스크립트가 포함됩니다.   AWS WAF 로그의 규칙 일치 세부 정보는이 규칙 그룹의 버전 2.0에 대해 채워지지 않습니다.  규칙 작업: Block Label(레이블): `awswaf:managed:aws:core-rule-set:CrossSiteScripting_URIPath`  | 

## 관리 보호 관리형 규칙 그룹
<a name="aws-managed-rule-groups-baseline-admin"></a>

VendorName: `AWS`, Name: `AWSManagedRulesAdminProtectionRuleSet`, WCU: 100

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 찾을 수 있는 내용보다 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

관리 보호 규칙 그룹에는 노출된 관리 페이지에 대한 외부 액세스를 차단할 수 있는 규칙이 포함되어 있습니다. 서드 파티 소프트웨어를 실행 중이거나, 악성 액터가 애플리케이션에 대한 관리 액세스 권한을 얻게 되는 위험을 줄이려면 이 방법이 유용할 수 있습니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| AdminProtection\$1URIPATH |  일반적으로 웹 서버 또는 애플리케이션의 관리를 위해 예약되어 있는 URI 경로가 있는지 검사합니다. 예제 패턴에는 `sqlmanager` 코드가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:admin-protection:AdminProtection_URIPath`  | 

## 관리형 규칙 그룹의 알려진 잘못된 입력
<a name="aws-managed-rule-groups-baseline-known-bad-inputs"></a>

VendorName: `AWS`, Name: `AWSManagedRulesKnownBadInputsRuleSet`, WCU: 200

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 찾을 수 있는 내용보다 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

알려진 잘못된 입력 규칙 그룹에는 유효하지 않은 것으로 알려져 있으며 취약성의 도용 또는 발견과 관련된 요청 패턴을 차단하는 규칙이 포함되어 있습니다. 이렇게 하면 악성 액터가 취약한 애플리케이션을 발견하는 위험을 줄일 수 있습니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| JavaDeserializationRCE\$1HEADER |  Spring Core and Cloud Function RCE 취약점(CVE-2022-22963, CVE-2022-22965)과 같은 Java 역직렬화 원격 명령 실행(RCE) 시도를 나타내는 패턴이 있는지 HTTP 요청 헤더의 키와 값을 검사합니다. 예제 패턴에는 `(java.lang.Runtime).getRuntime().exec("whoami")` 코드가 포함됩니다. 이 규칙은 요청 헤더의 처음 8KB 또는 처음 200개 헤더(둘 중 먼저 도달하는 제한)만 검사하며 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_Header`   | 
| JavaDeserializationRCE\$1BODY |  Spring Core and Cloud Function RCE 취약성(CVE-2022-22963, CVE-2022-22965)과 같은 Java 역직렬화 원격 명령 실행(RCE) 시도를 나타내는 패턴이 있는지 요청 본문을 검사합니다. 예제 패턴에는 `(java.lang.Runtime).getRuntime().exec("whoami")` 코드가 포함됩니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_Body`  | 
| JavaDeserializationRCE\$1URIPATH |  Spring Core and Cloud Function RCE 취약성(CVE-2022-22963, CVE-2022-22965)과 같은 Java 역직렬화 원격 명령 실행(RCE) 시도를 나타내는 패턴이 있는지 요청 URI를 검사합니다. 예제 패턴에는 `(java.lang.Runtime).getRuntime().exec("whoami")` 코드가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_URIPath`  | 
| JavaDeserializationRCE\$1QUERYSTRING |  Spring Core and Cloud Function RCE 취약성(CVE-2022-22963, CVE-2022-22965)과 같은 Java 역직렬화 원격 명령 실행(RCE) 시도를 나타내는 패턴이 있는지 요청 쿼리 문자열을 검사합니다. 예제 패턴에는 `(java.lang.Runtime).getRuntime().exec("whoami")` 코드가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_QueryString`  | 
| Host\$1localhost\$1HEADER |  로컬 호스트를 나타내는 패턴에 대한 요청의 호스트 헤더를 검사합니다. 예제 패턴에는 `localhost` 코드가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:Host_Localhost_Header`  | 
| PROPFIND\$1METHOD |  `HEAD`와 유사하지만 XML 객체를 빼내려는 의도가 추가된 `PROPFIND`에 대한 요청의 HTTP 메서드를 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:Propfind_Method`  | 
| ExploitablePaths\$1URIPATH |  URI 경로에서 도용 가능한 웹 애플리케이션 경로에 대한 액세스 시도를 검사합니다. 예제 패턴에는 `web-inf`와 같은 경로가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:ExploitablePaths_URIPath`  | 
| Log4JRCE\$1HEADER |  요청 헤더의 키와 값을 검사하여 Log4j 취약점([CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228), [CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046), [CVE-2021-45105](https://www.cve.org/CVERecord?id=CVE-2021-45105))이 있는지 확인하고 원격 코드 실행(RCE) 시도로부터 보호합니다. 예제 패턴에는 `${jndi:ldap://example.com/}` 코드가 포함됩니다. 이 규칙은 요청 헤더의 처음 8KB 또는 처음 200개 헤더(둘 중 먼저 도달하는 제한)만 검사하며 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:Log4JRCE_Header`  | 
| Log4JRCE\$1QUERYSTRING |  쿼리 문자열을 검사하여 Log4j 취약성([CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228), [CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046), [CVE-2021-45105](https://www.cve.org/CVERecord?id=CVE-2021-45105))이 있는지 확인하고 원격 코드 실행(RCE) 시도로부터 보호합니다. 예제 패턴에는 `${jndi:ldap://example.com/}` 코드가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:Log4JRCE_QueryString`  | 
| Log4JRCE\$1BODY |  본문을 검사하여 Log4j 취약성([CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228), [CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046), [CVE-2021-45105](https://www.cve.org/CVERecord?id=CVE-2021-45105))이 있는지 확인하고 원격 코드 실행(RCE) 시도로부터 보호합니다. 예제 패턴에는 `${jndi:ldap://example.com/}` 코드가 포함됩니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:Log4JRCE_Body`  | 
| Log4JRCE\$1URIPATH |  URI 경로를 검사하여 Log4j 취약성([CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228), [CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046), [CVE-2021-45105](https://www.cve.org/CVERecord?id=CVE-2021-45105))이 있는지 확인하고 원격 코드 실행(RCE) 시도로부터 보호합니다. 예제 패턴에는 `${jndi:ldap://example.com/}` 코드가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:Log4JRCE_URIPath`  | 
| ReactJSRCE\$1BODY |  요청 본문에 CVE-2025-55182의 존재를 나타내는 패턴이 있는지 검사합니다.  이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 AWS Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `CONTINUE` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오.  규칙 작업: Block Label(레이블): `awswaf:managed:aws:known-bad-inputs:ReactJSRCE_Body`  | 

# 사용 사례별 규칙 그룹
<a name="aws-managed-rule-groups-use-case"></a>

사용 사례별 규칙 그룹은 다양한 AWS WAF 사용 사례에 대한 증분 보호를 제공합니다. 애플리케이션에 적용되는 규칙 그룹을 선택합니다.

## SQL 데이터베이스 관리형 규칙 그룹
<a name="aws-managed-rule-groups-use-case-sql-db"></a>

VendorName: `AWS`, Name: `AWSManagedRulesSQLiRuleSet`, WCU: 200

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

SQL 데이터베이스 규칙 그룹에는 SQL 명령어 주입 공격과 같은 SQL 데이터베이스 도용과 관련된 요청 패턴을 차단하는 규칙이 포함되어 있습니다. 이렇게 하면 승인되지 않은 쿼리가 원격으로 삽입되는 것을 방지할 수 있습니다. 애플리케이션이 SQL 데이터베이스와 접속하는 경우 이 규칙 그룹을 사용할 수 있는지 평가합니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| SQLi\$1QUERYARGUMENTS |   AWS WAF [SQL 주입 공격 규칙 문](waf-rule-statement-type-sqli-match.md)민감도 수준이 로 설정된 내장 Low를 사용하여 모든 쿼리 파라미터의 값에 악성 SQL 코드와 일치하는 패턴이 있는지 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:sql-database:SQLi_QueryArguments`  | 
| SQLiExtendedPatterns\$1QUERYARGUMENTS |  모든 쿼리 파라미터의 값에서 악성 SQL 코드와 일치하는 패턴을 검사합니다. 이 규칙이 검사하는 패턴은 `SQLi_QUERYARGUMENTS` 규칙의 검사 범위에 포함되지 않습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:sql-database:SQLiExtendedPatterns_QueryArguments`  | 
| SQLi\$1BODY |  민감도 수준이 AWS WAF [SQL 주입 공격 규칙 문](waf-rule-statement-type-sqli-match.md)로 설정된 기본 제공를 사용하여 요청 본문에 악성 SQL 코드와 일치하는 패턴이 있는지 Low검사합니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block 레이블: `awswaf:managed:aws:sql-database:SQLi_Body`  | 
| SQLiExtendedPatterns\$1BODY |  요청 본문에 악성 SQL 코드와 일치하는 패턴이 있는지 검사합니다. 이 규칙이 검사하는 패턴은 `SQLi_BODY` 규칙의 검사 범위에 포함되지 않습니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:sql-database:SQLiExtendedPatterns_Body`  | 
| SQLi\$1COOKIE |   AWS WAF [SQL 주입 공격 규칙 문](waf-rule-statement-type-sqli-match.md)민감도 수준이 로 설정된 기본 제공 Low를 사용하여 요청 쿠키 헤더에 악성 SQL 코드와 일치하는 패턴이 있는지 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:sql-database:SQLi_Cookie`  | 
| SQLi\$1URIPATH |   AWS WAF [SQL 주입 공격 규칙 문](waf-rule-statement-type-sqli-match.md)민감도 수준이 로 설정된 기본 제공 Low를 사용하여 요청 쿠키 헤더에 악성 SQL 코드와 일치하는 패턴이 있는지 검사합니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:sql-database:SQLi_URIPath`  | 

## Linux 운영 체제 관리형 규칙 그룹
<a name="aws-managed-rule-groups-use-case-linux-os"></a>

VendorName: `AWS`, Name: `AWSManagedRulesLinuxRuleSet`, WCU: 200

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

Linux 운영 체제 규칙 그룹에는 Linux 관련 로컬 파일 포함(LFI, Local File Inclusion) 공격을 포함하여 Linux에 특정한 취약성 도용과 관련된 요청 패턴을 차단하는 규칙이 포함되어 있습니다. 이렇게 하면 파일 내용을 노출하거나 공격자가 액세스 권한을 가져서는 안 되는 코드를 실행하는 공격을 방지할 수 있습니다. 애플리케이션의 일부가 Linux에서 실행되는 경우 이 규칙 그룹을 평가해야 합니다. 이 규칙 그룹은 [POSIX 운영 체제](#aws-managed-rule-groups-use-case-posix-os) 규칙 그룹과 함께 사용해야 합니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| LFI\$1URIPATH |  웹 애플리케이션의 로컬 파일 포함(LFI, Local File Inclusion) 취약성을 도용하려는 시도가 있는지 요청 경로를 검사합니다. 예제 패턴에는 공격자에게 운영 체제 정보를 제공할 수 있는 `/proc/version` 등의 파일이 포함됩니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:linux-os:LFI_URIPath`  | 
| LFI\$1QUERYSTRING |  웹 애플리케이션의 로컬 파일 포함(LFI, Local File Inclusion) 취약성을 도용하려는 시도가 있는지 쿼리 문자열을 검사합니다. 예제 패턴에는 공격자에게 운영 체제 정보를 제공할 수 있는 `/proc/version` 등의 파일이 포함됩니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:linux-os:LFI_QueryString`  | 
| LFI\$1HEADER |  웹 애플리케이션의 로컬 파일 포함(LFI, Local File Inclusion) 취약성을 도용하려는 시도가 있는지 요청 헤더를 검사합니다. 예제 패턴에는 공격자에게 운영 체제 정보를 제공할 수 있는 `/proc/version` 등의 파일이 포함됩니다. 이 규칙은 요청 헤더의 처음 8KB 또는 처음 200개 헤더(둘 중 먼저 도달하는 제한)만 검사하며 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block (레이블): `awswaf:managed:aws:linux-os:LFI_Header`  | 

## POSIX 운영 체제 관리형 규칙 그룹
<a name="aws-managed-rule-groups-use-case-posix-os"></a>

VendorName: `AWS`, Name: `AWSManagedRulesUnixRuleSet`, WCU: 100

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

POSIX 운영 체제 규칙 그룹에는 로컬 파일 포함(LFI, Local File Inclusion) 공격을 포함하여 POSIX 및 POSIX 유사 운영 체제에 특정한 취약성 도용과 관련된 요청 패턴을 차단하는 규칙이 포함되어 있습니다. 이렇게 하면 파일 내용을 노출하거나 공격자가 액세스 권한을 가져서는 안 되는 코드를 실행하는 공격을 방지할 수 있습니다. 애플리케이션의 일부가 POSIX 또는 POSIX 유사 운영 체제(예: Linux, AIX, HP-UX, macOS, Solaris, FreeBSD, OpenBSD)에서 실행되는 경우 이 규칙 그룹을 평가해야 합니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| UNIXShellCommandsVariables\$1QUERYSTRING |  Unix 시스템에서 실행되는 웹 애플리케이션에서 명령 주입, LFI 및 경로 탐색 취약성을 도용하려는 시도가 있는지 쿼리 문자열의 값을 검사합니다. 예로는 `echo $HOME` 및 `echo $PATH` 같은 패턴이 있습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:posix-os:UNIXShellCommandsVariables_QueryString`  | 
| UNIXShellCommandsVariables\$1BODY |  Unix 시스템에서 실행되는 웹 애플리케이션에서 명령 주입, LFI 및 경로 탐색 취약성을 도용하려는 시도가 있는지 요청 본문을 검사합니다. 예로는 `echo $HOME` 및 `echo $PATH` 같은 패턴이 있습니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:posix-os:UNIXShellCommandsVariables_Body`  | 
| UNIXShellCommandsVariables\$1HEADER |  Unix 시스템에서 실행되는 웹 애플리케이션에서 명령 주입, LFI 및 경로 탐색 취약성을 도용하려는 시도가 있는지 모든 요청 헤더를 검사합니다. 예로는 `echo $HOME` 및 `echo $PATH` 같은 패턴이 있습니다. 이 규칙은 요청 헤더의 처음 8KB 또는 처음 200개 헤더(둘 중 먼저 도달하는 제한)만 검사하며 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:posix-os:UNIXShellCommandsVariables_Header`  | 

## Windows 운영 체제 관리형 규칙 그룹
<a name="aws-managed-rule-groups-use-case-windows-os"></a>

VendorName: `AWS`, Name: `AWSManagedRulesWindowsRuleSet`, WCU: 200

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

Windows 운영 체제 규칙 그룹에는 PowerShell 명령의 원격 실행과 같이 Windows에 특정한 취약성의 도용과 관련된 요청 패턴을 차단하는 규칙이 포함되어 있습니다. 이를 통해 공격자가 권한이 없는 명령을 실행하거나 악성 코드를 실행할 수 있는 취약성 악용을 방지할 수 있습니다. 애플리케이션의 일부가 Windows 운영 체제에서 실행되는 경우 이 규칙 그룹을 평가합니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| WindowsShellCommands\$1COOKIE |  요청 쿠키 헤더를 검사하여 웹 애플리케이션에 WindowsShell 명령 삽입 시도가 있는지 확인합니다. 일치 패턴이 WindowsShell 명령을 나타냅니다. 예제 패턴에는 `\|\|nslookup` 및 `;cmd`이 포함되어 있습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:windows-os:WindowsShellCommands_Cookie`   | 
| WindowsShellCommands\$1QUERYARGUMENTS |  모든 쿼리 파라미터의 값을 검사하여 웹 애플리케이션에서 WindowsShell 명령 주입 시도가 있는지 확인합니다. 일치 패턴이 WindowsShell 명령을 나타냅니다. 예제 패턴에는 `\|\|nslookup` 및 `;cmd`이 포함되어 있습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:windows-os:WindowsShellCommands_QueryArguments`   | 
| WindowsShellCommands\$1BODY |  요청 본문을 검사하여 웹 애플리케이션에서 WindowsShell 명령 주입 시도가 있는지 확인합니다. 일치 패턴이 WindowsShell 명령을 나타냅니다. 예제 패턴에는 `\|\|nslookup` 및 `;cmd`이 포함되어 있습니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:windows-os:WindowsShellCommands_Body`   | 
| PowerShellCommands\$1COOKIE |  요청 쿠키 헤더를 검사하여 웹 애플리케이션에서 PowerShell 명령 주입 시도가 있는지 확인합니다. 일치 패턴이 PowerShell 명령을 나타냅니다. 예를 들어 `Invoke-Expression`입니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:windows-os:PowerShellCommands_Cookie`  | 
| PowerShellCommands\$1QUERYARGUMENTS |  모든 쿼리 파라미터의 값을 검사하여 웹 애플리케이션에서 PowerShell 명령 주입 시도가 있는지 확인합니다. 일치 패턴이 PowerShell 명령을 나타냅니다. 예를 들어 `Invoke-Expression`입니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:windows-os:PowerShellCommands_QueryArguments`  | 
| PowerShellCommands\$1BODY |  요청 본문을 검사하여 웹 애플리케이션에서 PowerShell 명령 주입 시도가 있는지 확인합니다. 일치 패턴이 PowerShell 명령을 나타냅니다. 예를 들어 `Invoke-Expression`입니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:windows-os:PowerShellCommands_Body`   | 

## PHP 애플리케이션 관리형 규칙 그룹
<a name="aws-managed-rule-groups-use-case-php-app"></a>

VendorName: `AWS`, Name: `AWSManagedRulesPHPRuleSet`, WCU: 100

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

PHP 애플리케이션 규칙 그룹에는 안전하지 않은 PHP 함수의 주입을 포함하여 PHP 프로그래밍 언어 사용에 특정한 취약성 도용과 관련된 요청 패턴을 차단하는 규칙이 포함되어 있습니다. 이렇게 하면 공격자가 권한이 부여되지 않은 코드나 명령을 원격으로 실행할 수 있는 취약성 악용을 방지할 수 있습니다. 애플리케이션이 접속하는 서버에 PHP가 설치되어 있는 경우 이 규칙 그룹을 평가합니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| PHPHighRiskMethodsVariables\$1HEADER |  PHP 스크립트 코드 주입 시도가 있는지 모든 헤더를 검사합니다. 예제 패턴에는 `fsockopen` 같은 함수 및 `$_GET` superglobal 변수가 포함됩니다. 이 규칙은 요청 헤더의 처음 8KB 또는 처음 200개 헤더(둘 중 먼저 도달하는 제한)만 검사하며 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:php-app:PHPHighRiskMethodsVariables_Header`  | 
| PHPHighRiskMethodsVariables\$1QUERYSTRING |  요청 URL의 첫 번째 `?` 이후의 모든 부분을 검사하여 PHP 스크립트 코드 삽입 시도를 찾습니다. 예제 패턴에는 `fsockopen` 같은 함수 및 `$_GET` superglobal 변수가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:php-app:PHPHighRiskMethodsVariables_QueryString`  | 
| PHPHighRiskMethodsVariables\$1BODY |  PHP 스크립트 코드 주입 시도가 있는지 요청 본문의 값을 검사합니다. 예제 패턴에는 `fsockopen` 같은 함수 및 `$_GET` superglobal 변수가 포함됩니다. 이 규칙은 요청 본문을 보호 팩(웹 ACL)과 리소스 유형의 본문 크기 제한까지만 검사합니다. Application Load Balancer 및 AWS AppSync의 경우 제한은 8KB로 고정됩니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본 제한은 16KB이며 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 이 규칙은 과대 콘텐츠 처리에 대해 `Continue` 옵션을 사용합니다. 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 단원을 참조하십시오. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:php-app:PHPHighRiskMethodsVariables_Body`  | 
| PHPHighRiskMethodsVariables\$1URIPATH |  PHP 스크립트 코드 삽입 시도가 있는지 요청 경로를 검사합니다. 예제 패턴에는 `fsockopen` 같은 함수 및 `$_GET` superglobal 변수가 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:php-app:PHPHighRiskMethodsVariables_URIPath`  | 

## WordPress 애플리케이션 관리형 규칙 그룹
<a name="aws-managed-rule-groups-use-case-wordpress-app"></a>

VendorName: `AWS`, Name: `AWSManagedRulesWordPressRuleSet`, WCU: 100

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

WordPress 애플리케이션 규칙 그룹에는 WordPress 사이트에 특정한 취약성 도용과 관련된 요청 패턴을 차단하는 규칙이 포함되어 있습니다. WordPress를 실행하는 경우 이 규칙 그룹을 평가해야 합니다. 이 규칙 그룹은 [SQL 데이터베이스](#aws-managed-rule-groups-use-case-sql-db) 및 [PHP 애플리케이션](#aws-managed-rule-groups-use-case-php-app) 규칙 그룹과 함께 사용해야 합니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| WordPressExploitableCommands\$1QUERYSTRING |  취약한 설치 또는 플러그인에서 도용될 수 있는 고위험 WordPress 명령이 있는지 요청 쿼리 문자열을 검사합니다. 예제 패턴에는 `do-reset-wordpress` 같은 명령이 포함됩니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:wordpress-app:WordPressExploitableCommands_QUERYSTRING`  | 
| WordPressExploitablePaths\$1URIPATH |  쉽게 도용 가능한 취약성이 있는 것으로 알려진 `xmlrpc.php` 등 WordPress 파일이 있는지 요청 URI 경로를 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:wordpress-app:WordPressExploitablePaths_URIPATH`  | 

# IP 신뢰도 규칙 그룹
<a name="aws-managed-rule-groups-ip-rep"></a>

IP 신뢰도 규칙 그룹을 사용하면 소스 IP 주소에 따라 요청을 차단합니다.

**참고**  
이 규칙은 웹 요청 오리진의 소스 IP 주소를 사용합니다. 하나 이상의 프록시 또는 로드 밸런서를 통과하는 트래픽이 있는 경우 웹 요청 오리진에는 클라이언트의 최초 주소가 아닌 마지막 프록시의 주소가 포함됩니다.

봇 트래픽에 대한 노출 또는 도용 시도를 줄이고 싶거나 콘텐츠에 대해 지리적 제한을 적용 중인 경우 이러한 규칙 그룹 중 하나 이상을 선택합니다. 봇 관리에 대한 자세한 내용은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.

이 범주의 규칙 그룹은 버전 관리 또는 SNS 업데이트 알림을 제공하지 않습니다.

## Amazon IP 신뢰도 목록 관리형 규칙 그룹
<a name="aws-managed-rule-groups-ip-rep-amazon"></a>

VendorName: `AWS`, Name: `AWSManagedRulesAmazonIpReputationList`, WCU: 25

**참고**  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

Amazon IP 신뢰도 목록 규칙 그룹에는 Amazon 내부 위협 인텔리전스를 기반으로 하는 규칙이 포함되어 있습니다. 이는 일반적으로 봇이나 다른 위협과 연결된 IP 주소를 차단하려는 경우에 유용합니다. 이러한 IP 주소를 차단하면 봇을 완화하고 악성 액터가 취약한 애플리케이션을 발견하는 위험을 줄일 수 있습니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| AWSManagedIPReputationList |  악의적인 활동에 적극적으로 참여하는 것으로 식별된 IP 주소를 검사합니다. AWS WAF 는 Amazon이 사이버 범죄로부터 고객을 보호하는 데 사용하는 위협 인텔리전스 도구인 MadPot 를 비롯한 다양한 소스에서 IP 주소 목록을 수집합니다. MadPot에 대한 자세한 내용은 [https://www.aboutamazon.com/news/aws/amazon-madpot-stops-cybersecurity-crime](https://www.aboutamazon.com/news/aws/amazon-madpot-stops-cybersecurity-crime) 섹션을 참조하세요. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:amazon-ip-list:AWSManagedIPReputationList`  | 
| AWSManagedReconnaissanceList |  IP 주소의 연결을 검사하여 AWS 리소스에 대한 정찰을 수행하고 있는지 확인합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:amazon-ip-list:AWSManagedReconnaissanceList`  | 
| AWSManagedIPDDoSList |  DDoS 활동에 적극적으로 관여하는 것으로 식별된 IP 주소가 있는지 검사합니다. 규칙 작업: Count Label(레이블): `awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList`  | 

## 익명 IP 목록 관리형 규칙 그룹
<a name="aws-managed-rule-groups-ip-rep-anonymous"></a>

VendorName: `AWS`, Name: `AWSManagedRulesAnonymousIpList`, WCU: 50

**참고**  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

익명 IP 목록 규칙 그룹에는 최종 사용자 ID 난독화를 허용하는 서비스의 요청을 차단하는 규칙이 포함되어 있습니다. 여기에는 VPN, 프록시, Tor 노드 및 웹 호스팅 공급자의 요청이 포함됩니다. 이 규칙 그룹은 애플리케이션에서 자신의 ID를 숨기려고 하는 최종 사용자를 필터링하려는 경우에 유용합니다. 이러한 서비스의 IP 주소를 차단하면 봇을 완화하고 지리적 제한을 피할 수 있습니다.

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| AnonymousIPList |  TOR 노드, 임시 프록시 및 기타 마스킹 서비스 등 클라이언트 정보를 익명화하는 것으로 알려진 소스의 IP 주소 목록을 검사합니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:anonymous-ip-list:AnonymousIPList`  | 
| HostingProviderIPList | 최종 사용자 트래픽을 소싱할 가능성이 적은 웹 호스팅 공급자 및 클라우드 공급자의 IP 주소 목록을 검사합니다. IP 목록에는 AWS IP 주소가 포함되지 않습니다. 규칙 작업: Block Label(레이블): `awswaf:managed:aws:anonymous-ip-list:HostingProviderIPList` | 

# AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹
<a name="aws-managed-rule-groups-acfp"></a>

이 섹션에서는 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 관리형 규칙 그룹의 기능에 대해 설명합니다.

VendorName: `AWS`, Name: `AWSManagedRulesACFPRuleSet`, WCU: 50

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 관리형 규칙 그룹은 사기 계정 생성 시도의 일부일 수 있는 요청에 레이블을 지정하고 관리합니다. 이 규칙 그룹은 클라이언트가 애플리케이션의 등록 및 계정 생성 엔드포인트로 보내는 계정 생성 요청을 검사하여 이 작업을 수행합니다.

ACFP 규칙 그룹은 계정 생성 시도를 다양한 방식으로 검사하여 사용자가 잠재적으로 악의적인 상호 작용을 파악하고 제어할 수 있도록 합니다. 규칙 그룹은 요청 토큰을 사용하여 클라이언트 브라우저에 대한 정보와 계정 생성 요청 생성 시 사용자 상호 작용 수준에 대한 정보를 수집합니다. 규칙 그룹은 IP 주소 및 클라이언트 세션별로 요청을 집계하고 실제 주소 및 전화 번호와 같은 제공된 계정 정보별로 집계하여 대량 계정 생성 시도를 탐지하고 관리합니다. 또한 규칙 그룹은 손상된 자격 증명을 사용한 새 계정의 생성을 탐지하고 차단하므로 애플리케이션과 새 사용자의 보안 상태를 보호하는 데 도움이 됩니다.

## 이 규칙 그룹 사용 시 고려 사항
<a name="aws-managed-rule-groups-acfp-using"></a>

이 규칙 그룹에는 애플리케이션의 계정 등록 및 계정 생성 경로 사양을 포함하는 사용자 지정 구성이 필요합니다. 별도로 언급되는 경우를 제외하고, 이 규칙 그룹의 규칙은 클라이언트가 이 두 엔드포인트로 보내는 모든 요청을 검사합니다. 이 규칙 그룹을 구성하고 구현하려면 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)](waf-acfp.md)의 지침을 참조하세요.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

이 규칙 그룹은 AWS WAF에 지능형 위협 완화 보호의 일부로 포함됩니다. 자세한 내용은 [의 지능형 위협 완화 AWS WAF](waf-managed-protections.md) 단원을 참조하세요.

지속적으로 비용을 절감하고 웹 트래픽이 필요에 맞게 관리되도록 하려면 [의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md)의 지침에 따라 이 규칙 그룹을 사용하세요.

이 규칙 그룹은 Amazon Cognito 사용자 풀과 함께 사용할 수 없습니다. 이 규칙 그룹을 사용하는 보호 팩(웹 ACL)을 사용자 풀과 연결할 수 없으며, 이미 사용자 풀과 연결된 보호 팩(웹 ACL)에 이 규칙 그룹을 추가할 수 없습니다.

## 이 규칙 그룹에서 추가한 레이블
<a name="aws-managed-rule-groups-acfp-labels"></a>

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.

### 토큰 레이블
<a name="aws-managed-rule-groups-acfp-labels-token"></a>

이 규칙 그룹은 AWS WAF 토큰 관리를 사용하여 AWS WAF 토큰 상태에 따라 웹 요청을 검사하고 레이블을 지정합니다.는 클라이언트 세션 추적 및 확인을 위해 토큰을 AWS WAF 사용합니다.

토큰 및 토큰 관리에 대한 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 섹션을 참조하세요.

여기에 설명된 레이블 구성 요소에 대한 자세한 내용은 [의 레이블 구문 및 이름 지정 요구 사항 AWS WAF](waf-rule-label-requirements.md) 섹션을 참조하세요.

**클라이언트 세션 레이블**  
레이블에는 AWS WAF 토큰 관리가 클라이언트 세션을 식별하는 데 사용하는 고유 식별자가 `awswaf:managed:token:id:identifier` 포함되어 있습니다. 클라이언트가 새 토큰을 획득하는 경우(예: 사용하고 있던 토큰을 폐기한 후) 식별자가 변경될 수 있습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**브라우저 지문 레이블**  
레이블에는 AWS WAF 토큰 관리가 다양한 클라이언트 브라우저 신호에서 계산하는 강력한 브라우저 지문 식별자가 `awswaf:managed:token:fingerprint:fingerprint-identifier` 포함되어 있습니다. 이 식별자는 여러 토큰 획득 시도에서 동일하게 유지됩니다. 지문 식별자는 단일 클라이언트에 고유하지 않습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**토큰 상태 레이블: 레이블 네임스페이스 접두사**  
토큰 상태 레이블은 토큰 및 챌린지 상태와 토큰에 포함된 CAPTCHA 정보를 보고합니다.

각 토큰 상태 레이블은 다음 네임스페이스 접두사 중 하나로 시작합니다.
+ `awswaf:managed:token:` – 토큰의 일반 상태를 보고하고 토큰의 챌린지 정보 상태를 보고하는 데 사용됩니다.
+ `awswaf:managed:captcha:` – 토큰의 CAPTCHA 정보 상태를 보고하는 데 사용됩니다.

**토큰 상태 레이블: 레이블 이름**  
접두사 뒤에 오는 라벨의 나머지 부분은 자세한 토큰 상태 정보를 제공합니다.
+ `accepted` – 요청 토큰이 존재하며 다음을 포함합니다.
  + 유효한 챌린지 또는 CAPTCHA 솔루션.
  + 만료되지 않은 챌린지 또는 CAPTCHA 타임스탬프.
  + 보호 팩(웹 ACL)에 대해 유효한 도메인 사양입니다.

  예: 레이블 `awswaf:managed:token:accepted`은(는) 웹 요청의 토큰에 유효한 인증 확인 솔루션, 만료되지 않은 챌린지 타임스탬프 및 유효한 도메인이 있음을 나타냅니다.
+ `rejected` – 요청 토큰이 존재하지만 수락 기준을 충족하지 않습니다.

  거부된 레이블과 함께 토큰 관리는 사용자 지정 레이블 네임스페이스 및 이름을 추가하여 이유를 나타냅니다.
  + `rejected:not_solved` – 토큰에 챌린지 또는 CAPTCHA 솔루션이 없습니다.
  + `rejected:expired` – 보호 팩(웹 ACL)의 구성된 토큰 면역 시간에 따라 토큰의 챌린지 또는 CAPTCHA 타임스탬프가 만료되었습니다.
  + `rejected:domain_mismatch` – 토큰의 도메인이 보호 팩(웹 ACL)의 토큰 도메인 구성과 일치하지 않습니다.
  + `rejected:invalid` - 표시된 토큰을 읽을 AWS WAF 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:rejected` 및 `awswaf:managed:captcha:rejected:expired`가 함께 표시되는 것은 토큰 내 CAPTCHA 타임스탬프가 보호 팩(웹 ACL)에 구성된 CAPTCHA 토큰 면역 시간을 초과했기 때문에 요청에 유효한 CAPTCHA 풀이가 포함되지 않았음을 의미합니다.
+ `absent` – 요청에 토큰이 없거나 토큰 관리자가 토큰을 읽을 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:absent`는 요청에 토큰이 없음을 나타냅니다.

### ACFP 레이블
<a name="aws-managed-rule-groups-acfp-labels-rg"></a>

이 규칙 그룹은 네임스페이스 접두사 `awswaf:managed:aws:acfp:` 다음에 사용자 지정 네임스페이스와 레이블 이름이 이어지는 레이블을 생성합니다. 이 규칙 그룹은 요청 하나에 둘 이상의 레이블을 추가할 수도 있습니다.

`DescribeManagedRuleGroup`을 호출하여 API를 통해 규칙 그룹의 모든 레이블을 검색할 수 있습니다. 레이블은 응답의 `AvailableLabels` 속성에 나열됩니다.

## 계정 생성 사기 방지 규칙 목록
<a name="aws-managed-rule-groups-acfp-rules"></a>

이 섹션에는 `AWSManagedRulesACFPRuleSet`의 ACFP 규칙과 규칙 그룹의 규칙이 웹 요청에 추가하는 레이블이 나열되어 있습니다.

이 규칙 그룹의 모든 규칙에는 처음 두 `UnsupportedCognitoIDP` 및 `AllRequests`의 경우를 제외하고는 웹 요청 토큰이 필요합니다. 토큰이 제공하는 정보에 대한 설명은 [AWS WAF 토큰 특성](waf-tokens-details.md) 섹션을 참조하세요.

별도로 언급된 경우를 제외하고, 이 규칙 그룹의 규칙은 클라이언트가 규칙 그룹 구성에 제공되는 계정 등록 및 계정 생성 페이지 경로로 보내는 모든 요청을 검사합니다. 이 규칙 그룹의 구성에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)](waf-acfp.md) 섹션을 참조하세요.

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| UnsupportedCognitoIDP |  Amazon Cognito 사용자 풀로 이동하는 웹 트래픽을 검사합니다. ACFP는 Amazon Cognito 사용자 풀과 함께 사용할 수 없으므로, 이 규칙은 다른 ACFP 규칙 그룹 규칙이 사용자 풀 트래픽을 평가하는 데 사용되지 않도록 하는 데 도움이 됩니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:unsupported:cognito_idp` 및 `awswaf:managed:aws:acfp:UnsupportedCognitoIDP`   | 
| AllRequests |  등록 페이지 경로에 액세스하는 요청에 규칙 작업을 적용합니다. 규칙 그룹을 구성할 때 등록 페이지 경로를 구성합니다. 기본적으로 이 규칙은 요청에 Challenge를 적용합니다. 이 작업의 적용으로 규칙은 규칙 그룹의 나머지 규칙에서 요청을 평가하기 전에 클라이언트가 챌린지 토큰을 획득하도록 합니다. 최종 사용자가 계정 생성 요청을 제출하기 전에 등록 페이지 경로를 로드하도록 해야 합니다. 토큰은 클라이언트 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 토큰을 가장 효율적으로 획득하려면 애플리케이션 통합 SDK를 사용하는 것이 좋습니다. 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 단원을 참조하십시오. 규칙 작업: Challenge 레이블: 없음  | 
| RiskScoreHigh |  계정 생성 요청이 매우 의심스러운 것으로 간주되는 IP 주소 또는 기타 요인을 포함하는지 검사합니다. 이 평가는 일반적으로 여러 기여 요인을 기반으로 하며, 이러한 요인은 규칙 그룹이 요청에 추가하는 `risk_score` 레이블에서 확인할 수 있습니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:risk_score:high` 및 `awswaf:managed:aws:acfp:RiskScoreHigh`  이 규칙은 요청에 `medium` 또는 `low` 위험 점수 레이블을 적용할 수도 있습니다.  AWS WAF 가 웹 요청에 대한 위험 점수를 평가하지 못하면 규칙이 레이블을 추가합니다. `awswaf:managed:aws:acfp:risk_score:evaluation_failed `  또한 이 규칙은 네임스페이스가 `awswaf:managed:aws:acfp:risk_score:contributor:`인 레이블을 추가하는데, 이 레이블에는 IP 신뢰도 및 도용된 보안 인증 정보 평가와 같은 특정 위험 점수 참여자에 대한 위험 점수 평가 상태 및 결과가 포함됩니다.  | 
| SignalCredentialCompromised |  도용된 보안 인증 정보 데이터베이스에서 계정 생성 요청에 제출된 보안 인증 정보를 검색합니다. 이 규칙을 사용하면 신규 클라이언트가 확실한 보안 태세를 갖춘 상태에서 자신들의 계정을 초기화할 수 있습니다.  사용자 지정 차단 응답을 추가하여 최종 사용자에게 문제를 설명하고 진행 방법을 알려줄 수 있습니다. 자세한 내용은 [ACFP 예제: 손상된 보안 인증 정보에 대한 사용자 지정 응답](waf-acfp-control-example-compromised-credentials.md) 단원을 참조하세요.  규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:signal:credential_compromised` 및 `awswaf:managed:aws:acfp:SignalCredentialCompromised`  규칙 그룹은 다음과 같은 관련 레이블을 적용하지만 계정 생성 시 모든 요청에 `awswaf:managed:aws:acfp:signal:missing_credential` 보안 인증 정보가 있는 것은 아니기 때문에 이러한 레이블에 대해 아무런 작업도 수행하지 않습니다.  | 
| SignalClientHumanInteractivityAbsentLow |  계정 생성 요청 토큰에서 애플리케이션과 사용자의 비정상적인 상호 작용을 나타내는 데이터가 있는지 검사합니다. 사용자 상호 작용은 마우스 동작 및 키 누름과 같은 상호 작용을 통해 탐지됩니다. 페이지에 HTML 양식이 있는 경우 사용자 상호 작용에는 양식과의 상호 작용이 포함됩니다.  이 규칙은 계정 생성 경로에 대한 요청만 검사하며 애플리케이션 통합 SDK를 구현한 경우에만 평가됩니다. SDK 구현은 사용자 상호 작용을 수동적으로 캡처하여 요청 토큰에 정보를 저장합니다. 자세한 내용은 [AWS WAF 토큰 특성](waf-tokens-details.md) 및 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요.  규칙 작업: CAPTCHA 레이블: 없음. 이 규칙은 다양한 요인을 기반으로 일치 항목을 결정하므로 가능한 모든 일치 시나리오에 적용되는 개별 레이블은 없습니다. 규칙 그룹은 다음 레이블 중 하나 이상을 요청에 적용할 수 있습니다. `awswaf:managed:aws:acfp:signal:client:human_interactivity:low\|medium\|high` `awswaf:managed:aws:acfp:SignalClientHumanInteractivityAbsentLow\|Medium\|High`  `awswaf:managed:aws:acfp:signal:client:human_interactivity:insufficient_data`  `awswaf:managed:aws:acfp:signal:form_detected`.  | 
| AutomatedBrowser |  클라이언트 브라우저가 자동화될 수 있음을 나타내는 표시자가 있는지 검사합니다. 규칙 작업: Block  레이블: `awswaf:managed:aws:acfp:signal:automated_browser` 및 `awswaf:managed:aws:acfp:AutomatedBrowser`  | 
| BrowserInconsistency |  요청 토큰에 일치하지 않는 브라우저 질문 데이터가 있는지 검사합니다. 자세한 내용은 [AWS WAF 토큰 특성](waf-tokens-details.md) 단원을 참조하십시오. 규칙 작업: CAPTCHA  레이블: `awswaf:managed:aws:acfp:signal:browser_inconsistency` 및 `awswaf:managed:aws:acfp:BrowserInconsistency`  | 
| VolumetricIpHigh |  개별 IP 주소에서 대용량의 계정 생성 요청이 전송되었는지 검사합니다. 대량이란 10분의 시간 동안 20개가 넘는 요청을 의미합니다. 이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 대량의 경우 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다. 규칙 작업: CAPTCHA 레이블: `awswaf:managed:aws:acfp:aggregate:volumetric:ip:creation:high` 및 `awswaf:managed:aws:acfp:VolumetricIpHigh`  이 규칙은 중간 용량(10분 기간당 요청 15개 초과) 및 소량(10분 기간당 요청 10개 초과) 요청에 다음 레이블을 적용하지만, `awswaf:managed:aws:acfp:aggregate:volumetric:ip:creation:medium` 및 `awswaf:managed:aws:acfp:aggregate:volumetric:ip:creation:low`에 대해 아무런 작업도 수행하지 않습니다.  | 
| VolumetricSessionHigh |  개별 클라이언트 세션에서 대량의 계정 생성 요청이 전송되었는지 검사합니다. 대량이란 30분의 시간 동안 10개가 넘는 요청을 의미합니다.  이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:aggregate:volumetric:session:creation:high` 및 `awswaf:managed:aws:acfp:VolumetricSessionHigh`  이 규칙 그룹은 중간 용량(30분 기간당 요청 5개 초과) 및 소량(30분 기간당 요청 1개 초과) 요청에 다음 레이블을 적용하지만, `awswaf:managed:aws:acfp:aggregate:volumetric:session:creation:medium` 및 `awswaf:managed:aws:acfp:aggregate:volumetric:session:creation:low`에 대해 아무런 작업도 수행하지 않습니다.  | 
| AttributeUsernameTraversalHigh |  단일 클라이언트 세션에서 다양한 사용자 이름을 사용하는 계정 생성 요청의 비율이 높은지 검사합니다. 30분 동안 요청 수가 10개가 넘으면 높음으로 평가됩니다.  이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:aggregate:attribute:username_traversal:creation:high` 및 `awswaf:managed:aws:acfp:AttributeUsernameTraversalHigh`  이 규칙 그룹은 사용자 이름 탐색 요청의 중간 용량(30분 기간당 요청 5개 초과) 및 소량(30분 기간당 요청 1개 초과) 요청에 다음 레이블을 적용하지만, `awswaf:managed:aws:acfp:aggregate:attribute:username_traversal:creation:medium` 및 `awswaf:managed:aws:acfp:aggregate:attribute:username_traversal:creation:low`에 대해 아무런 작업도 수행하지 않습니다.  | 
| VolumetricPhoneNumberHigh |  동일한 전화번호를 사용하는 계정 생성 요청이 많은지 검사합니다. 30분 동안 요청 수가 10개가 넘으면 높음으로 평가됩니다.  이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:aggregate:volumetric:phone_number:high` 및 `awswaf:managed:aws:acfp:VolumetricPhoneNumberHigh` 이 규칙 그룹은 중간 용량(30분 기간당 요청 5개 초과) 및 소량(30분 기간당 요청 1개 초과) 요청에 다음 레이블을 적용하지만, `awswaf:managed:aws:acfp:aggregate:volumetric:phone_number:medium` 및 `awswaf:managed:aws:acfp:aggregate:volumetric:phone_number:low`에 대해 아무런 작업도 수행하지 않습니다.  | 
| VolumetricAddressHigh |  동일한 실제 주소를 사용하는 계정 생성 요청이 많은지 검사합니다. 30분 동안 요청 수가 100개가 넘으면 높음으로 평가됩니다.  이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:aggregate:volumetric:address:high` 및 `awswaf:managed:aws:acfp:VolumetricAddressHigh`   | 
| VolumetricAddressLow |  소량 및 중간 용량의 계정 생성 요청에서 동일한 물리적 주소가 사용되는지 검사합니다. 30분 동안 요청 수가 50개를 초과하면 중간 용량으로 평가되고 30분 동안 요청 수가 10개를 초과하면 소량으로 평가됩니다. 이 규칙은 중간 용량 또는 소량에 모두 작업을 적용합니다.  이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업: CAPTCHA 레이블: `awswaf:managed:aws:acfp:aggregate:volumetric:address:low\|medium` 및 `awswaf:managed:aws:acfp:VolumetricAddressLow\|Medium`   | 
| VolumetricIPSuccessfulResponse |  단일 IP 주소에 대한 성공적인 계정 생성 요청이 많은지 검사합니다. 이 규칙은 계정 생성 요청에 대한 보호된 리소스의 성공 응답을 집계합니다. 10분 동안 요청 수가 10개가 넘으면 높음으로 평가됩니다. 이 규칙은 대량 계정 생성 시도를 방지하는 데 도움이 됩니다. 이 규칙은 요청만 계산하는 `VolumetricIpHigh` 규칙보다 임계값이 낮습니다. 응답 본문 또는 JSON 구성 요소를 검사하도록 규칙 그룹을 구성한 경우는 이러한 구성 요소 유형의 처음 65,536바이트(64KB)에서 성공 또는 실패 지표를 검사할 AWS WAF 수 있습니다. 이 규칙은 동일한 IP 주소에서 발생한 최근 로그인 시도에 대한 보호된 리소스의 성공 및 실패 응답을 기반으로 IP 주소의 새 웹 요청에 규칙 작업 및 레이블링을 적용합니다. 규칙 그룹을 구성할 때 성공과 실패를 계산하는 방법을 정의합니다.  AWS WAF 는 Amazon CloudFront 배포를 보호하는 보호 팩(웹 ACLs)에서만이 규칙을 평가합니다.   이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 클라이언트는 규칙이 후속 시도에서 매칭을 시작하기 전에 허용되는 횟수보다 더 많은 성공 계정 생성 시도 횟수를 전송할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:aggregate:volumetric:ip:successful_creation_response:high` 및 `awswaf:managed:aws:acfp:VolumetricIPSuccessfulResponse`  또한 규칙 그룹은 어떠한 연결된 작업도 없이 다음과 같은 관련 레이블을 요청에 적용합니다. 모든 개수는 10분 기간 기준입니다. 성공 요청이 5개 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:ip:successful_creation_response:medium`, 성공 요청이 1개가 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:ip:successful_creation_response:low`, 실패 요청이 10개가 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:ip:failed_creation_response:high`, 실패 요청이 5개가 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:ip:failed_creation_response:medium`, 그리고 실패 요청이 1개가 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:ip:failed_creation_response:low`입니다.  | 
| VolumetricSessionSuccessfulResponse |  단일 클라이언트 세션에서 전송되는 계정 생성 요청에 대해 보호된 리소스의 성공 응답이 적은지 검사합니다. 이는 대량 계정 생성 시도를 방지하는 데 도움이 됩니다. 30분 기간당 요청 수가 1개가 넘으면 낮음으로 평가됩니다. 이는 대량 계정 생성 시도를 방지하는 데 도움이 됩니다. 이 규칙은 요청만 추적하는 `VolumetricSessionHigh` 규칙보다 낮은 임계값을 사용합니다. 응답 본문 또는 JSON 구성 요소를 검사하도록 규칙 그룹을 구성한 경우는 이러한 구성 요소 유형의 처음 65,536바이트(64KB)에서 성공 또는 실패 지표를 검사할 AWS WAF 수 있습니다. 이 규칙은 동일한 클라이언트 세션에서 발생한 최근 로그인 시도에 대한 보호된 리소스의 성공 및 실패 응답을 기반으로 클라이언트 세션의 새 웹 요청에 규칙 작업 및 레이블링을 적용합니다. 규칙 그룹을 구성할 때 성공과 실패를 계산하는 방법을 정의합니다.  AWS WAF 는 Amazon CloudFront 배포를 보호하는 보호 팩(웹 ACLs)에서만이 규칙을 평가합니다.   이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 클라이언트는 규칙이 후속 시도에서 매칭을 시작하기 전에 허용되는 횟수보다 더 많은 실패 계정 생성 시도 횟수를 전송할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:low` 및 `awswaf:managed:aws:acfp:VolumetricSessionSuccessfulResponse`  또한 규칙 그룹은 다음과 같은 관련 레이블을 요청에 적용합니다. 모든 개수는 30분 기간 기준입니다. 성공 요청이 10개 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:high`, 성공 요청이 5개가 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:medium`, 실패 요청이 10개가 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:session:failed_creation_response:high`, 실패 요청이 5개가 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:session:failed_creation_response:medium`, 그리고 실패 요청이 1개가 넘는 경우 `awswaf:managed:aws:acfp:aggregate:volumetric:session:failed_creation_response:low`입니다.  | 
| VolumetricSessionTokenReuseIp |  5개가 넘는 고유 IP 주소에서 단일 토큰이 사용되는 계정 생성 요청이 있는지 검사합니다.  이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:acfp:aggregate:volumetric:session:creation:token_reuse:ip` 및 `awswaf:managed:aws:acfp:VolumetricSessionTokenReuseIp`  | 

# AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹
<a name="aws-managed-rule-groups-atp"></a>

이 섹션에서는 AWS WAF 사기 제어 계정 탈취 방지(ATP) 관리형 규칙 그룹의 기능에 대해 설명합니다.

VendorName: `AWS`, Name: `AWSManagedRulesATPRuleSet`, WCU: 50

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

 AWS WAF 사기 제어 계정 탈취 방지(ATP) 관리형 규칙 그룹은 악의적인 계정 탈취 시도의 일부일 수 있는 요청에 레이블을 지정하고 관리합니다. 규칙 그룹은 클라이언트가 애플리케이션의 로그인 엔드포인트로 보내는 로그인 시도를 검사하여 이 작업을 수행합니다.
+ **요청 검사** — ATP를 사용하면 비정상적인 로그인 시도 및 보안 인증 정보를 도용한 로그인 시도를 파악하고 제어할 수 있으므로 사기 행위로 이어질 수 있는 계정 탈취를 방지할 수 있습니다. ATP는 도용된 보안 인증 정보 데이터베이스에서 이메일과 암호 조합을 검사합니다. 이 데이터베이스는 유출된 보안 인증 정보가 다크 웹에서 발견될 때마다 정기적으로 업데이트됩니다. ATP는 IP 주소 및 클라이언트 세션별로 데이터를 집계하여 의심스러운 요청을 너무 많이 보내는 클라이언트를 탐지하고 차단합니다.
+ **응답 검사** — CloudFront 배포의 경우 ATP 규칙 그룹은 수신 로그인 요청을 검사하는 것 외에도 로그인 시도에 대한 애플리케이션의 응답을 검사하여 성공률과 실패율을 추적합니다. ATP는 이 정보를 사용하여 로그인 실패가 너무 많은 클라이언트 세션 또는 IP 주소를 일시적으로 차단할 수 있습니다. AWS WAF 는 응답 검사를 비동기적으로 수행하므로 이 작업으로 인해 웹 트래픽의 지연 시간이 증가하지 않습니다.

## 이 규칙 그룹 사용 시 고려 사항
<a name="aws-managed-rule-groups-atp-using"></a>

이 규칙 그룹에는 특정 구성이 필요합니다. 이 규칙 그룹을 구성하고 구현하려면 [AWS WAF 사기 제어 계정 탈취 방지(ATP)](waf-atp.md)의 지침을 참조하세요.

이 규칙 그룹은 AWS WAF에 지능형 위협 완화 보호의 일부로 포함됩니다. 자세한 내용은 [의 지능형 위협 완화 AWS WAF](waf-managed-protections.md) 단원을 참조하세요.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

지속적으로 비용을 절감하고 웹 트래픽이 필요에 맞게 관리되도록 하려면 [의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md)의 지침에 따라 이 규칙 그룹을 사용하십시오.

이 규칙 그룹은 Amazon Cognito 사용자 풀과 함께 사용할 수 없습니다. 이 규칙 그룹을 사용하는 보호 팩(웹 ACL)을 사용자 풀과 연결할 수 없으며, 이미 사용자 풀과 연결된 보호 팩(웹 ACL)에 이 규칙 그룹을 추가할 수 없습니다.

## 이 규칙 그룹에서 추가한 레이블
<a name="aws-managed-rule-groups-atp-labels"></a>

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.

### 토큰 레이블
<a name="aws-managed-rule-groups-atp-labels-token"></a>

이 규칙 그룹은 AWS WAF 토큰 관리를 사용하여 AWS WAF 토큰 상태에 따라 웹 요청을 검사하고 레이블을 지정합니다.는 클라이언트 세션 추적 및 확인을 위해 토큰을 AWS WAF 사용합니다.

토큰 및 토큰 관리에 대한 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 섹션을 참조하세요.

여기에 설명된 레이블 구성 요소에 대한 자세한 내용은 [의 레이블 구문 및 이름 지정 요구 사항 AWS WAF](waf-rule-label-requirements.md) 섹션을 참조하세요.

**클라이언트 세션 레이블**  
레이블에는 AWS WAF 토큰 관리가 클라이언트 세션을 식별하는 데 사용하는 고유 식별자가 `awswaf:managed:token:id:identifier` 포함되어 있습니다. 클라이언트가 새 토큰을 획득하는 경우(예: 사용하고 있던 토큰을 폐기한 후) 식별자가 변경될 수 있습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**브라우저 지문 레이블**  
레이블에는 AWS WAF 토큰 관리가 다양한 클라이언트 브라우저 신호에서 계산하는 강력한 브라우저 지문 식별자가 `awswaf:managed:token:fingerprint:fingerprint-identifier` 포함되어 있습니다. 이 식별자는 여러 토큰 획득 시도에서 동일하게 유지됩니다. 지문 식별자는 단일 클라이언트에 고유하지 않습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**토큰 상태 레이블: 레이블 네임스페이스 접두사**  
토큰 상태 레이블은 토큰 및 챌린지 상태와 토큰에 포함된 CAPTCHA 정보를 보고합니다.

각 토큰 상태 레이블은 다음 네임스페이스 접두사 중 하나로 시작합니다.
+ `awswaf:managed:token:` – 토큰의 일반 상태를 보고하고 토큰의 챌린지 정보 상태를 보고하는 데 사용됩니다.
+ `awswaf:managed:captcha:` – 토큰의 CAPTCHA 정보 상태를 보고하는 데 사용됩니다.

**토큰 상태 레이블: 레이블 이름**  
접두사 뒤에 오는 라벨의 나머지 부분은 자세한 토큰 상태 정보를 제공합니다.
+ `accepted` – 요청 토큰이 존재하며 다음을 포함합니다.
  + 유효한 챌린지 또는 CAPTCHA 솔루션.
  + 만료되지 않은 챌린지 또는 CAPTCHA 타임스탬프.
  + 보호 팩(웹 ACL)에 대해 유효한 도메인 사양입니다.

  예: 레이블 `awswaf:managed:token:accepted`은(는) 웹 요청의 토큰에 유효한 인증 확인 솔루션, 만료되지 않은 챌린지 타임스탬프 및 유효한 도메인이 있음을 나타냅니다.
+ `rejected` – 요청 토큰이 존재하지만 수락 기준을 충족하지 않습니다.

  거부된 레이블과 함께 토큰 관리는 사용자 지정 레이블 네임스페이스 및 이름을 추가하여 이유를 나타냅니다.
  + `rejected:not_solved` – 토큰에 챌린지 또는 CAPTCHA 솔루션이 없습니다.
  + `rejected:expired` – 보호 팩(웹 ACL)의 구성된 토큰 면역 시간에 따라 토큰의 챌린지 또는 CAPTCHA 타임스탬프가 만료되었습니다.
  + `rejected:domain_mismatch` – 토큰의 도메인이 보호 팩(웹 ACL)의 토큰 도메인 구성과 일치하지 않습니다.
  + `rejected:invalid` - 표시된 토큰을 읽을 AWS WAF 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:rejected` 및 `awswaf:managed:captcha:rejected:expired`가 함께 표시되는 것은 토큰 내 CAPTCHA 타임스탬프가 보호 팩(웹 ACL)에 구성된 CAPTCHA 토큰 면역 시간을 초과했기 때문에 요청에 유효한 CAPTCHA 풀이가 포함되지 않았음을 의미합니다.
+ `absent` – 요청에 토큰이 없거나 토큰 관리자가 토큰을 읽을 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:absent`는 요청에 토큰이 없음을 나타냅니다.

### ATP 레이블
<a name="aws-managed-rule-groups-atp-labels-rg"></a>

ATP 관리형 규칙 그룹은 네임스페이스 접두사 `awswaf:managed:aws:atp:` 다음에 사용자 지정 네임스페이스와 레이블 이름이 이어지는 레이블을 생성합니다.

규칙 그룹은 규칙 목록에 나와 있는 레이블 외에도 다음 레이블 중 하나를 추가할 수 있습니다.
+ `awswaf:managed:aws:atp:signal:credential_compromised` - 요청에서 제출된 보안 인증 정보가 도용된 보안 인증 정보 데이터베이스에 있음을 나타냅니다.
+ `awswaf:managed:aws:atp:aggregate:attribute:suspicious_tls_fingerprint` - 보호된 Amazon CloudFront 배포에만 사용할 수 있습니다. 클라이언트 세션에서 의심스러운 TLS 핑거프린트를 사용한 요청을 여러 번 보냈음을 나타냅니다.
+ `awswaf:managed:aws:atp:aggregate:volumetric:session:token_reuse:ip` - 단일 토큰이 5개 이상의 고유 IP 주소에서 사용되었음을 나타냅니다. 이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 레이블이 적용되기 전에 몇 개의 요청이 제한을 초과할 수 있습니다.

`DescribeManagedRuleGroup`을 호출하여 API를 통해 규칙 그룹의 모든 레이블을 검색할 수 있습니다. 레이블은 응답의 `AvailableLabels` 속성에 나열됩니다.

## 계정 탈취 방지 규칙 목록
<a name="aws-managed-rule-groups-atp-rules"></a>

이 섹션에는 `AWSManagedRulesATPRuleSet`의 ATP 규칙과 규칙 그룹의 규칙이 웹 요청에 추가하는 레이블이 나열되어 있습니다.

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.


| 규칙 이름 | 설명 및 레이블 | 
| --- | --- | 
| UnsupportedCognitoIDP | Amazon Cognito 사용자 풀로 이동하는 웹 트래픽을 검사합니다. ATP는 Amazon Cognito 사용자 풀과 함께 사용할 수 없으므로, 이 규칙은 다른 ATP 규칙 그룹 규칙이 사용자 풀 트래픽을 평가하는 데 사용되지 않도록 하는 데 도움이 됩니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:atp:unsupported:cognito_idp` 및 `awswaf:managed:aws:atp:UnsupportedCognitoIDP`   | 
| VolumetricIpHigh | 개별 IP 주소에서 대용량의 요청이 전송되었는지 검사합니다. 대량이란 10분의 시간 동안 20개가 넘는 요청을 의미합니다.  이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 대량의 경우 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:atp:aggregate:volumetric:ip:high` 및 `awswaf:managed:aws:atp:VolumetricIpHigh`  이 규칙 그룹은 중간 용량(10분 기간당 요청 15개 초과) 및 소량(10분 기간당 요청 10개 초과) 요청에 다음 레이블을 적용하지만, `awswaf:managed:aws:atp:aggregate:volumetric:ip:medium` 및 `awswaf:managed:aws:atp:aggregate:volumetric:ip:low`에 대해 아무런 작업도 수행하지 않습니다. | 
| VolumetricSession |  개별 클라이언트 세션에서 대용량의 요청이 전송되었는지 검사합니다. 30분 동안 요청 수가 20개를 초과하는 것이 임계값입니다. 이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오.  이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:atp:aggregate:volumetric:session` 및 `awswaf:managed:aws:atp:VolumetricSession`   | 
| AttributeCompromisedCredentials |  동일한 클라이언트 세션의 여러 요청에서 도용된 보안 인증 정보가 사용되는지 검사합니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:atp:aggregate:attribute:compromised_credentials` 및 `awswaf:managed:aws:atp:AttributeCompromisedCredentials`   | 
| AttributeUsernameTraversal |  사용자 이름 순회를 사용하는 동일한 클라이언트 세션에서 여러 요청이 있는지 검사합니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:atp:aggregate:attribute:username_traversal` 및 `awswaf:managed:aws:atp:AttributeUsernameTraversal`   | 
| AttributePasswordTraversal |  암호 순회를 사용하는 동일한 사용자 이름에서 여러 요청이 있는지 검사합니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:atp:aggregate:attribute:password_traversal` 및 `awswaf:managed:aws:atp:AttributePasswordTraversal`   | 
| AttributeLongSession |  오래 지속되는 세션을 사용하는 동일한 클라이언트 세션에서 여러 요청이 있는지 검사합니다. 임계값은 30분마다 로그인 요청이 하나 이상 있는 트래픽이 6시간 초과입니다. 이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오. 규칙 작업: Block 레이블: `awswaf:managed:aws:atp:aggregate:attribute:long_session` 및 `awswaf:managed:aws:atp:AttributeLongSession`   | 
| TokenRejected |  토큰 관리에 의해 거부된 AWS WAF 토큰이 있는 요청을 검사합니다. 이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오. 규칙 작업: Block 레이블: 없음. 거부된 토큰이 있는지 확인하려면 레이블 일치 규칙 `awswaf:managed:token:rejected`를 사용하여 레이블을 일치시킵니다.  | 
| SignalMissingCredential |  사용자 이름 또는 암호가 누락된 보안 인증 정보를 포함하는 요청이 있는지 검사합니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:atp:signal:missing_credential` 및 `awswaf:managed:aws:atp:SignalMissingCredential`   | 
| VolumetricIpFailedLoginResponseHigh |  최근에 로그인 시도 실패율이 너무 높은 IP 주소가 있는지 검사합니다. 대용량이란 10분의 시간 동안 한 IP 주소에서 10개가 넘는 로그인 요청 실패가 있음을 의미합니다. 응답 본문 또는 JSON 구성 요소를 검사하도록 규칙 그룹을 구성한 경우는 이러한 구성 요소 유형의 처음 65,536바이트(64KB)에서 성공 또는 실패 지표를 검사할 AWS WAF 수 있습니다. 이 규칙은 동일한 IP 주소에서 발생한 최근 로그인 시도에 대한 보호된 리소스의 성공 및 실패 응답을 기반으로 IP 주소의 새 웹 요청에 규칙 작업 및 레이블링을 적용합니다. 규칙 그룹을 구성할 때 성공과 실패를 계산하는 방법을 정의합니다.  AWS WAF 는 Amazon CloudFront 배포를 보호하는 보호 팩(웹 ACLs)에서만이 규칙을 평가합니다.   이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 클라이언트는 규칙이 후속 시도에서 매칭을 시작하기 전에 허용되는 횟수보다 더 많은 실패 로그인 시도 횟수를 전송할 수 있습니다.  규칙 작업: Block 레이블: `awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:high` 및 `awswaf:managed:aws:atp:VolumetricIpFailedLoginResponseHigh`  또한 규칙 그룹은 어떠한 연결된 작업도 없이 다음과 같은 관련 레이블을 요청에 적용합니다. 모든 개수는 10분 기간 기준입니다. 실패 요청이 5개 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:medium`, 실패 요청이 1개가 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:low`, 성공 요청이 10개가 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:high`, 성공 요청이 5개가 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:medium`, 그리고 성공 요청이 1개가 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:low`입니다.  | 
| VolumetricSessionFailedLoginResponseHigh |  최근에 로그인 시도 실패율이 너무 높은 클라이언트 세션이 있는지 검사합니다. 대용량이란 30분의 시간 동안 한 클라이언트 세션에서 10개가 넘는 로그인 요청 실패가 있음을 의미합니다. 응답 본문 또는 JSON 구성 요소를 검사하도록 규칙 그룹을 구성한 경우는 이러한 구성 요소 유형의 처음 65,536바이트(64KB)에서 성공 또는 실패 지표를 검사할 AWS WAF 수 있습니다. 이 규칙은 동일한 클라이언트 세션에서 발생한 최근 로그인 시도에 대한 보호된 리소스의 성공 및 실패 응답을 기반으로 클라이언트 세션의 새 웹 요청에 규칙 작업 및 레이블링을 적용합니다. 규칙 그룹을 구성할 때 성공과 실패를 계산하는 방법을 정의합니다.  AWS WAF 는 Amazon CloudFront 배포를 보호하는 보호 팩(웹 ACLs)에서만이 규칙을 평가합니다.   이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 클라이언트는 규칙이 후속 시도에서 매칭을 시작하기 전에 허용되는 횟수보다 더 많은 실패 로그인 시도 횟수를 전송할 수 있습니다.  이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오. 규칙 작업: Block 레이블: `awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:high` 및 `awswaf:managed:aws:atp:VolumetricSessionFailedLoginResponseHigh`  또한 규칙 그룹은 어떠한 연결된 작업도 없이 다음과 같은 관련 레이블을 요청에 적용합니다. 모든 개수는 30분 기간 기준입니다. 실패 요청이 5개 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:medium`, 실패 요청이 1개가 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:low`, 성공 요청이 10개가 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:high`, 성공 요청이 5개가 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:medium`, 그리고 성공 요청이 1개가 넘는 경우 `awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:low`입니다.  | 

# AWS WAF Bot Control 규칙 그룹
<a name="aws-managed-rule-groups-bot"></a>

이 섹션에서는 봇 컨트롤 관리형 규칙 그룹의 기능에 대해 설명합니다.

VendorName: `AWS`, Name: `AWSManagedRulesBotControlRuleSet`, WCU: 50

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
봇 컨트롤에 대한 새 봇 분류를 요청해야 하거나 여기에서 다루지 않은 추가 정보가 필요한 경우 [AWS Support 센터에](https://console.aws.amazon.com/support/home#/) 문의하세요.

봇 컨트롤 관리형 규칙 그룹은 봇의 요청을 관리하는 규칙을 제공합니다. 봇은 과도한 리소스를 소비하고, 비즈니스 지표를 왜곡하며, 가동 중지를 유발하고, 악의적인 활동을 수행할 수 있습니다.

## 보호 수준
<a name="aws-managed-rule-groups-bot-prot-levels"></a>

봇 컨트롤 관리형 규칙 그룹은 선택할 수 있는 두 가지 보호 수준을 제공합니다.
+ **일반** - 웹 스크레이핑 프레임워크, 검색 엔진 및 자동 브라우저 등 다양한 자체 식별 봇을 탐지합니다. 이 수준의 봇 컨트롤 보호는 정적 요청 데이터 분석과 같은 기존 봇 탐지 기술을 사용하여 일반적인 봇을 식별합니다. 이 규칙은 이러한 봇의 트래픽에 레이블을 지정하고 확인할 수 없는 트래픽은 차단합니다.
+ **대상** - 공통 수준의 보호 기능을 포함하고 자체 식별이 불가능한 정교한 봇에 대한 대상 탐지 기능을 추가합니다. 대상 보호는 속도 제한과 CAPTCHA 및 백그라운드 브라우저 챌린지를 함께 사용하여 봇 활동을 완화합니다.
  + **`TGT_`** - 대상 보호를 제공하는 규칙의 이름은 `TGT_`로 시작합니다. 모든 대상 보호는 브라우저 질의, 지문 및 행동 휴리스틱과 같은 탐지 기술을 사용하여 잘못된 봇 트래픽을 식별합니다.
  + **`TGT_ML_`**— 기계 학습을 사용하는 대상 보호 규칙의 이름은 `TGT_ML_`로 시작합니다. 이러한 규칙은 웹 사이트 트래픽 통계에 대한 자동화된 기계 학습 분석을 사용하여 분산되고 조정된 봇 활동을 나타내는 비정상적인 동작을 감지합니다.는 타임스탬프, 브라우저 특성 및 이전에 방문한 URL과 같은 웹 사이트 트래픽에 대한 통계를 AWS WAF 분석하여 Bot Control 기계 학습 모델을 개선합니다. 기계 학습 기능은 기본적으로 활성화되지만 규칙 그룹 구성에서 비활성화할 수 있습니다. 기계 학습이 비활성화된 경우 AWS WAF 는 이러한 규칙을 평가하지 않습니다.

대상 보호 수준과 AWS WAF 속도 기반 규칙 문 모두 속도 제한을 제공합니다. 두 옵션에 대한 비교는 [속도 기반 규칙 및 대상 지정 Bot Control 규칙의 속도 제한 옵션](waf-rate-limiting-options.md) 섹션을 참조하세요.

## 이 규칙 그룹 사용 시 고려 사항
<a name="aws-managed-rule-groups-bot-using"></a>

이 규칙 그룹은 AWS WAF에 지능형 위협 완화 보호의 일부로 포함됩니다. 자세한 내용은 [의 지능형 위협 완화 AWS WAF](waf-managed-protections.md) 단원을 참조하세요.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

지속적으로 비용을 절감하고 웹 트래픽이 필요에 맞게 관리되도록 하려면 [의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md)의 지침에 따라 이 규칙 그룹을 사용하십시오.

봇 예측을 개선하기 위해 대상 보호 수준 ML 기반 규칙에 대한 기계 학습(ML) 모델을 주기적으로 업데이트합니다. ML 기반 규칙에는 `TGT_ML_`로 시작하는 이름이 있습니다. 이러한 규칙으로 인한 봇 예측에 갑작스럽고 상당한 변화가 있는 경우 계정 관리자를 통해 문의하거나 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에서 사례를 엽니다.

## 이 규칙 그룹에서 추가한 레이블
<a name="aws-managed-rule-groups-bot-labels"></a>

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.

### 토큰 레이블
<a name="aws-managed-rule-groups-bot-labels-token"></a>

이 규칙 그룹은 AWS WAF 토큰 관리를 사용하여 AWS WAF 토큰 상태에 따라 웹 요청을 검사하고 레이블을 지정합니다.는 클라이언트 세션 추적 및 확인을 위해 토큰을 AWS WAF 사용합니다.

토큰 및 토큰 관리에 대한 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 섹션을 참조하세요.

여기에 설명된 레이블 구성 요소에 대한 자세한 내용은 [의 레이블 구문 및 이름 지정 요구 사항 AWS WAF](waf-rule-label-requirements.md) 섹션을 참조하세요.

**클라이언트 세션 레이블**  
레이블에는 AWS WAF 토큰 관리가 클라이언트 세션을 식별하는 데 사용하는 고유 식별자가 `awswaf:managed:token:id:identifier` 포함되어 있습니다. 클라이언트가 새 토큰을 획득하는 경우(예: 사용하고 있던 토큰을 폐기한 후) 식별자가 변경될 수 있습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**브라우저 지문 레이블**  
레이블에는 AWS WAF 토큰 관리가 다양한 클라이언트 브라우저 신호에서 계산하는 강력한 브라우저 지문 식별자가 `awswaf:managed:token:fingerprint:fingerprint-identifier` 포함되어 있습니다. 이 식별자는 여러 토큰 획득 시도에서 동일하게 유지됩니다. 지문 식별자는 단일 클라이언트에 고유하지 않습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**토큰 상태 레이블: 레이블 네임스페이스 접두사**  
토큰 상태 레이블은 토큰 및 챌린지 상태와 토큰에 포함된 CAPTCHA 정보를 보고합니다.

각 토큰 상태 레이블은 다음 네임스페이스 접두사 중 하나로 시작합니다.
+ `awswaf:managed:token:` – 토큰의 일반 상태를 보고하고 토큰의 챌린지 정보 상태를 보고하는 데 사용됩니다.
+ `awswaf:managed:captcha:` – 토큰의 CAPTCHA 정보 상태를 보고하는 데 사용됩니다.

**토큰 상태 레이블: 레이블 이름**  
접두사 뒤에 오는 라벨의 나머지 부분은 자세한 토큰 상태 정보를 제공합니다.
+ `accepted` – 요청 토큰이 존재하며 다음을 포함합니다.
  + 유효한 챌린지 또는 CAPTCHA 솔루션.
  + 만료되지 않은 챌린지 또는 CAPTCHA 타임스탬프.
  + 보호 팩(웹 ACL)에 대해 유효한 도메인 사양입니다.

  예: 레이블 `awswaf:managed:token:accepted`은(는) 웹 요청의 토큰에 유효한 인증 확인 솔루션, 만료되지 않은 챌린지 타임스탬프 및 유효한 도메인이 있음을 나타냅니다.
+ `rejected` – 요청 토큰이 존재하지만 수락 기준을 충족하지 않습니다.

  거부된 레이블과 함께 토큰 관리는 사용자 지정 레이블 네임스페이스 및 이름을 추가하여 이유를 나타냅니다.
  + `rejected:not_solved` – 토큰에 챌린지 또는 CAPTCHA 솔루션이 없습니다.
  + `rejected:expired` – 보호 팩(웹 ACL)의 구성된 토큰 면역 시간에 따라 토큰의 챌린지 또는 CAPTCHA 타임스탬프가 만료되었습니다.
  + `rejected:domain_mismatch` – 토큰의 도메인이 보호 팩(웹 ACL)의 토큰 도메인 구성과 일치하지 않습니다.
  + `rejected:invalid` - 표시된 토큰을 읽을 AWS WAF 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:rejected` 및 `awswaf:managed:captcha:rejected:expired`가 함께 표시되는 것은 토큰 내 CAPTCHA 타임스탬프가 보호 팩(웹 ACL)에 구성된 CAPTCHA 토큰 면역 시간을 초과했기 때문에 요청에 유효한 CAPTCHA 풀이가 포함되지 않았음을 의미합니다.
+ `absent` – 요청에 토큰이 없거나 토큰 관리자가 토큰을 읽을 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:absent`는 요청에 토큰이 없음을 나타냅니다.

### 봇 컨트롤 레이블
<a name="aws-managed-rule-groups-bot-labels-rg"></a>

봇 컨트롤 관리형 규칙 그룹은 네임스페이스 접두사 `awswaf:managed:aws:bot-control:` 다음에 사용자 지정 네임스페이스와 레이블 이름이 이어지는 레이블을 생성합니다. 이 규칙 그룹은 요청 하나에 둘 이상의 레이블을 추가할 수도 있습니다.

각 레이블에는 봇 컨트롤 규칙 결과가 반영됩니다.
+ `awswaf:managed:aws:bot-control:bot:` – 요청과 관련된 봇에 대한 정보.
  + `awswaf:managed:aws:bot-control:bot:name:<name>` - 봇 이름(사용 가능한 경우) 예: 사용자 지정 네임스페이스 `bot:name:slurp`, `bot:name:googlebot` 및 `bot:name:pocket_parser`.
  + `awswaf:managed:aws:bot-control:bot:name:<rfc_name>` - WBA 서명의 RFC 제품 토큰을 사용하여 특정 봇을 식별합니다. 이는 특정 봇에 대한 세분화된 사용자 지정 규칙을 생성하는 데 사용됩니다. 예를 들어 다른 크롤러는 허용`GoogleBot`하되 속도를 제한합니다.
  + `awswaf:managed:aws:bot-control:bot:category:<category>` - 봇의 범주로, AWS WAF예를 들어 `bot:category:search_engine` 및 로 정의됩니다`bot:category:content_fetcher`.
  + `awswaf:managed:aws:bot-control:bot:account:<hash>` –Amazon Bedrock Agent Core를 사용하는 봇에만 해당됩니다. 이 레이블에는 에이전트를 소유한 AWS 계정을 고유하게 식별하는 불투명한 해시가 포함되어 있습니다. 이 레이블을 사용하여 로그에 계정 IDs를 노출하지 않고 특정 AWS 계정에서 봇을 허용, 차단 또는 속도 제한하는 사용자 지정 규칙을 생성합니다.
  + `awswaf:managed:aws:bot-control:bot:web_bot_auth:<status>` - 요청에 대해 웹 봇 인증(WBA) 검증을 수행할 때 적용됩니다. 상태 접미사는 확인 결과를 나타냅니다.
    + `web_bot_auth:verified` - 서명이 퍼블릭 키 디렉터리에 대해 성공적으로 검증됨
    + `web_bot_auth:invalid` - 서명이 있지만 암호화 형식 검증에 실패했습니다.
    + `web_bot_auth:expired` - 만료된 암호화 키를 사용한 서명
    + `web_bot_auth:unknown_bot` - 키 디렉터리에서 키 ID를 찾을 수 없음
**참고**  
`web_bot_auth:verified` 레이블이 있으면 `CategoryAI` 및 `TGT_TokenAbsent` 규칙이 일치하지 않아 확인된 WBA 호스트를 진행할 수 있습니다.
  + `awswaf:managed:aws:bot-control:bot:organization:<organization>`— 봇의 게시자. 예: `bot:organization:google`.
  + `awswaf:managed:aws:bot-control:bot:verified` - 봇 컨트롤이 확인할 수 있는 자체 식별형 봇을 나타내는 데 사용됩니다. 이 레이블은 일반적으로 선호되는 봇에 사용되며, 카테고리 레이블(`bot:category:search_engine`)이나 이름 레이블(`bot:name:googlebot`)과 함께 사용할 경우 유용할 수 있습니다.
**참고**  
봇 컨트롤은 웹 요청 오리진의 IP 주소를 사용하여 봇이 확인되는지 여부를 결정할 수 있도록 도와줍니다. AWS WAF 에서 전달된 IP 구성을 사용하여 다른 IP 주소 소스를 검사하도록 구성할 수는 없습니다. 프록시나 로드 밸런서를 통해 라우팅되는 봇을 확인한 경우 봇 컨트롤 규칙 그룹보다 먼저 실행되는 규칙을 추가하여 이를 지원할 수 있습니다. 전달된 IP 주소를 사용하고 확인된 봇의 요청을 명시적으로 허용하도록 새 규칙을 구성합니다. 전달된 IP 주소 사용에 대한 자세한 내용은 [에서 전달된 IP 주소 사용 AWS WAF](waf-rule-statement-forwarded-ip-address.md) 섹션을 참조하세요.
  + `awswaf:managed:aws:bot-control:bot:vendor:<vendor_name>` - 확인된 봇의 공급업체 또는 운영자를 식별합니다. 현재 Agentcore에서만 사용할 수 있습니다. 를 사용하여 개별 봇 이름에 관계없이 특정 봇 공급업체를 허용하거나 차단하는 사용자 지정 규칙을 생성합니다.
  + `awswaf:managed:aws:bot-control:bot:user_triggered:verified` - 확인된 봇과 비슷하지만 최종 사용자가 직접 호출할 수 있는 봇을 나타내는 데 사용됩니다. 봇 컨트롤 규칙은 이 범주의 봇을 확인되지 않은 봇처럼 취급합니다.
  + `awswaf:managed:aws:bot-control:bot:developer_platform:verified` - 확인된 봇과 비슷하지만 개발자 플랫폼(예: Google Apps Script)에서 스크립팅용으로 사용되는 봇을 나타내는 데 사용됩니다. . 봇 컨트롤 규칙은 이 범주의 봇을 확인되지 않은 봇처럼 취급합니다.
  + `awswaf:managed:aws:bot-control:bot:unverified` - 자체 식별형이어서 이름을 지정하고 분류할 수는 있지만 ID를 독립적으로 확인하는 데 사용할 수 있는 정보를 게시하지 않는 봇을 나타내는 데 사용됩니다. 이러한 유형의 봇 서명은 위조될 수 있으므로 확인되지 않은 것으로 간주됩니다.
+ `awswaf:managed:aws:bot-control:targeted:<additional-details> `— 봇 컨트롤 대상 보호와 관련된 레이블에 사용됩니다.
+ `awswaf:managed:aws:bot-control:signal:<signal-details>` 및 `awswaf:managed:aws:bot-control:targeted:signal:<signal-details> ` - 일부 상황에서 요청에 대한 추가 정보를 제공하는 데 사용됩니다.

  다음은 신호 레이블의 예입니다. 이 목록은 전체 목록이 아닙니다.
  + `awswaf:managed:aws:bot-control:signal:cloud_service_provider:<CSP>` - 요청에 대한 클라우드 서비스 제공업체(CSP)를 나타냅니다. CSP의 예로는 `aws` Amazon Web Services 인프라, `gcp` Google Cloud Platform(GCP) 인프라, `azure` Microsoft Azure 클라우드 서비스 및 `oracle` Oracle Cloud 서비스 등이 있습니다.
  + `awswaf:managed:aws:bot-control:targeted:signal:browser_automation_extension` – Selenium IDE와 같이 자동화를 지원하는 브라우저 확장 프로그램이 탐지되었음을 나타냅니다.

    이 레이블은 사용자가 해당 확장 프로그램을 적극적으로 사용하지 않는 경우에도 사용자가 이러한 유형의 확장 프로그램을 설치할 때마다 추가됩니다. 이에 대한 레이블 일치 규칙을 구현하는 경우 규칙 로직 및 작업 설정에서 오탐이 발생할 가능성에 유의하세요. 예를 들어, 자동화가 사용되고 있음을 더욱 확신하기 위해 Block 대신 CAPTCHA 작업을 사용하거나 이 레이블 일치를 다른 레이블 일치와 결합할 수 있습니다.
  + `awswaf:managed:aws:bot-control:signal:automated_browser` - 요청에 클라이언트 브라우저가 자동화될 수 있음을 의미하는 표시자가 포함되어 있음을 나타냅니다.
  + `awswaf:managed:aws:bot-control:targeted:signal:automated_browser` - 요청의 AWS WAF 토큰에 클라이언트 브라우저가 자동화될 수 있다는 지표가 포함되어 있음을 나타냅니다.

`DescribeManagedRuleGroup`을 호출하여 API를 통해 규칙 그룹의 모든 레이블을 검색할 수 있습니다. 레이블은 응답의 `AvailableLabels` 속성에 나열됩니다.

봇 컨트롤 관리형 규칙 그룹은 일반적으로 허용되는 확인 가능한 봇 집합에 레이블을 적용합니다. 규칙 그룹은 이러한 확인된 봇을 차단하지 않습니다. 원하는 경우 봇 컨트롤 관리형 규칙 그룹에서 적용한 레이블을 사용하는 사용자 지정 규칙을 작성하여 이러한 봇을 차단하거나 그 중 일부를 차단할 수 있습니다. 이것과 예제에 대한 자세한 내용은 [AWS WAF 봇 제어](waf-bot-control.md) 섹션을 참조하세요.

## 봇 컨트롤 규칙 목록
<a name="aws-managed-rule-groups-bot-rules"></a>

이 섹션에는 봇 컨트롤 규칙이 나열되어 있습니다.

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
봇 컨트롤에 대한 새 봇 분류를 요청해야 하거나 여기에서 다루지 않은 추가 정보가 필요한 경우 [AWS Support 센터에](https://console.aws.amazon.com/support/home#/) 문의하세요.


| 규칙 이름 | 설명 | 
| --- | --- | 
| CategoryAdvertising |  광고 목적으로 사용되는 봇이 있는지 검사합니다. 예를 들어 웹 사이트에 프로그래밍 방식으로 액세스해야 하는 타사 광고 서비스를 사용할 수 있습니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block 레이블: `awswaf:managed:aws:bot-control:bot:category:advertising` 및 `awswaf:managed:aws:bot-control:CategoryAdvertising`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryArchiver |  아카이브 목적으로 사용되는 봇이 있는지 검사합니다. 이러한 봇은 아카이브를 생성할 목적으로 웹을 크롤링하고 콘텐츠를 캡처합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:archiver` 및 `awswaf:managed:aws:bot-control:CategoryArchiver`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryContentFetcher |  RSS 피드와 같은 콘텐츠를 가져오거나 콘텐츠를 확인 또는 검증하기 위해 사용자를 대신하여 애플리케이션 웹 사이트를 방문하는 봇이 있는지 검사합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:content_fetcher` 및 `awswaf:managed:aws:bot-control:CategoryContentFetcher`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryEmailClient |  이메일 안에 애플리케이션 웹 사이트를 가리키는 링크를 확인하는 봇이 있는지 검사합니다. 여기에는 기업 및 이메일 제공업체가 이메일의 링크를 확인하고 의심스러운 이메일에 플래그를 지정하기 위해 실행하는 봇이 포함될 수 있습니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:email_client` 및 `awswaf:managed:aws:bot-control:CategoryEmailClient`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryHttpLibrary |  다양한 프로그래밍 언어의 HTTP 라이브러리에서 봇이 생성하는 요청이 있는지 검사합니다. 여기에는 허용 또는 모니터링하기로 선택한 API 요청이 포함될 수 있습니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:http_library` 및 `awswaf:managed:aws:bot-control:CategoryHttpLibrary`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryLinkChecker |  끊긴 링크가 있는지 확인하는 봇이 있는지 검사합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:link_checker` 및 `awswaf:managed:aws:bot-control:CategoryLinkChecker`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryMiscellaneous |  다른 범주와 일치하지 않는 기타 봇이 있는지 검사합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:miscellaneous` 및 `awswaf:managed:aws:bot-control:CategoryMiscellaneous`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryMonitoring |  모니터링 목적으로 사용되는 봇이 있는지 검사합니다. 예를 들면 애플리케이션 웹 사이트에 주기적으로 핑을 보내는 봇 모니터링 서비스를 사용하여 성능 및 가동 시간 등을 모니터링할 수 있습니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:monitoring` 및 `awswaf:managed:aws:bot-control:CategoryMonitoring`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryPagePreview |  메시징 플랫폼, 소셜 미디어 또는 협업 도구에서 콘텐츠를 공유할 때 페이지 미리 보기를 생성하고 미리 보기를 연결하는 봇이 있는지 검사합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:page_preview` 및 `awswaf:managed:aws:bot-control:CategoryPagePreview`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryScrapingFramework |  크롤링을 자동화하고 웹 사이트에서 콘텐츠를 추출하는 데 사용되는 웹 스크래핑 프레임워크의 봇이 있는지 검사합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:scraping_framework` 및 `awswaf:managed:aws:bot-control:CategoryScrapingFramework`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategorySearchEngine |  웹 사이트를 크롤링하여 콘텐츠를 인덱싱하고 검색 엔진 결과에 해당 정보를 제공하는 검색 엔진 봇이 있는지 검사합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:search_engine` 및 `awswaf:managed:aws:bot-control:CategorySearchEngine`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategorySecurity |  웹 애플리케이션의 취약성을 검사하거나 보안 감사를 수행하는 봇이 있는지 검사합니다. 예를 들어 웹 애플리케이션의 보안을 검사, 모니터링 또는 감사하는 타사 보안 공급업체를 이용할 수 있습니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:security` 및 `awswaf:managed:aws:bot-control:CategorySecurity`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategorySeo |  검색 엔진 최적화에 사용되는 봇이 있는지 검사합니다. 예를 들어 사이트를 크롤링하는 검색 엔진 도구를 사용하여 검색 엔진 순위를 높일 수 있습니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:seo` 및 `awswaf:managed:aws:bot-control:CategorySeo`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategorySocialMedia |  소셜 미디어 플랫폼에서 사용자가 콘텐츠를 공유할 때 콘텐츠 요약을 제공하는 데 사용하는 봇이 있는지 검사합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:social_media` 및 `awswaf:managed:aws:bot-control:CategorySocialMedia`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryWebhooks |  HTTP 콜백을 통해 한 애플리케이션에서 다른 애플리케이션으로 자동 알림 및 데이터 업데이트를 제공하는 봇이 있는지 검사합니다. 확인되지 않은 봇에만 적용되는 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:webhooks` 및 `awswaf:managed:aws:bot-control:CategoryWebhooks`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치지 않고 아무 작업도 하지 않지만 봇 이름과 범주 레이블과 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 추가합니다.  | 
| CategoryAI |  인공 지능(AI) 봇이 있는지 검사합니다. 이 규칙은 봇의 확인 여부와 관계없이 모든 일치 항목에 대해 작업을 적용합니다. 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:bot:category:ai` 및 `awswaf:managed:aws:bot-control:CategoryAI`  확인된 봇의 경우 규칙 그룹은 이 규칙과 일치하며 작업을 수행합니다. 봇 이름 및 범주 레이블 지정, 규칙 레이블 지정 및 `awswaf:managed:aws:bot-control:bot:verified` 레이블을 더 추가합니다.  | 
| SignalAutomatedBrowser |  확인된 봇이 아닌 요청에 클라이언트 브라우저가 자동화될 수 있음을 나타내는 표시자가 있는지 검사합니다. 자동화된 브라우저를 테스트 또는 스크레이핑에 사용할 수 있습니다. 예를 들어, 이러한 유형의 브라우저를 사용하여 애플리케이션 웹 사이트를 모니터링하거나 확인할 수 있습니다. 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:signal:automated_browser` 및 `awswaf:managed:aws:bot-control:SignalAutomatedBrowser`  확인된 봇의 경우 규칙 그룹이 이 규칙과 일치하지 않으며 신호나 규칙 레이블을 적용하지 않습니다.  | 
| SignalKnownBotDataCenter |  확인된 봇이 아닌 요청에 일반적으로 봇이 사용하는 데이터 센터의 표시자가 있는지 검사합니다. 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:signal:known_bot_data_center` 및 `awswaf:managed:aws:bot-control:SignalKnownBotDataCenter`  확인된 봇의 경우 규칙 그룹이 이 규칙과 일치하지 않으며 신호나 규칙 레이블을 적용하지 않습니다.  | 
| SignalNonBrowserUserAgent |  확인된 봇이 아닌 요청에 웹 브라우저에서 가져온 것으로 여겨지지 않는 사용자 에이전트 문자열이 있는지 검사합니다. 이 범주에는 API 요청이 포함될 수 있습니다. 규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:signal:non_browser_user_agent` 및 `awswaf:managed:aws:bot-control:SignalNonBrowserUserAgent`  확인된 봇의 경우 규칙 그룹이 이 규칙과 일치하지 않으며 신호나 규칙 레이블을 적용하지 않습니다.  | 
| TGT\$1VolumetricIpTokenAbsent |  확인된 봇이 아닌 요청에 지난 5분 동안 단일 클라이언트로부터 유효한 챌린지 토큰이 포함되지 않은 요청이 5개 이상 있는지 검사합니다. 토큰에 대한 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 섹션을 참조하세요. 최근에 동일한 클라이언트의 요청에 토큰이 누락된 경우 토큰이 있는 요청과 이 규칙이 일치할 수 있습니다. 이 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다.  이 규칙은 누락된 토큰을 토큰 레이블링 `awswaf:managed:token:absent`과 다르게 처리합니다. 토큰 레이블링은 토큰이 없는 개별 요청에 레이블을 지정합니다. 이 규칙은 각 클라이언트 IP에 대해 토큰이 누락된 요청 수를 유지하며 제한을 초과하는 클라이언트를 기준으로 일치를 수행합니다. 규칙 작업: Challenge  레이블: `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:ip:token_absent` 및 `awswaf:managed:aws:bot-control:TGT_VolumetricIpTokenAbsent`   | 
| TGT\$1TokenAbsent |  유효한 챌린지 토큰을 포함하지 않은 확인된 봇에서 온 요청이 아닌지 검사합니다. 토큰에 대한 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 섹션을 참조하세요. 규칙 작업: Count  레이블: `awswaf:managed:aws:bot-control:TGT_TokenAbsent`   | 
| TGT\$1VolumetricSession |  5분 동안 단일 클라이언트 세션에서 발생한 확인된 봇이 아닌 요청 수가 비정상적으로 많은지 검사합니다. 평가는 과거 트래픽 패턴을 사용하여 AWS WAF 유지 관리하는 표준 볼륨 측정 기준과의 비교를 기반으로 합니다. 이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오.  이 규칙은 활성화한 후 적용되는 데 5분이 걸릴 수 있습니다. Bot Control은 현재 트래픽을 AWS WAF 컴퓨팅하는 트래픽 기준과 비교하여 웹 트래픽의 비정상적인 동작을 식별합니다.  규칙 작업: CAPTCHA  레이블: `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:high` 및 `awswaf:managed:aws:bot-control:TGT_VolumetricSession`  규칙 그룹은 최소 임계값을 초과하는 중간 용량 및 저용량 요청에 다음 레이블을 적용합니다. `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:medium` 및 `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:low` 수준의 경우 클라이언트 확인 여부와 상관없이 규칙이 아무런 작업도 수행하지 않습니다.  | 
| TGT\$1VolumetricSessionMaximum |  5분 동안 단일 클라이언트 세션에서 발생한 확인된 봇이 아닌 요청 수가 비정상적으로 많은지 검사합니다. 평가는 과거 트래픽 패턴을 사용하여 AWS WAF 유지 관리하는 표준 볼륨 측정 기준과의 비교를 기반으로 합니다. 이 규칙은 평가의 최대 신뢰도를 가리킵니다. 이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오.  이 규칙은 활성화한 후 적용되는 데 5분이 걸릴 수 있습니다. Bot Control은 현재 트래픽을 AWS WAF 컴퓨팅하는 트래픽 기준과 비교하여 웹 트래픽의 비정상적인 동작을 식별합니다.  규칙 작업: Block  레이블: `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:maximum` 및 `awswaf:managed:aws:bot-control:TGT_VolumetricSessionMaximum`   | 
| TGT\$1SignalAutomatedBrowser |  클라이언트 브라우저가 자동화될 수 있음을 나타내는 표시자가 있는지 확인된 봇이 아닌 요청의 토큰을 검사합니다. 자세한 내용은 [AWS WAF 토큰 특성](waf-tokens-details.md) 단원을 참조하십시오. 이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오. 규칙 작업: CAPTCHA  레이블: `awswaf:managed:aws:bot-control:targeted:signal:automated_browser` 및 `awswaf:managed:aws:bot-control:TGT_SignalAutomatedBrowser`   | 
| TGT\$1SignalBrowserAutomationExtension |  Selenium IDE처럼 자동화를 지원하는 브라우저 확장이 있음을 나타내는 확인된 봇이 아닌 요청을 검사합니다. 이 규칙은 사용자가 해당 확장 프로그램을 적극적으로 사용하지 않는 경우에도 사용자가 이러한 유형의 확장 프로그램을 설치할 때마다 일치합니다. 이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오. 규칙 작업: CAPTCHA  레이블: `awswaf:managed:aws:bot-control:targeted:signal:browser_automation_extension` 및 `awswaf:managed:aws:bot-control:TGT_SignalBrowserAutomationExtension`  | 
| TGT\$1SignalBrowserInconsistency |  확인된 봇이 아닌 요청에 일관성 없는 브라우저 조사 데이터가 있는지 검사합니다. 자세한 내용은 [AWS WAF 토큰 특성](waf-tokens-details.md) 단원을 참조하십시오. 이 검사는 웹 요청에 토큰이 있는 경우에만 적용됩니다. 토큰은 애플리케이션 통합 SDK와 규칙 작업 CAPTCHA 및 Challenge에 의해 요청에 추가됩니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 단원을 참조하십시오. 규칙 작업: CAPTCHA  레이블: `awswaf:managed:aws:bot-control:targeted:signal:browser_inconsistency` 및 `awswaf:managed:aws:bot-control:TGT_SignalBrowserInconsistency`   | 
|  TGT\$1ML\$1CoordinatedActivityLow, TGT\$1ML\$1CoordinatedActivityMedium, TGT\$1ML\$1CoordinatedActivityHigh  |  확인된 봇이 아닌 요청에 분산되고 조정된 봇 활동과 일치하는 이상 동작이 있는지 검사합니다. 규칙 수준은 요청 그룹이 협동 공격에 참여하는지에 대한 신뢰 수준을 나타냅니다.  이러한 규칙은 규칙 그룹이 기계 학습(ML)을 사용하도록 구성된 경우에만 실행됩니다. 이 선택 사항의 구성에 대한 자세한 내용은 [웹 ACL에 AWS WAF Bot Control 관리형 규칙 그룹 추가](waf-bot-control-rg-using.md) 섹션을 참조하세요.   이러한 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  AWS WAF 는 웹 사이트 트래픽 통계에 대한 기계 학습 분석을 통해이 검사를 수행합니다.는 몇 분마다 웹 트래픽을 AWS WAF 분석하고 여러 IP 주소에 분산된 저강도 장기 봇을 탐지하기 위한 분석을 최적화합니다. 이러한 규칙이 매우 적은 수의 요청과 일치하고 나면 협동 공격이 진행 중이지 않은 것으로 결정됩니다. 따라서 한 두 개만 일치하는 경우 결과가 거짓 긍정일 수도 있습니다. 하지만 이러한 규칙과 일치하는 항목이 많이 나오면 협동 공격을 받고 있는 상태일 것입니다.  ML 옵션으로 봇 컨트롤 대상 규칙을 활성화한 후에는 이러한 규칙이 적용되는 데 최대 24시간이 걸릴 수 있습니다. Bot Control은 현재 트래픽을 계산된 트래픽 기준과 비교하여 웹 트래픽의 이상 동작을 식별합니다. AWS WAF 는 ML 옵션과 함께 Bot Control 대상 규칙을 사용하는 동안에만 기준을 계산하며, 의미 있는 AWS WAF 기준을 설정하는 데 최대 24시간이 걸릴 수 있습니다.  봇 예측을 개선하기 위해 이러한 규칙에 대해 기계 학습 모델을 주기적으로 업데이트합니다. 이러한 규칙이 만드는 봇 예측에 갑작스럽고 상당한 변화가 있는 경우 계정 관리자에게 문의하거나 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에서 사례를 엽니다. 규칙 작업:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-bot.html) 레이블: `awswaf:managed:aws:bot-control:targeted:aggregate:coordinated_activity:low\|medium\|high` 및 `awswaf:managed:aws:bot-control:TGT_ML_CoordinatedActivityLow\|Medium\|High`   | 
|  TGT\$1TokenReuseIpLow, TGT\$1TokenReuseIpMedium, TGT\$1TokenReuseIpHigh  |  지난 5분 동안 여러 IP 간에 단일 토큰을 사용하는지 확인된 봇이 아닌 요청을 검사합니다. 각 수준에는 고유한 IP가 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-bot.html)  이러한 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-bot.html) 레이블: `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:token_reuse:ip:low\|medium\|high` 및 `awswaf:managed:aws:bot-control:TGT_TokenReuseIpLow\|Medium\|High`   | 
|  TGT\$1TokenReuseCountryLow, TGT\$1TokenReuseCountryMedium, TGT\$1TokenReuseCountryHigh  |  지난 5분 동안 여러 국가에 걸쳐 단일 토큰을 사용하는지 확인된 봇이 아닌 요청을 검사합니다. 각 수준에는 고유한 국가가 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-bot.html)  이러한 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-bot.html) 레이블: `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:token_reuse:country:low\|medium\|high` 및 `awswaf:managed:aws:bot-control:TGT_TokenReuseCountryLow\|Medium\|High`   | 
|  TGT\$1TokenReuseAsnLow, TGT\$1TokenReuseAsnMedium, TGT\$1TokenReuseAsnHigh  |  지난 5분 동안 여러 네트워킹 Autonomous System Number(ASN)에서 단일 토큰을 사용하는지 확인된 봇이 아닌 요청을 검사합니다. 각 수준에는 고유한 ASN이 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-bot.html)  이러한 규칙이 적용하는 임계값은 지연 시간으로 인해 약간 다를 수 있습니다. 규칙 작업이 적용되기 전에 몇 개의 요청이 한도를 초과할 수 있습니다.  규칙 작업:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-bot.html) 레이블: `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:token_reuse:asn:low\|medium\|high` 및 `awswaf:managed:aws:bot-control:TGT_TokenReuseAsnLow\|Medium\|High`   | 

# AWS WAF 분산 서비스 거부(DDoS) 방지 규칙 그룹
<a name="aws-managed-rule-groups-anti-ddos"></a>

이 섹션에서는 분산 서비스 거부(DDoS) 공격으로부터 보호하기 위한 AWS WAF 관리형 규칙 그룹을 설명합니다.

VendorName: `AWS`, Name: `AWSManagedRulesAntiDDoSRuleSet`, WCU: 50

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기에 있는 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

DDoS 방지 관리형 규칙 그룹은 DDoS 공격에 참여 중이거나 참여할 가능성이 있는 요청을 감지하고 관리하는 규칙을 제공합니다. 또한 규칙 그룹은 가능한 이벤트 중에 평가하는 모든 요청에 레이블을 지정합니다.

## 이 규칙 그룹 사용 시 고려 사항
<a name="aws-managed-rule-groups-anti-ddos-using"></a>

이 규칙 그룹은 DDoS 공격 대상 리소스로 들어오는 웹 요청에 대한 소프트 및 하드 완화 기능을 제공합니다. 다양한 위협 수준을 탐지하기 위해 두 완화 유형의 민감도를 높은, 중간 또는 낮은 의심 수준으로 조정할 수 있습니다.
+ **소프트 완화** - 규칙 그룹은 챌린지 중간 이벤트를 처리할 수 있는 요청에 대한 응답으로 자동 브라우저 챌린지를 보낼 수 있습니다. 챌린지 실행 요구 사항에 대한 자세한 내용은 [CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md) 섹션을 참조하세요.
+ **하드 완화** - 규칙 그룹은 요청을 완전히 차단할 수 있습니다.

규칙 그룹 작동 방식 및 구성 방식에 대한 자세한 내용은 [안티 DDoS 관리형 규칙 그룹을 사용한 고급 AWS WAF 안티 DDoS 보호](waf-anti-ddos-advanced.md) 섹션을 참조하세요.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

이 규칙 그룹은 AWS WAF에 지능형 위협 완화 보호의 일부로 포함됩니다. 자세한 내용은 [의 지능형 위협 완화 AWS WAF](waf-managed-protections.md) 단원을 참조하세요.

비용을 최소화하고 트래픽 관리를 최적화하려면 모범 사례 지침에 따라 이 규칙 그룹을 사용합니다. [의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md) 섹션을 참조하세요.

## 이 규칙 그룹에서 추가한 레이블
<a name="aws-managed-rule-groups-anti-ddos-labels"></a>

이 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가하는데, 이 레이블은 보호 팩(웹 ACL)에서 이 규칙 그룹 이후에 실행되는 규칙에 사용할 수 있습니다. AWS WAF 는 Amazon CloudWatch 지표에도 레이블을 기록합니다. 레이블 및 레이블 지표에 대한 일반적인 내용은 [웹 요청 레이블 지정](waf-labels.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.

### 토큰 레이블
<a name="aws-managed-rule-groups-anti-ddos-labels-token"></a>

이 규칙 그룹은 AWS WAF 토큰 관리를 사용하여 AWS WAF 토큰 상태에 따라 웹 요청을 검사하고 레이블을 지정합니다.는 클라이언트 세션 추적 및 확인을 위해 토큰을 AWS WAF 사용합니다.

토큰 및 토큰 관리에 대한 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 섹션을 참조하세요.

여기에 설명된 레이블 구성 요소에 대한 자세한 내용은 [의 레이블 구문 및 이름 지정 요구 사항 AWS WAF](waf-rule-label-requirements.md) 섹션을 참조하세요.

**클라이언트 세션 레이블**  
레이블에는 AWS WAF 토큰 관리가 클라이언트 세션을 식별하는 데 사용하는 고유 식별자가 `awswaf:managed:token:id:identifier` 포함되어 있습니다. 클라이언트가 새 토큰을 획득하는 경우(예: 사용하고 있던 토큰을 폐기한 후) 식별자가 변경될 수 있습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**브라우저 지문 레이블**  
레이블에는 AWS WAF 토큰 관리가 다양한 클라이언트 브라우저 신호에서 계산하는 강력한 브라우저 지문 식별자가 `awswaf:managed:token:fingerprint:fingerprint-identifier` 포함되어 있습니다. 이 식별자는 여러 토큰 획득 시도에서 동일하게 유지됩니다. 지문 식별자는 단일 클라이언트에 고유하지 않습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**토큰 상태 레이블: 레이블 네임스페이스 접두사**  
토큰 상태 레이블은 토큰 및 챌린지 상태와 토큰에 포함된 CAPTCHA 정보를 보고합니다.

각 토큰 상태 레이블은 다음 네임스페이스 접두사 중 하나로 시작합니다.
+ `awswaf:managed:token:` – 토큰의 일반 상태를 보고하고 토큰의 챌린지 정보 상태를 보고하는 데 사용됩니다.
+ `awswaf:managed:captcha:` – 토큰의 CAPTCHA 정보 상태를 보고하는 데 사용됩니다.

**토큰 상태 레이블: 레이블 이름**  
접두사 뒤에 오는 라벨의 나머지 부분은 자세한 토큰 상태 정보를 제공합니다.
+ `accepted` – 요청 토큰이 존재하며 다음을 포함합니다.
  + 유효한 챌린지 또는 CAPTCHA 솔루션.
  + 만료되지 않은 챌린지 또는 CAPTCHA 타임스탬프.
  + 보호 팩(웹 ACL)에 대해 유효한 도메인 사양입니다.

  예: 레이블 `awswaf:managed:token:accepted`은(는) 웹 요청의 토큰에 유효한 인증 확인 솔루션, 만료되지 않은 챌린지 타임스탬프 및 유효한 도메인이 있음을 나타냅니다.
+ `rejected` – 요청 토큰이 존재하지만 수락 기준을 충족하지 않습니다.

  거부된 레이블과 함께 토큰 관리는 사용자 지정 레이블 네임스페이스 및 이름을 추가하여 이유를 나타냅니다.
  + `rejected:not_solved` – 토큰에 챌린지 또는 CAPTCHA 솔루션이 없습니다.
  + `rejected:expired` – 보호 팩(웹 ACL)의 구성된 토큰 면역 시간에 따라 토큰의 챌린지 또는 CAPTCHA 타임스탬프가 만료되었습니다.
  + `rejected:domain_mismatch` – 토큰의 도메인이 보호 팩(웹 ACL)의 토큰 도메인 구성과 일치하지 않습니다.
  + `rejected:invalid` - 표시된 토큰을 읽을 AWS WAF 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:rejected` 및 `awswaf:managed:captcha:rejected:expired`가 함께 표시되는 것은 토큰 내 CAPTCHA 타임스탬프가 보호 팩(웹 ACL)에 구성된 CAPTCHA 토큰 면역 시간을 초과했기 때문에 요청에 유효한 CAPTCHA 풀이가 포함되지 않았음을 의미합니다.
+ `absent` – 요청에 토큰이 없거나 토큰 관리자가 토큰을 읽을 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:absent`는 요청에 토큰이 없음을 나타냅니다.

### DDoS 방지 레이블
<a name="aws-managed-rule-groups-anti-ddos-labels-rg"></a>

DDoS 방지 관리형 규칙 그룹은 네임스페이스 접두사 `awswaf:managed:aws:anti-ddos:` 다음에 사용자 지정 네임스페이스와 레이블 이름이 이어지는 레이블을 생성합니다. 각 레이블은 DDoS 방지 조사 결과의 일부 측면을 반영합니다.

규칙 그룹은 개별 규칙에 의해 추가된 레이블 외에도 요청에 다음 레이블을 두 개 이상 추가할 수 있습니다.
+ `awswaf:managed:aws:anti-ddos:event-detected` - 요청이 관리형 규칙 그룹이 DDoS 이벤트를 감지하는 보호된 리소스로 이동함을 나타냅니다. 관리형 규칙 그룹은 리소스에 대한 트래픽이 리소스의 트래픽 기준과 크게 다를 때 이벤트를 감지합니다.

  규칙 그룹은 이 상태인 동안 리소스로 이동하는 모든 요청에 이 레이블을 추가하므로 합법적인 트래픽 및 공격 트래픽은 이 레이블을 가져옵니다.
+ `awswaf:managed:aws:anti-ddos:ddos-request` - 요청이 이벤트에 참여한 것으로 의심되는 소스에서 온 것임을 나타냅니다.

  일반 레이블 외에도 규칙 그룹은 신뢰도 수준을 나타내는 다음 레이블을 추가합니다.

  `awswaf:managed:aws:anti-ddos:low-suspicion-ddos-request` - 가능한 DDoS 공격 요청을 나타냅니다.

  `awswaf:managed:aws:anti-ddos:medium-suspicion-ddos-request` - 가능성이 매우 높은 DDoS 공격 요청을 나타냅니다.

  `awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request` - 가능성이 높은 DDoS 공격 요청을 나타냅니다.
+ `awswaf:managed:aws:anti-ddos:challengeable-request` - 요청 URI가 Challenge 작업을 처리할 수 있음을 나타냅니다. 관리형 규칙 그룹은 URI가 제외되지 않은 모든 요청에 이를 적용합니다. URI는 규칙 그룹의 제외된 URI 정규식과 일치하는 경우 제외됩니다.

  자동 브라우저 챌린지를 수행할 수 있는 요청의 요구 사항에 대한 자세한 내용은 [CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md) 섹션을 참조하세요.

`DescribeManagedRuleGroup`을 호출하여 API를 통해 규칙 그룹의 모든 레이블을 검색할 수 있습니다. 레이블은 응답의 `AvailableLabels` 속성에 나열됩니다.

DDoS 방지 관리형 규칙 그룹은 요청에 레이블을 적용하지만 항상 적용되는 것은 아닙니다. 요청 관리는 규칙 그룹이 공격 참여를 결정하는 신뢰도에 따라 달라집니다. 원하는 경우 규칙 그룹 뒤에 실행되는 레이블 일치 규칙을 추가하여 규칙 그룹 레이블 지정 요청을 관리할 수 있습니다. 이것과 예제에 대한 자세한 내용은 [AWS WAF 분산 서비스 거부(DDoS) 방지](waf-anti-ddos.md) 섹션을 참조하세요.

## DDoS 방지 규칙 목록
<a name="aws-managed-rule-groups-anti-ddos-rules"></a>

이 섹션에는 DDoS 방지 규칙이 나열되어 있습니다.

 

**참고**  
이 설명서에서는이 관리형 규칙 그룹의 최신 정적 버전 릴리스를 다룹니다. 버전 변경을 [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)의 변경 로그에 보고합니다. 다른 버전에 대한 자세한 정보를 보려면 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)의 API 명령을 사용하세요.  
 AWS 관리형 규칙 규칙 그룹의 규칙에 대해 게시하는 정보는 악의적인 행위자에게 규칙을 우회하는 데 필요한 사항을 제공하지 않고 규칙을 사용하는 데 필요한 사항을 제공하기 위한 것입니다.  
여기서 내용 외에 더 많은 정보가 필요한 경우 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.


| 규칙 이름 | 설명 | 
| --- | --- | 
| ChallengeAllDuringEvent |  현재 공격 중인 보호된 리소스에 대한 `awswaf:managed:aws:anti-ddos:challengeable-request` 레이블이 있는 요청을 일치시킵니다. 규칙 작업: Challenge 이 규칙 작업은 Allow 또는 Count로만 재정의할 수 있습니다. Allow의 사용은 권장되지 않습니다. 규칙 작업 설정의 경우 규칙은 `challengeable-request` 레이블이 있는 요청과만 일치합니다. 이 규칙의 구성은 다음 규칙의 평가에 영향을 미칩니다`ChallengeDDoSRequests`.는 관리형 규칙 그룹의 웹 ACL 구성Count에서이 규칙에 대한 작업의 재정의가 로 설정된 경우에만 해당 규칙을 AWS WAF 평가합니다. 워크로드가 예기치 않은 요청 볼륨 변경에 취약한 경우 Challenge의 기본 작업 설정을 유지하여 어려운 모든 요청에 도전하는 것이 좋습니다. 덜 민감한 애플리케이션의 경우이 규칙에 대한 작업을 Count로 설정한 다음 `ChallengeDDoSRequests` 규칙을 사용하여 Challenge 응답의 민감도를 조정할 수 있습니다. 레이블: `awswaf:managed:aws:anti-ddos:ChallengeAllDuringEvent`   | 
| ChallengeDDoSRequests |  리소스가 공격을 받는 동안 규칙 그룹의 구성된 챌린지 민감도 설정을 충족하거나 초과하는 보호된 리소스에 대한 요청을 일치시킵니다. 규칙 작업: Challenge 이 규칙 작업은 Allow 또는 Count로만 재정의할 수 있습니다. Allow의 사용은 권장되지 않습니다. 어떤 경우든 규칙은 `challengeable-request` 레이블이 있는 요청만 일치시킵니다. AWS WAF 는 이전 규칙인 Count에서 작업을 로 재정의하는 경우에만이 규칙을 평가합니다`ChallengeAllDuringEvent`. 레이블: `awswaf:managed:aws:anti-ddos:ChallengeDDoSRequests`   | 
| DDoSRequests |  리소스가 공격을 받는 동안 규칙 그룹의 구성된 블록 민감도 설정을 충족하거나 초과하는 보호된 리소스에 대한 요청을 일치시킵니다. 규칙 작업: Block 레이블: `awswaf:managed:aws:anti-ddos:DDoSRequests`   | 

# 버전이 지정된 AWS 관리형 규칙 규칙 그룹에 대한 배포
<a name="waf-managed-rule-groups-deployments"></a>

이 섹션에서는가 AWS 관리형 규칙 규칙 그룹에 업데이트를 AWS 배포하는 방법을 소개합니다.

AWS 는 버전이 지정된 AWS 관리형 규칙 규칙 그룹에 변경 사항을 릴리스 후보, 정적 버전 및 기본 버전의 세 가지 표준 배포로 배포합니다. 또한 예외 배포를 릴리스하거나 기본 버전 배포를 롤백해야 하는 경우가 AWS 있을 수 있습니다.

**참고**  
이 섹션은 버전이 지정된 AWS 관리형 규칙 규칙 그룹에만 적용됩니다. 버전이 지정되지 않은 유일한 규칙 그룹은 IP 신뢰도 규칙 그룹입니다.

**Topics**
+ [AWS 관리형 규칙 규칙 그룹 배포에 대한 알림](waf-managed-rule-groups-deployments-notifications.md)
+ [AWS 관리형 규칙의 표준 배포 개요](waf-managed-rule-groups-deployments-standard.md)
+ [AWS 관리형 규칙의 일반적인 버전 상태](waf-managed-rule-groups-typical-version-states.md)
+ [AWS 관리형 규칙에 대한 후보 배포 릴리스](waf-managed-rule-groups-deployments-release-candidate.md)
+ [AWS 관리형 규칙의 정적 버전 배포](waf-managed-rule-groups-deployments-static-version.md)
+ [AWS 관리형 규칙의 기본 버전 배포](waf-managed-rule-groups-deployments-default-version.md)
+ [AWS 관리형 규칙에 대한 예외 배포](waf-managed-rule-groups-deployments-exceptions.md)
+ [AWS 관리형 규칙의 기본 배포 롤백](waf-managed-rule-groups-deployments-default-rollbacks.md)

# AWS 관리형 규칙 규칙 그룹 배포에 대한 알림
<a name="waf-managed-rule-groups-deployments-notifications"></a>

이 섹션에서는 Amazon SNS 알림이 AWS 관리형 규칙 규칙 그룹에서 작동하는 방법을 설명합니다.

버전이 지정된 AWS 관리형 규칙 규칙 그룹은 모두 배포에 대한 SNS 업데이트 알림을 제공하며 모두 동일한 SNS 주제 Amazon 리소스 이름(ARN)을 사용합니다. 버전이 지정되지 않은 유일한 규칙 그룹은 IP 신뢰도 규칙 그룹입니다.

기본 버전 변경과 같이 보호 기능에 영향을 미치는 배포의 경우, AWS 는 계획된 배포와 배포 시작 시기를 알려주는 SNS 알림을 제공합니다. 릴리스 후보 버전 및 정적 버전 배포와 같이 보호 기능에 영향을 미치지 않는 배포의 경우 배포가 시작된 후 또는 완료된 후에도 AWS 에서 알림을 제공할 수 있습니다. 새 정적 버전 배포가 완료되면의 변경 로그[AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)와의 문서 기록 페이지에서이 안내서를 AWS 업데이트합니다[문서 기록](doc-history.md).

 AWS 가 AWS 관리형 규칙 규칙 그룹에 제공하는 모든 업데이트를 수신하려면이 가이드의 HTML 페이지에서 RSS 피드를 구독하고 AWS 관리형 규칙 규칙 그룹에 대한 SNS 주제를 구독합니다. SNS 알림 구독에 대한 내용은 [관리형 규칙 그룹의 새 버전 및 업데이트에 대한 알림 받기](waf-using-managed-rule-groups-sns-topic.md) 섹션을 참조하세요.

**SNS 알림 콘텐츠**  
Amazon SNS 알림의 필드에는 항상 Subject, Message, and MessageAttributes가 포함됩니다. 추가 필드는 메시지 유형과 알림의 대상인 관리형 규칙 그룹에 따라 달라집니다. 다음은 `AWSManagedRulesCommonRuleSet`에 대한 알림 목록의 예입니다.

```
{
    "Type": "Notification",
    "MessageId": "4286b830-a463-5e61-bd15-e1ae72303868",
    "TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
    "Subject": "New version available for rule group AWSManagedRulesCommonRuleSet",
    "Message": "Welcome to AWSManagedRulesCommonRuleSet version 1.5! We've updated the regex specification in this version to improve protection coverage, adding protections against insecure deserialization. For details about this change, see http://updatedPublicDocs.html. Look for more exciting updates in the future! ",
    "Timestamp": "2021-08-24T11:12:19.810Z",
    "SignatureVersion": "1",
    "Signature": "EXAMPLEHXgJm...",
    "SigningCertURL": "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
    "SubscribeURL": "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37...",
    "MessageAttributes": {
        "major_version": {
            "Type": "String",
            "Value": "v1"
        },
        "managed_rule_group": {
            "Type": "String",
            "Value": "AWSManagedRulesCommonRuleSet"
        }
    }
}
```

# AWS 관리형 규칙의 표준 배포 개요
<a name="waf-managed-rule-groups-deployments-standard"></a>

AWS 는 릴리스 후보, 정적 버전, 기본 버전의 세 가지 표준 배포 단계를 사용하여 새로운 AWS 관리형 규칙 기능을 출시합니다.

다음 다이어그램은 이러한 표준 배포를 보여줍니다. 다음 섹션에서는 각각에 대해 자세히 설명합니다.

![\[4개의 수직 스윔레인에는 서로 다른 표준 배치 단계가 나와 있습니다. 맨 왼쪽 스윔레인은 권장 정적 버전 1.4로 설정된 기본 버전을 보여줍니다. 두 번째 스윔레인은 테스트 및 조정을 위한 릴리스 후보(RC) 버전으로 설정된 기본 버전을 보여줍니다. RC 버전에는 1.4 규칙과 RC 규칙이 포함되어 있습니다. 참고로 테스트 후에는 기본 버전이 권장 정적 버전으로 복원됩니다. 세 번째 스윔레인은 릴리스 후보 버전의 규칙을 기반으로 생성되는 정적 버전 1.5를 보여줍니다. 네 번째 스윔레인은 권장 정적 버전 1.5로 설정된 기본 버전을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/amr-rg-versions-flowchart-diagram.png)


# AWS 관리형 규칙의 일반적인 버전 상태
<a name="waf-managed-rule-groups-typical-version-states"></a>

일반적으로 버전이 지정된 관리형 규칙 그룹에는 만료되지 않은 여러 정적 버전이 있으며 기본 버전은에서 AWS 권장하는 정적 버전을 가리킵니다. 다음 그림은 일반적인 정적 버전 및 기본 설정 집합의 예를 보여줍니다.

![\[Version1.2, Version1.3 및 Version1.4의 세 가지 정적 버전이 누적되어 있으며 맨 위에는 Version1.4가 있습니다. Version1.4에는 규칙 A와 규칙 B라는 두 가지 규칙이 있으며, 둘 다 프로덕션 작업을 포함합니다. 기본 버전 표시기는 Version1.4를 가리킵니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/amr-rg-versions-diagram.png)


정적 버전에서 대부분의 규칙에 대한 프로덕션 작업은 Block이지만 다른 것으로 설정될 수도 있습니다. 규칙 작업 설정에 대한 자세한 내용은 [AWS 관리형 규칙 규칙 그룹 목록](aws-managed-rule-groups-list.md)에서 각 규칙 그룹의 규칙 목록을 참조하세요.

# AWS 관리형 규칙에 대한 후보 배포 릴리스
<a name="waf-managed-rule-groups-deployments-release-candidate"></a>

이 섹션에서는 임시 릴리스 후보 배포의 작동 방식을 설명합니다.

 AWS 에 관리형 규칙 그룹에 대한 후보 규칙 변경 세트가 있는 경우 임시 릴리스 후보 배포에서 이를 테스트합니다.는 프로덕션 트래픽에 대해 카운트 모드에서 후보 규칙을 AWS 평가하고, 거짓 긍정 완화를 포함한 최종 튜닝 활동을 수행합니다. AWS 는 규칙 그룹의 기본 버전을 사용하는 모든 고객에 대해 이러한 방식으로 후보 규칙을 릴리스합니다. 릴리스 후보 배포는 규칙 그룹의 정적 버전을 사용하는 고객에게는 적용되지 않습니다.

기본 버전을 사용하는 경우 릴리스 후보 배포는 규칙 그룹에서 웹 트래픽이 관리되는 방식을 변경하지 않습니다. 후보 규칙을 테스트하는 동안 다음과 같은 현상이 나타날 수 있습니다.
+ 기본 버전 이름이 `Default (using Version_X.Y)`에서 `Default (using Version_X.Y_PLUS_RC_COUNT)`로 변경됩니다.
+ Amazon CloudWatch의 추가 개수 지표 이름에 `RC_COUNT`가 포함됩니다. 이는 릴리스 후보 규칙에 의해 생성됩니다.

AWS 는 릴리스 후보를 약 1주일 동안 테스트한 다음 제거한 다음 기본 버전을 현재 권장 정적 버전으로 재설정합니다.

AWS 는 릴리스 후보 배포에 대해 다음 단계를 수행합니다.

1. **릴리스 후보 생성** - 기본값이 가리키는 버전인 현재 권장 정적 버전을 기반으로 릴리스 후보를 AWS 추가합니다.

   릴리스 후보 이름은 `_PLUS_RC_COUNT`가 추가된 추가된 정적 버전 이름입니다. 예를 들어 현재 권장되는 정적 버전이 `Version_2.1`인 경우 릴리스 후보 이름에는 `Version_2.1_PLUS_RC_COUNT`가 지정됩니다.

   릴리스 후보에는 다음 규칙이 포함됩니다.
   + 규칙은 규칙 구성을 변경하지 않고 현재 권장 정적 버전에서 정확히 복사됩니다.
   + 규칙 동작이 Count로 설정되고 이름이 `_RC_COUNT`로 끝나는 새 규칙을 후보로 선정합니다.

     대부분의 후보 규칙은 규칙 그룹에 이미 있는 규칙에 대해 제안된 개선 사항을 제공합니다. 각 규칙의 이름은 기존 규칙 이름에 `_RC_COUNT`가 추가된 이름입니다.

1. **기본 버전을 릴리스 후보로 설정하고 테스트** - 프로덕션 트래픽에 대한 테스트를 수행하기 위해 새 릴리스 후보를 가리키도록 기본 버전을 AWS 설정합니다. 테스트에는 보통 일주일 정도 소요됩니다.

    기본 버전의 이름이 정적 버전만 나타내는 이름(예: `Default (using Version_1.4)`)에서 정적 버전과 릴리스 후보 규칙을 나타내는 이름(예: `Default (using Version_1.4_PLUS_RC_COUNT)`)으로 변경됩니다. 이 이름 지정 체계를 통해 웹 트래픽을 관리하는 데 사용 중인 정적 버전을 식별할 수 있습니다.

   다음 다이어그램은 이 시점의 예제 규칙 그룹 버전 상태를 보여줍니다.  
![\[그림 상단에는 세 개의 정적 버전이 누적되어 있으며 맨 위에는 Version1.4가 있습니다. 정적 버전 스택과는 별도로 Version_1.4_PLUS_RC_COUNT 버전이 있습니다. 이 버전에는 Version_1.4의 규칙이 들어 있고 릴리스 후보 규칙 RuleB_RC_Count 및 Rulez_RC_Count도 들어 있으며 두 규칙 모두 계수 작업을 포함합니다. 기본 버전 표시기는 Version_1.4_Plus_RC_Count를 가리킵니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/amr-rg-versions-rc-diagram.png)

   릴리스 후보 규칙은 항상 Count 작업으로 구성되므로 규칙 그룹에서 웹 트래픽을 관리하는 방식이 변경되지 않습니다.

   릴리스 후보 규칙은가 동작을 확인하고 거짓 긍정을 식별하는 데 AWS 사용하는 Amazon CloudWatch 개수 지표를 생성합니다. AWS 는 필요에 따라 조정하여 릴리스 후보 개수 규칙의 동작을 조정합니다.

   릴리스 후보 버전은 정적 버전이 아니므로 정적 규칙 그룹 버전 목록에서 선택할 수 없습니다. 기본 버전 사양에서는 릴리스 후보 버전의 이름만 볼 수 있습니다.

1. **기본 버전을 권장 정적 버전으로 되돌리기 **- 릴리스 후보 규칙을 테스트한 후 기본 버전을 현재 권장 정적 버전으로 다시 AWS 설정합니다. 기본 버전 이름 설정에서 맨 끝에 추가된 `_PLUS_RC_COUNT`가 삭제되고, 규칙 그룹이 릴리스 후보 규칙에 대한 CloudWatch 개수 지표 생성을 중지합니다. 이러한 변경은 자동으로 이루어지며 기본 버전 롤백 배포와는 다릅니다.

   다음 다이어그램은 릴리스 후보 테스트 완료 이후의 예제 규칙 그룹 버전의 상태를 보여줍니다.  
![\[이 그림은 앞에서 나왔던 일반적인 버전 상태 그림입니다. Version1.2, Version1.3 및 Version1.4의 세 가지 정적 버전이 누적되어 있으며 맨 위에는 Version1.4가 있습니다. Version1.4에는 규칙 A와 규칙 B라는 두 가지 규칙이 있으며, 둘 다 프로덕션 작업을 포함합니다. 기본 버전 표시기는 Version1.4를 가리킵니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/amr-rg-versions-rc-complete-diagram.png)

**타이밍 및 알림**  
AWS 는 필요에 따라 릴리스 후보 버전을 배포하여 규칙 그룹에 대한 개선 사항을 테스트합니다.
+ **SNS** - 배포 시작 시 SNS 알림을 AWS 보냅니다. 알림에는 릴리스 후보를 테스트할 예상 시간이 표시됩니다. 테스트가 완료되면는 두 번째 알림 없이 기본값을 정적 버전 설정으로 AWS 자동 반환합니다.
+ **변경 로그** -이 유형의 배포에 대해이 가이드의 변경 로그 또는 기타 부분을 업데이트 AWS 하지 않습니다.

# AWS 관리형 규칙의 정적 버전 배포
<a name="waf-managed-rule-groups-deployments-static-version"></a>

가 릴리스 후보가 규칙 그룹에 중요한 변경 사항을 제공한다고 AWS 판단하면는 릴리스 후보를 기반으로 규칙 그룹에 대한 새 정적 버전을 AWS 배포합니다. 이 배포는 규칙 그룹의 기본 버전을 변경하지 않습니다.

새 정적 버전에는 릴리스 후보의 다음 규칙이 포함됩니다.
+ 이전 정적 버전에 포함된 규칙으로, 릴리스 후보 규칙 중에 대체 후보가 없는 규칙.
+ 다음과 같이 변경된 릴리스 후보 규칙: 
  + AWS 는 릴리스 후보 접미사를 제거하여 규칙 이름을 변경합니다`_RC_COUNT`.
  + AWS 는 규칙 작업을에서 프로덕션 규칙 작업Count으로 변경합니다.

   이전 기존 규칙을 대체하는 릴리스 후보 규칙의 경우 해당 규칙이 새 정적 버전의 이전 규칙 기능을 대체합니다.

다음 다이어그램은 릴리스 후보에서 새 정적 버전을 생성하는 과정을 보여줍니다.

![\[그림의 맨 위에는 릴리스 후보 버전 version_1.4_Plus_RC_count가 있으며, 이전 릴리스 후보 배포 그림과 동일한 규칙이 표시됩니다. 이 버전에는 Version_1.4의 규칙이 들어 있고 릴리스 후보 규칙 RuleB_RC_Count 및 Rulez_RC_Count도 들어 있으며 두 규칙 모두 계산 작업을 포함합니다. 그림 아래에는 모두 프로덕션 작업을 포함하는 RuleA, RuleB 및 RuleZ 규칙이 들어 있는 정적 버전 Version_1.5가 있습니다. 화살표는 RC 버전에서 Version_1.5를 가리키며 RuleA가 Version_1.4 규칙에서 복사되고 RuleB와 RuleZ가 릴리즈 후보 규칙에서 복사됨을 나타냅니다. Version_1.5의 모든 규칙에는 프로덕션 작업이 있습니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/amr-rg-versions-create-static-diagram.png)


배포 후에는 원하는 경우 새 정적 버전을 프로덕션에서 테스트 및 사용할 수 있습니다. [AWS 관리형 규칙 규칙 그룹 목록](aws-managed-rule-groups-list.md)의 규칙 그룹 규칙 목록에서 신규 및 업데이트된 규칙 작업 및 설명을 검토할 수 있습니다.

정적 버전은 배포 후 변경할 수 없으며가 해당 버전을 AWS 만료할 때만 변경됩니다. 버전 수명 주기에 대한 자세한 내용은 [에서 버전 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups-versioning.md) 섹션을 참조하세요.

**타이밍 및 알림**  
AWS 는 규칙 그룹 기능에 대한 개선 사항을 배포하기 위해 필요에 따라 새 정적 버전을 배포합니다. 정적 버전의 배포는 기본 버전 설정에 영향을 주지 않습니다.
+ **SNS** - 배포가 완료되면 SNS 알림을 AWS 보냅니다.
+ **변경 로그** - 사용 AWS WAF 가능한 모든 위치에서 배포가 완료되면 필요에 따라이 가이드의 규칙 그룹 정의를 AWS 업데이트한 다음 AWS 관리형 규칙 그룹 변경 로그 및 설명서 기록 페이지에서 릴리스를 발표합니다.

# AWS 관리형 규칙의 기본 버전 배포
<a name="waf-managed-rule-groups-deployments-default-version"></a>

에서 새 정적 버전이 현재 기본 버전에 비해 규칙 그룹에 대한 향상된 보호를 제공한다고 AWS 판단하면는 기본 버전을 새 정적 버전으로 AWS 업데이트합니다. AWS 규칙 그룹의 기본 버전으로 승격하기 전에 여러 정적 버전을 릴리스할 수 있습니다.

다음 다이어그램은가 기본 버전 설정을 새 정적 버전으로 AWS 이동한 후의 예제 규칙 그룹 버전의 상태를 보여줍니다.

![\[이는 일반적인 버전 상태 그림과 비슷하지만 스택의 맨 위에 Version_1.5가 있고 기본 표시기가 해당 버전을 가리킵니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/amr-rg-versions-new-default-diagram.png)


이 변경 사항을 기본 버전으로 배포하기 전에는 예정된 변경 사항을 테스트하고 준비할 수 있도록 알림을 AWS 제공합니다. 기본 버전을 사용하는 경우 아무 작업도 수행할 필요가 없으며 업데이트될 때까지 기본 버전을 계속 사용할 수 있습니다. 대신 새 버전으로의 전환을 연기하려면 계획된 기본 버전 배포 시작 전에 기본값으로 설정된 정적 버전을 사용하도록 규칙 그룹을 명시적으로 구성할 수 있습니다.

**타이밍 및 알림**  
AWS 는 현재 사용 중인 규칙 그룹과 다른 정적 버전을 권장할 때 기본 버전을 업데이트합니다.
+ **SNS** - 대상 배포일 최소 1주일 전에 SNS 알림을 전송한 다음 배포 시작일에 또 다른 SNS 알림을 AWS 보냅니다. 각 알림에는 규칙 그룹 이름, 기본 버전이 업데이트되는 정적 버전, 배포 날짜 및 업데이트가 수행되는 각 AWS 리전에 대해 예약된 배포 시간이 포함됩니다.
+ **변경 로그** -이 유형의 배포에 대해이 가이드의 변경 로그 또는 기타 부분을 업데이트 AWS 하지 않습니다.

# AWS 관리형 규칙에 대한 예외 배포
<a name="waf-managed-rule-groups-deployments-exceptions"></a>

AWS 는 중요한 보안 위험을 해결하는 업데이트를 신속하게 배포하기 위해 표준 배포 단계를 우회할 수 있습니다. 예외 배포에는 표준 배포 유형이 포함될 수 있으며 AWS 리전 전체에 빠르게 배포될 수 있습니다.

AWS 는 예외 배포에 대해 가능한 한 많은 사전 알림을 제공합니다.

**타이밍 및 알림**  
AWS 는 필요한 경우에만 예외 배포를 수행합니다.
+ **SNS** - 대상 배포일보다 최대한 빨리 SNS 알림을 보낸 다음 배포 시작 시 또 다른 알림을 AWS 보냅니다. 각 알림에는 규칙 그룹 이름, 변경 내용, 배포 날짜가 포함됩니다.
+ **변경 로그** - 배포가 정적 버전용인 경우 사용 AWS WAF 가능한 모든 위치에 배포가 완료된 후 필요에 따라이 가이드의 규칙 그룹 정의를 AWS 업데이트한 다음 AWS 관리형 규칙 그룹 변경 로그 및 설명서 기록 페이지에서 릴리스를 발표합니다.

# AWS 관리형 규칙의 기본 배포 롤백
<a name="waf-managed-rule-groups-deployments-default-rollbacks"></a>

특정 조건에서는 기본 버전을 이전 설정으로 AWS 롤백할 수 있습니다. 롤백은 일반적으로 모든 AWS 리전에서 10분 미만이 걸립니다.

AWS 는 허용할 수 없을 정도로 높은 수준의 거짓 긍정과 같은 정적 버전의 중요한 문제를 완화하기 위해서만 롤백을 수행합니다.

기본 버전 설정의 롤백 후는 문제가 있는 정적 버전의 만료와 문제를 해결하기 위한 새 정적 버전의 릴리스를 모두 AWS 신속하게 처리합니다.

**타이밍 및 알림**  
AWS 는 필요한 경우에만 기본 버전 롤백을 수행합니다.
+ **SNS** - 롤백 시 단일 SNS 알림을 AWS 보냅니다. 알림에는 규칙 그룹 이름, 기본 버전으로 설정된 버전 및 배포 날짜가 포함됩니다. 이 배포 유형은 매우 빠르므로 알림은 리전에 대한 타이밍 정보를 제공하지 않습니다.
+ **변경 로그** -이 유형의 배포에 대해이 가이드의 변경 로그 또는 기타 부분을 업데이트 AWS 하지 않습니다.

# AWS 관리형 규칙 변경 로그
<a name="aws-managed-rule-groups-changelog"></a>

이 섹션에서는 2019년 11월 릴리스 AWS WAF 이후에 대한 AWS 관리형 규칙의 변경 사항을 나열합니다.

**참고**  
이 변경 로그는 AWS 관리형 규칙의 규칙 및 규칙 그룹에 대한 변경 사항을 보고합니다 AWS WAF.  
[IP 신뢰도 규칙 그룹](aws-managed-rule-groups-ip-rep.md)의 경우 이 변경 로그는 규칙 및 규칙 그룹에 대한 변경 사항을 보고하고 규칙이 사용하는 IP 주소 목록의 소스에 대한 중요한 변경 사항을 보고합니다. 이러한 목록의 동적 특성으로 인해 IP 주소 목록 자체에 대한 변경 사항을 보고하지 않습니다. IP 주소 목록에 대한 질문이 있는 경우 계정 관리자에게 문의하거나 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에서 사례를 엽니다.


| 규칙 그룹 및 규칙 | 설명 | Date | 
| --- | --- | --- | 
| [PHP 애플리케이션 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) |  이 규칙 그룹의 정적 버전 2.2이 릴리스되었습니다. 탐지를 개선하고 `PHPHighRiskMethodsVariables_URIPATH` 규칙을 추가했습니다.  | 2026-03-24 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 새 규칙: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 5.0을 릴리스했습니다. 페이지 미리 보기와 웹후크라는 두 가지 새 봇 범주를 포함하여 여러 범주에 걸쳐 400개 이상의 새 봇이 추가되었습니다. **주요 개선 사항** 봇 감지 신호의 정확도와 일반 봇 패턴 일치를 개선하여 보다 정확한 트래픽 분류가 가능합니다. 이 업데이트는 관리형 규칙 그룹이 봇 감지의 우선순위를 지정하는 방법을 변경합니다. 이제 일반 패턴 및 탐지 신호보다 먼저 확인되지 않은 특정 봇 패턴을 평가합니다. 즉, 요청은 일반 지표보다는 가장 구체적인 특성에 따라 분류될 가능성이 더 높습니다. **트래픽에 대한 의미:** 이제 일반 봇 패턴의 일치 빈도가 줄어듭니다. 이러한 패턴은 더 이상 특정 봇 규칙이 트래픽을 아직 식별하지 않은 경우에만 적용됩니다. 이렇게 하면 과다 분류가 줄어들고 요청에 사용 가능한 가장 정확한 봇 식별로 레이블이 지정됩니다. 요청이 클라우드 서비스 공급자, 알려진 봇 데이터 센터에서 시작되거나 브라우저가 아닌 사용자 에이전트를 사용한다는 지표와 같은 감지 신호는 이제 봇 식별 규칙 이후에 적용됩니다. 이렇게 하면 특정 봇 분류가 일반 트래픽 신호보다 우선합니다. **영향:** 이제 특정 봇 규칙에 따라 요청이 더 정확하게 분류되므로 트래픽 로그에서 일반 봇 패턴에 대한 레이블이 더 적을 수 있습니다. 이를 통해 자동화된 트래픽의 실제 특성에 대한 보다 명확한 인사이트를 제공하고 지나치게 광범위한 패턴 일치로 인한 노이즈를 줄일 수 있습니다. 확인되지 않은 봇 분류는 더 눈에 잘 띄고 정확하므로 애플리케이션에 대한 자동 요청을 더 잘 이해하고 관리하는 데 도움이 됩니다. **참고:**이 버전에는 Version\$14.0의 `awswaf:managed:aws:bot-control:bot:web_bot_auth` 레이블 및 규칙 업데이트`Web Bot Auth`가 포함되어 있지만 기능은 여전히 CloudFront에서만 사용할 수 있습니다.  | 2026-02-25 | 
| [POSIX 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os)  |  이 규칙 그룹의 정적 버전 3.2가 릴리스되었습니다. 모든 규칙에 대한 탐지 서명을 개선했습니다.  | 2026-01-15 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 1.25를 릴리스했습니다. 탐지를 개선하기 `ReactJSRCE_BODY` 위해를 업데이트했습니다.  | 2025-12-08 | 
| [POSIX 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os)  |  이 규칙 그룹의 정적 버전 3.1을 릴리스했습니다. 모든 규칙에 대한 탐지 서명을 개선했습니다.  | 2025-12-08 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 1.24를 릴리스했습니다. 탐지를 개선하기 `ReactJSRCE_BODY` 위해를 업데이트했습니다.  | 2025-12-04 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 새 레이블:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 범위: CloudFront |  암호화 봇 확인을 위한 웹 봇 인증(WBA) 지원이 포함된 새 정적 버전 `AWSManagedRulesBotControlRuleSet` Version\$14.0을 배포했습니다. 이 버전은 명시적으로 선택해야 하며 기본 버전을 사용하여 기존 배포를 자동으로 업데이트하지 않습니다. 새로운 기능: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 규칙 업데이트: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  Version\$14.0은 정적 버전만 해당하며 기본 버전 동작은 변경되지 않습니다. WBA 기능을 사용하려면 웹 ACL을 구성할 때 버전 \$14.0을 명시적으로 선택합니다.   | 2025-11-20 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 새로 확인된 봇 레이블:광고:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)AI:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)콘텐츠 페처:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)소셜 미디어:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) |  주요 개선 사항:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  Bot Control의 봇 범주 규칙은 확인되지 않은 봇에서만 트리거됩니다. 단, 확인된 봇에서도 트리거되는 CategoryAI는 예외입니다. Version\$13.3은 정적 버전만 해당하며 기본 버전 동작은 변경되지 않습니다.   | 2025-11-17 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 1.20이 릴리스되었습니다. 서버 측 요청 위조(SSRF) 규칙에 대한 탐지 서명을 개선했습니다.  | 2025-10-02 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 1.19를 릴리스했습니다. 교차 사이트 스크립팅 규칙에 대한 탐지 서명이 개선되었습니다.  | 2025-08-14 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 1.18을 릴리스했습니다. 교차 사이트 스크립팅 규칙에 대한 탐지 서명이 개선되었습니다.  | 2025-06-18 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 새 레이블: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 3.2가 릴리스되었습니다. 나열된 새 레이블을 추가했습니다.  | 2025-05-29 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 1.17이 릴리스되었습니다. 교차 사이트 스크립팅 규칙에 대한 탐지 서명이 개선되었습니다.  | 2025-03-03 | 
| [SQL 데이터베이스 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-sql-db) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.3이 릴리스되었습니다. 나열된 규칙에 이중 `URL_DECODE_UNI` 텍스트 변환을 추가했습니다.  | 2025-01-24 | 
| [Linux 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.6을 릴리스했습니다. 탐지 기능을 개선하기 위해 서명을 추가했습니다.  | 2025-01-24 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 봇 컨트롤 레이블의 새 봇 이름 레이블: `awswaf:managed:aws:bot-control:bot::name:nytimes`  | 이 규칙 그룹의 정적 버전 3.1을 릴리스했습니다. 봇 이름 레이블 목록에 New York Times 레이블을 추가했습니다.  | 2024-11-07 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.16이 릴리스되었습니다. 교차 사이트 스크립팅 규칙에 대한 탐지 서명이 개선되었습니다.  | 2024-10-16 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 새 규칙: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 다음 규칙을 삭제합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 새 레이블: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 기존 규칙에 추가 레이블을 지정합니다.  | 이 규칙 그룹의 정적 버전 2.0 및 3.0이 릴리스되었습니다. 버전 2.0은 버전 3.0과 동일하지만 모든 새 규칙에 대한 규칙 작업은 Count로 설정됩니다. 이 안내서에는 각 규칙 그룹의 최신 버전이 설명되어 있습니다. 나열된 새 규칙을 추가했습니다. 모든 규칙이 패턴 `awswaf:managed:aws:bot-control:<RuleName>`이 있는 레이블을 적용하도록 레이블 지정을 업데이트했습니다. 봇 컨트롤 신호 레이블에 클라우드 서비스 공급자 레이블을 추가했습니다. 봇 범주 규칙에 따라 검사되는 새 봇 이름 레이블을 추가했습니다.  | 2024-09-13 | 
| [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 모든 규칙  | 이 규칙 그룹의 정적 버전 1.1이 릴리스되었습니다. 모든 규칙이 패턴 `awswaf:managed:aws:atp:<RuleName>`이 있는 레이블을 적용하도록 레이블 지정을 업데이트했습니다.  | 2024-09-13 | 
| [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 모든 규칙  | 이 규칙 그룹의 정적 버전 1.1이 릴리스되었습니다. 모든 규칙이 패턴 `awswaf:managed:aws:acfp:<RuleName>`이 있는 레이블을 적용하도록 레이블 지정을 업데이트했습니다.  | 2024-09-13 | 
| [Linux 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) 모든 규칙  | 이 규칙 그룹의 정적 버전 2.5가 릴리스되었습니다. 탐지 기능을 개선하기 위해 서명을 추가했습니다.  | 2024-09-02 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.15가 릴리스되었습니다. 일반 LFI 규칙에 대한 탐지 서명을 개선했습니다.  | 2024-08-30 | 
| [Windows 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-windows-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.3이 릴리스되었습니다. 나열된 규칙의 탐지 서명을 조정하여 거짓 긍정을 줄였습니다.  | 2024-08-28 | 
| [WordPress 애플리케이션 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-wordpress-app) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.3이 릴리스되었습니다. 나열된 규칙에 JS\$1DECODE 텍스트 변환을 추가했습니다.  | 2024-07-15 | 
| [Linux 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.4가 릴리스되었습니다. 나열된 규칙에 JS\$1DECODE 텍스트 변환을 추가했습니다.  | 2024-07-12 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.14가 릴리스되었습니다. 나열된 규칙에 JS\$1DECODE 텍스트 변환을 추가했습니다.  | 2024-07-09 | 
| [PHP 애플리케이션 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.1이 릴리스되었습니다. 나열된 규칙에 JS\$1DECODE 텍스트 변환을 추가했습니다.  | 2024-07-03 | 
| [Windows 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-windows-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.2이 릴리스되었습니다. 나열된 규칙에 JS\$1DECODE 텍스트 변환을 추가했습니다.  | 2024-07-03 | 
| [Linux 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) 모든 규칙  | 이 규칙 그룹의 정적 버전 2.3이 릴리스되었습니다. 탐지 기능을 개선하기 위해 서명을 추가했습니다.  | 2024-06-06 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md)  | 이제 봇 및 사기 규칙 그룹의 버전이 지정되었습니다. 이러한 규칙 그룹을 사용하는 경우 이 업데이트는 웹 트래픽을 처리하는 방법을 변경하지 않습니다. 이 업데이트는 현재 규칙 그룹 버전을 정적 버전 1.0으로 설정하고 기본 버전이 해당 버전을 가리키도록 설정합니다. 버전이 지정된 관리형 정책에 대한 자세한 내용은 다음을 참조하세요. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 2024-05-29 | 
| [POSIX 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 3.0이 릴리스되었습니다. `UNIXShellCommandsVariables_QUERYARGUMENTS`를 제거하고 `UNIXShellCommandsVariables_QUERYSTRING`으로 대체했습니다. `UNIXShellCommandsVariables_QUERYARGUMENTS`의 레이블과 일치하는 규칙이 있는 경우 이 버전을 사용할 때 `UNIXShellCommandsVariables_QUERYSTRING`의 레이블과 일치하도록 규칙을 전환합니다. 새 레이블은 `awswaf:managed:aws:posix-os:UNIXShellCommandsVariables_QueryString`입니다. 모든 헤더와 일치하는 규칙 `UNIXShellCommandsVariables_HEADER`를 추가했습니다. 향상된 탐지 로직으로 관리형 규칙 그룹의 모든 규칙을 업데이트했습니다. `UNIXShellCommandsVariables_BODY`에 대한 레이블의 문서화된 대문자를 수정했습니다.  | 2024-05-28 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.12가 릴리스되었습니다. 탐지를 개선하고 오탐을 줄이기 위해 모든 사이트 간 스크립팅 규칙에 서명이 추가되었습니다. | 2024-05-21 | 
| [SQL 데이터베이스 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-sql-db) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 1.2가 릴리스되었습니다. 나열된 규칙에 `JS_DECODE` 텍스트 변환을 추가했습니다.  | 2024-05-14 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.22가 릴리스되었습니다. 나열된 규칙에 `JS_DECODE` 텍스트 변환을 추가했습니다.  | 2024-05-08 | 
| [POSIX 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os)  | 이 규칙 그룹의 정적 버전 2.2이 릴리스되었습니다. 두 규칙에 모두 `JS_DECODE` 텍스트 변환을 추가했습니다.  | 2024-05-08 | 
| [Windows 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-windows-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.1이 릴리스되었습니다. 탐지 기능을 개선하기 위해 `PowerShellCommands_BODY`에 서명을 추가했습니다.  | 2024-05-03 | 
| [Amazon IP 신뢰도 목록 관리형 규칙 그룹](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-amazon) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 악의적인 활동에 적극적으로 참여하는 주소의 식별을 개선하고 오탐을 줄이기 위해 IP 신뢰도 목록의 소스를 업데이트했습니다. 이 규칙 그룹은 버전 관리되지 않으므로 이 업데이트에는 새 버전이 포함되지 않습니다.  | 2024-03-13 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)  | 이 규칙 그룹의 정적 버전 1.21이 릴리스되었습니다. 탐지를 개선하고 오탐을 줄이기 위해 서명이 추가되었습니다.  | 2023-12-16 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.20이 릴리스되었습니다. Atlassian Confluence CVE-2023-22518 부적절한 권한 취약성과 일치하는 요청에 대한 탐지를 추가하도록 `ExploitablePaths_URIPATH` 규칙을 업데이트했습니다. 이 취약성은 모든 버전의 Confluence 데이터 센터 및 서버에 영향을 줍니다. 자세한 내용은[NIST: National Vulnerability Database: CVE-2023-22518 Detail](https://nvd.nist.gov/vuln/detail/CVE-2023-22518)을 참조하십시오.  | 2023-12-14 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.11이 릴리스되었습니다. 탐지를 개선하고 오탐을 줄이기 위해 모든 사이트 간 스크립팅 규칙에 서명이 추가되었습니다. | 2023-12-06 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 규칙 그룹의 대상 보호 수준 레이블에 조정 활동 하위 레이블이 추가되었습니다. 이 레이블은 어떤 규칙과도 연결되어 있지 않습니다. 이 레이블 지정은 중간 및 높은 수준 규칙 및 레이블에 추가됩니다. | 2023-12-05 | 
| [봇 컨트롤 레이블](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-labels-rg) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 자동화를 지원하는 브라우저 확장 프로그램의 탐지를 나타내는 신호 레이블이 규칙 그룹에 추가되었습니다. 이 레이블은 개별 규칙에만 국한되지 않습니다.  | 2023-11-14 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.10이 릴리스되었습니다. 탐지를 개선하고 거짓 긍정을 줄이기 위해 규칙 하나를 업데이트했습니다. | 2023-11-02 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.9가 릴리스되었습니다. 감지를 개선하고 거짓 긍정을 줄이기 위해 규칙 하나를 업데이트했습니다. | 2023-10-30 | 
| [POSIX 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.1이 릴리스되었습니다. 탐지를 개선하기 위해 쿼리 인수를 업데이트했습니다.  | 2023-10-12 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.8이 릴리스되었습니다. 탐지 기능을 개선하기 위해 규칙을 업데이트했습니다. | 2023-10-11 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 예외 배포: 이 규칙 그룹의 정적 버전 1.19이 릴리스되었습니다. 버전 1.19를 사용하도록 기본 버전을 업데이트했습니다. Atlassian Confluence CVE-2023-22515 권한 에스컬레이션 취약성과 일치하는 요청에 대한 탐지를 추가하도록 `ExploitablePaths_URIPATH` 규칙을 업데이트했습니다. 이 취약성은 Atlassian Confluence의 일부 버전에 영향을 미칩니다. 자세한 내용은[NIST: National Vulnerability Database: CVE-2023-22515 Detail](https://nvd.nist.gov/vuln/detail/CVE-2023-22515) 및 [Atlassian Support: FAQ for CVE-2023-22515](https://confluence.atlassian.com/kb/faq-for-cve-2023-22515-1295682188.html)를 참조하세요. 이 배포 유형에 대한 자세한 내용은 [AWS 관리형 규칙에 대한 예외 배포](waf-managed-rule-groups-deployments-exceptions.md) 섹션을 참조하세요. | 2023-10-04 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 예외 배포: 이 규칙 그룹의 정적 버전 1.18이 릴리스되었습니다. 버전 1.19의 생성 및 출시를 지원하기 위해 이 정적 버전을 서둘러 출시했습니다. 탐지 개선을 위해 `Host_localhost_HEADER` 규칙과 모든 Log4J 및 Java 역직렬화 규칙을 업데이트했습니다. 이 배포 유형에 대한 자세한 내용은 [AWS 관리형 규칙에 대한 예외 배포](waf-managed-rule-groups-deployments-exceptions.md) 섹션을 참조하세요. | 2023-10-04 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | Count 작업을 포함하는 규칙 그룹에 규칙을 추가했습니다. 토큰 재사용 IP 규칙은 IP 주소 간에 토큰 공유를 탐지하고 계산합니다. 조정된 활동 규칙은 웹사이트 트래픽에 대한 자동화된 기계 학습(ML) 분석을 사용하여 봇 관련 활동을 탐지합니다. 규칙 그룹 구성에서 ML 사용을 옵트아웃할 수 있습니다. 이번 릴리스에서는 현재 대상 보호 수준을 사용하고 있는 고객이 ML 사용에 옵트인되어 있습니다. 옵트아웃하면 조정된 활동 규칙이 비활성화됩니다. | 2023-09-06 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | `CategoryAI` 규칙을 규칙 그룹에 추가했습니다. | 2023-08-30 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.7이 릴리스되었습니다. 탐지를 개선하고 거짓 긍정을 줄이기 위해 제한된 확장 및 EC2 메타데이터 SSRF 규칙을 업데이트했습니다. | 2023-07-26 | 
| [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 새 규칙 그룹의 모든 규칙  | AWSManagedRulesACFPRuleSet 규칙 그룹을 추가했습니다. | 2023-06-13 | 
| [Linux 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.2이 릴리스되었습니다. 탐지 기능을 개선하기 위해 서명을 추가했습니다.  | 2023-05-22 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.6이 릴리스되었습니다. 탐지를 개선하고 거짓 긍정을 줄이기 위해 크로스 사이트 스크립팅(XSS) 및 제한된 확장 규칙을 업데이트했습니다. | 2023-04-28 | 
| [PHP 애플리케이션 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.0이 릴리스되었습니다. 모든 규칙에서 탐지 기능을 개선하기 위해 서명을 추가했습니다. 쿼리 인수만 검사하는 대신 전체 쿼리 문자열을 검사하도록 `PHPHighRiskMethodsVariables_QUERYARGUMENTS` 규칙을 `PHPHighRiskMethodsVariables_QUERYSTRING` 규칙으로 대체했습니다. `PHPHighRiskMethodsVariables_HEADER` 규칙을 추가하여 모든 헤더를 포함하도록 적용 범위를 확장했습니다. 표준 AWS 관리형 규칙 레이블 지정에 맞게 다음 레이블을 업데이트했습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 2023-02-27 | 
| [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 보호된 Amazon CloudFront 배포와 함께 사용하기 위한 로그인 응답 검사 규칙을 추가했습니다. 이러한 규칙은 최근에 너무 많은 로그인 시도 실패의 원인이 된 IP 주소 및 클라이언트 세션으로부터의 새로운 로그인 시도를 차단할 수 있습니다. | 2023-02-15 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.5가 릴리스되었습니다. 탐지를 개선하기 위해 크로스 사이트 스크립팅 (XSS) 필터를 업데이트했습니다. | 2023-01-25 | 
| [Linux 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 2.1이 릴리스되었습니다. `LFI_COOKIE` 규칙 및 관련 `awswaf:managed:aws:linux-os:LFI_Cookie` 레이블을 제거하고 새 규칙 `LFI_HEADER` 및 관련 레이블 `awswaf:managed:aws:linux-os:LFI_Header`로 교체했습니다. 이 변경으로 검사 범위가 여러 헤더로 확대되었습니다. 탐지를 개선하기 위해 모든 규칙에 텍스트 변환 및 서명을 추가했습니다.  | 2022-12-15 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.4가 릴리스되었습니다. 모든 null 바이트를 `NoUserAgent_HEADER` 제거하기 위한 텍스트 변환을 추가했습니다. 탐지를 개선하기 위해 크로스 사이트 스크립팅(XSS) 규칙의 필터를 업데이트했습니다. | 2022-12-05 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.17이 릴리스되었습니다. Java 역직렬화 규칙을 업데이트하여 1.10.0 이전 버전의 Apache Commons Text 버전에서 원격 코드 실행(RCE) 취약점인 Apache CVE-2022-42889 매칭 요청에 대한 탐지를 추가했습니다. 자세한 내용은 [NIST: National Vulnerability Database: CVE-2022-42889 Detail](https://nvd.nist.gov/vuln/detail/CVE-2022-42889) 및 [CVE-2022-42889: Apache Commons Text prior to 1.10.0 allows RCE when applied to untrusted input due to insecure interpolation defaults](https://lists.apache.org/thread/n2bd4vdsgkqh2tm14l1wyc3jyol7s1om)를 참조하세요. `Host_localhost_HEADER`의 탐지 기능이 개선되었습니다. | 2022-10-20 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.16이 릴리스되었습니다. 버전 1.15에서 AWS 식별된 거짓 긍정을 제거했습니다. | 2022-10-05 | 
| [POSIX 운영 체제 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os) [PHP 애플리케이션 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app)  [WordPress 애플리케이션 관리형 규칙 그룹](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-wordpress-app)   | 문서화된 레이블 이름을 수정했습니다.  | 2022-09-19 | 
| [IP 신뢰도 규칙 그룹](aws-managed-rule-groups-ip-rep.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 변경으로 규칙 그룹의 웹 트래픽 처리 방식은 변경되지 않습니다. Amazon 위협 인텔리전스에 따라 DDoS 활동에 적극적으로 관여하는 IP 주소를 검사하는 Count 작업을 포함하는 새 규칙을 추가했습니다.  | 2022-08-30 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.15가 릴리스되었습니다. 거짓 긍정을 보다 세밀하게 모니터링하고 관리할 수 있도록 `Log4JRCE`를 제거하고 `Log4JRCE_HEADER` `Log4JRCE_QUERYSTRING` `Log4JRCE_URI` 및 `Log4JRCE_BODY`로 대체했습니다. 모든 `JavaDeserializationRCE*` 및 `Log4JRCE*` 규칙에 대한 탐지 및 차단을 개선하기 위해 `PROPFIND_METHOD` 서명을 추가했습니다. `Host_localhost_HEADER`과 모든 `JavaDeserializationRCE*` 규칙의 대소문자를 수정하도록 레이블을 업데이트했습니다. `JavaDeserializationRCE_HEADER`의 설명을 수정했습니다. | 2022-08-22 | 
| [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | Amazon Cognito 사용자 풀 웹 트래픽에 대해 계정 탈취 방지 관리형 규칙 그룹의 사용을 방지하는 규칙을 추가했습니다. | 2022-08-11 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs)  | AWS 는 규칙 그룹의 버전 `Version_1.2` 및 `Version_2.0`에 대한 만료를 예약했습니다. 이들 버전은 2022년 9월 9일에 만료됩니다. 버전 만료에 대한 자세한 내용은 [에서 버전 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups-versioning.md) 섹션을 참조하세요. | 2022-06-09 | 
| [핵심 규칙 세트(CRS) 관리형 규칙 그룹](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.3이 릴리스되었습니다. 이번 릴리스에서는 탐지를 개선하기 위해 `GenericLFI_URIPATH` 및 `GenericRFI_URIPATH` 규칙의 일치 서명을 업데이트합니다. | 2022-05-24 | 
| [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | `CategoryEmailClient` 규칙을 규칙 그룹에 추가했습니다. | 2022-04-06 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.14가 릴리스되었습니다. 네 가지 `JavaDeserializtionRCE` 규칙이 Block 모드로 전환됩니다. | 2022-03-31 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.13이 릴리스되었습니다. Spring Core and Cloud Function RCE 취약성에 대한 텍스트 변환을 업데이트했습니다. 이러한 규칙은 계수 모드에서 지표를 수집하고 일치하는 패턴을 평가하는 데 사용됩니다. 이 레이블을 사용하여 사용자 지정 규칙의 요청을 차단할 수 있습니다. 이들 규칙이 차단 모드에서 사용되는 후속 버전을 배포할 예정입니다. | 2022-03-31 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.12가 릴리스되었습니다. Spring Core and Cloud Function RCE 취약성에 대한 서명을 추가했습니다. 이러한 규칙은 계수 모드에서 지표를 수집하고 일치하는 패턴을 평가하는 데 사용됩니다. 이 레이블을 사용하여 사용자 지정 규칙의 요청을 차단할 수 있습니다. 이들 규칙이 차단 모드에서 사용되는 후속 버전을 배포할 예정입니다. `Log4JRCE_HEADER`, `Log4JRCE_QUERYSTRING`, `Log4JRCE_URI` 및 `Log4JRCE_BODY` 규칙을 제거하고 `Log4JRCE` 규칙으로 대체했습니다. | 2022-03-30 | 
| [IP 신뢰도 규칙 그룹](aws-managed-rule-groups-ip-rep.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | AWSManagedReconnaissanceList 규칙을 업데이트하여 계산에서 차단으로 작업을 변경했습니다. | 2022-02-15 | 
| [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 새 규칙 그룹의 모든 규칙  | 규칙 그룹을 추가했습니다AWSManagedRulesATPRuleSet. | 2022-02-11 | 
| [관리형 규칙 그룹의 알려진 잘못된 입력](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 이 규칙 그룹의 정적 버전 1.9가 릴리스되었습니다. 이 기능을 유연하게 사용할 수 있도록 `Log4JRCE` 규칙을 제거하고 `Log4JRCE_HEADER`, `Log4JRCE_QUERYSTRING`, `Log4JRCE_URI` 및 `Log4JRCE_BODY` 규칙으로 대체했습니다. 탐지 및 차단을 개선하기 위해 서명을 추가했습니다. | 2022-01-28 | 
| 핵심 규칙 집합(CRS, Core rule set) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 2.0이 릴리스되었습니다. 이러한 규칙의 경우 탐지 서명을 조정하여 거짓 긍정을 줄였습니다. `URL_DECODE` 텍스트 변환을 이중 `URL_DECODE_UNI` 텍스트 변환으로 대체했습니다. `HTML_ENTITY_DECODE` 텍스트 변환을 추가했습니다.  | 2022-01-10 | 
| 핵심 규칙 집합(CRS, Core rule set) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 버전 2.0 릴리스의 일환으로 `URL_DECODE_UNI` 텍스트 변환을 추가했습니다. `RestrictedExtensions_URIPATH`에서 `URL_DECODE` 텍스트 변환을 제거했습니다.  | 2022-01-10 | 
| SQL 데이터베이스 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  이 규칙 그룹의 정적 버전 2.0이 릴리스되었습니다. `URL_DECODE` 텍스트 변환을 이중 `URL_DECODE_UNI` 텍스트 변환으로 대체했고, `COMPRESS_WHITE_SPACE` 텍스트 변환을 추가했습니다. `SQLiExtendedPatterns_QUERYARGUMENTS`에 더 많은 탐지 서명을 추가했습니다. `SQLi_BODY`에 JSON 검사를 추가했습니다. `SQLiExtendedPatterns_BODY` 규칙을 추가했습니다. `SQLi_URIPATH` 규칙을 삭제했습니다.  | 2022-01-10 | 
| 알려진 잘못된 입력 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 헤더 검사 및 일치 기준이 개선된 `Log4JRCE` 규칙의 1.8 버전이 릴리스되었습니다. | 2021-12-17 | 
| 알려진 잘못된 입력 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 일치 기준이 조정되고 추가 헤더를 검사하는 `Log4JRCE` 규칙의 1.4 버전이 릴리스되었습니다. 일치 기준이 조정된 버전 1.5 버전이 릴리스되었습니다. | 2021-12-11 | 
| 알려진 잘못된 입력 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | Log4j 내에서 최근에 공개된 보안 문제에 대한 대응으로 `Log4JRCE` 규칙 버전 1.2를 추가했습니다. 자세한 내용은 [CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228)을 참조하세요. 이 규칙은 공통 URI 경로, 쿼리 문자열, 요청 본문의 처음 8KB 및 공통 헤더를 검사합니다. 이 규칙은 이중 `URL_DECODE_UNI` 텍스트 변환을 사용합니다. 일치 기준이 조정되고 추가 헤더를 검사하는 `Log4JRCE`의 1.3 버전이 릴리스되었습니다. `BadAuthToken_COOKIE_AUTHORIZATION` 규칙을 삭제했습니다.  | 2021-12-10 | 

다음 표는 2021년 12월 이전의 변경 사항이 나열되어 있습니다.


| 규칙 그룹 및 규칙 | 설명 | Date | 
| --- | --- | --- | 
| Amazon IP 신뢰도 목록 | `AWSManagedReconnaissanceList` | 모니터링/계산 모드에 AWSManagedReconnaissanceList 규칙을 추가했습니다. 이 규칙에는 AWS 리소스에 대해 정찰을 수행하는 IP 주소가 포함되어 있습니다. | 2021-11-23 | 
| Windows 운영 체제 |  `WindowsShellCommands` `PowerShellCommands`  |  WindowsShell 명령에 대한 세 가지 새로운 규칙인 `WindowsShellCommands_COOKIE`, `WindowsShellCommands_QUERYARGUMENTS` 및 `WindowsShellCommands_BODY`를 추가했습니다. 새 PowerShell 규칙인 `PowerShellCommands_COOKIE`를 추가했습니다. \$1Set1 및 \$1Set2 문자열을 제거하여 `PowerShellComands` 규칙 이름 지정을 재구성했습니다. `PowerShellRules`에 보다 포괄적인 탐지 서명을 추가했습니다. 모든 Windows 운영 체제 규칙에 `URL_DECODE_UNI` 텍스트 변환을 추가했습니다.  | 2021-11-23 | 
| Linux 운영 체제 |  `LFI_URIPATH` `LFI_QUERYSTRING` `LFI_BODY` `LFI_COOKIE`  |  이중 `URL_DECODE` 텍스트 변환을 이중 `URL_DECODE_UNI`로 대체했습니다. 두 번째 텍스트 변환으로 `NORMALIZE_PATH_WIN`을 추가했습니다. `LFI_BODY` 규칙을 `LFI_COOKIE` 규칙으로 대체했습니다. 모든 `LFI` 규칙에 대해 보다 포괄적인 감지 서명을 추가했습니다.  | 2021-11-23 | 
| 핵심 규칙 집합(CRS, Core rule set) |  `SizeRestrictions_BODY`  | 본문 페이로드가 8KB보다 큰 웹 요청을 차단하도록 크기 제한을 낮췄습니다. 이전에는 제한이 10KB였습니다. | 2021-10-27 | 
| 핵심 규칙 집합(CRS, Core rule set) |  `EC2MetaDataSSRF_BODY` `EC2MetaDataSSRF_COOKIE` `EC2MetaDataSSRF_URIPATH` `EC2MetaDataSSRF_QUERYARGUMENTS`  | 더 많은 탐지 서명을 추가했습니다. 차단을 개선하기 위해 이중 유니코드 URL 디코딩을 추가했습니다. | 2021-10-27 | 
| 핵심 규칙 집합(CRS, Core rule set) |  `GenericLFI_QUERYARGUMENTS` `GenericLFI_URIPATH` `RestrictedExtensions_URIPATH` `RestrictedExtensions_QUERYARGUMENTS`  | 차단을 개선하기 위해 이중 유니코드 URL 디코딩을 추가했습니다. | 2021-10-27 | 
| 핵심 규칙 집합(CRS, Core rule set) |  `GenericRFI_QUERYARGUMENTS` `GenericRFI_BODY` `GenericRFI_URIPATH`  | 고객 피드백을 기반으로 거짓 긍정을 줄이기 위해 규칙 서명을 업데이트했습니다. 차단을 개선하기 위해 이중 유니코드 URL 디코딩을 추가했습니다. | 2021-10-27 | 
| 모두 | 모든 규칙 |  AWS WAF 레이블 지정을 아직 지원하지 않은 모든 규칙에 레이블에 대한 지원이 추가되었습니다. | 2021-10-25 | 
| Amazon IP 신뢰도 목록 | `AWSManagedIPReputationList_xxxx` | IP 평판 목록을 재구성하고, 규칙 이름에서 접미사를 제거하고, AWS WAF 레이블에 대한 지원을 추가했습니다. | 2021-05-04 | 
| 익명 IP 목록 | `AnonymousIPList` `HostingProviderList` |  AWS WAF 레이블에 대한 지원이 추가되었습니다. | 2021-05-04 | 
| 봇 컨트롤 | 모두 | 봇 컨트롤 규칙 세트를 추가했습니다. | 2021-04-01 | 
| 핵심 규칙 집합(CRS, Core rule set) | `GenericRFI_QUERYARGUMENTS`  | 이중 URL 디코딩을 추가했습니다. | 2021-03-03 | 
| 핵심 규칙 집합(CRS, Core rule set) | `RestrictedExtensions_URIPATH`  | 규칙 구성을 개선하고 추가 URL 디코딩을 추가했습니다. | 2021-03-03 | 
| 관리 보호 | `AdminProtection_URIPATH`  | 이중 URL 디코딩을 추가했습니다. | 2021-03-03 | 
| 알려진 잘못된 입력 | `ExploitablePaths_URIPATH`  | 규칙 구성을 개선하고 추가 URL 디코딩을 추가했습니다. | 2021-03-03 | 
| Linux 운영 체제 | `LFI_QUERYARGUMENTS`  | 규칙 구성을 개선하고 추가 URL 디코딩을 추가했습니다. | 2021-03-03 | 
| Windows 운영 체제 | 모두 | 규칙 구성을 개선했습니다. | 2020-09-23 | 
| PHP 애플리케이션 | `PHPHighRiskMethodsVariables_QUERYARGUMENTS` `PHPHighRiskMethodsVariables_BODY`  | 차단을 개선하기 위해 텍스트 변환을 HTML 디코딩에서 URL 디코딩으로 변경했습니다. | 2020-09-16 | 
| POSIX 운영 체제 | `UNIXShellCommandsVariables_QUERYARGUMENTS` `UNIXShellCommandsVariables_BODY`  | 차단을 개선하기 위해 텍스트 변환을 HTML 디코딩에서 URL 디코딩으로 변경했습니다. | 2020-09-16 | 
| 핵심 규칙 집합 | `GenericLFI_QUERYARGUMENTS` `GenericLFI_URIPATH` GenericLFI\$1BODY  | 차단을 개선하기 위해 텍스트 변환을 HTML 디코딩에서 URL 디코딩으로 변경했습니다. | 2020-08-07 | 
| Linux 운영 체제 | `LFI_URIPATH` `LFI_QUERYARGUMENTS` `LFI_BODY`  | 검색 및 차단을 개선하기 위해 텍스트 변환을 HTML 엔터티 디코딩에서 URL 디코딩으로 변경했습니다. | 2020-05-19 | 
| 익명 IP 목록 | 모두 | 최종 사용자 ID 난독화를 허용하는 서비스의 요청을 차단하는 새 규칙 그룹을 [IP 신뢰도 규칙 그룹](aws-managed-rule-groups-ip-rep.md)에서 사용하면 봇을 완화하고 지리적 제한을 피할 수 있습니다. | 2020-03-06 | 
| WordPress 애플리케이션 | `WordPressExploitableCommands_QUERYSTRING`  | 쿼리 문자열에서 악용 가능한 명령을 확인하는 새 규칙입니다. | 2020-03-03 | 
| 핵심 규칙 집합(CRS, Core rule set) | `SizeRestrictions_QUERYSTRING` `SizeRestrictions_Cookie_HEADER` `SizeRestrictions_BODY` `SizeRestrictions_URIPATH`  | 정확도를 높이기 위해 크기 값 제약 조건을 조정했습니다. | 2020-03-03 | 
| SQL 데이터베이스 | `SQLi_URIPATH`  | 이제 규칙은 메시지 URI를 확인합니다. | 2020-01-23 | 
| SQL 데이터베이스 | `SQLi_BODY` `SQLi_QUERYARGUMENTS` `SQLi_COOKIE`  | 텍스트 변환을 업데이트했습니다. | 2019-12-20 | 
| 핵심 규칙 집합(CRS, Core rule set) | `CrossSiteScripting_URIPATH` `CrossSiteScripting_BODY` `CrossSiteScripting_QUERYARGUMENTS` `CrossSiteScripting_COOKIE`  | 텍스트 변환을 업데이트했습니다. | 2019-12-20 | 

# 자체 규칙 그룹 관리
<a name="waf-user-created-rule-groups"></a>

자체 규칙 그룹을 생성하여 관리형 규칙 그룹 옵션에서 찾을 수 없거나 직접 처리하는 것을 선호하는 규칙 모음을 다시 사용할 수 있습니다.

보호 팩(웹 ACL)과 마찬가지로 보류 규칙을 생성하는 규칙 그룹이며, 보호 팩(웹 ACL)에서와 같은 방법으로 규칙 그룹에 규칙을 추가합니다. 자체 규칙 그룹을 생성할 때는 변경이 불가능한 최대 용량을 설정해야 합니다.

**Topics**
+ [규칙 그룹 생성](waf-rule-group-creating.md)
+ [규칙 그룹 편집](waf-rule-group-editing.md)
+ [보호 팩(웹 ACL)에서 규칙 그룹 사용](waf-rule-group-using.md)
+ [규칙 그룹 삭제](waf-rule-group-deleting.md)
+ [규칙 그룹 공유](waf-rule-group-sharing.md)

# 규칙 그룹 생성
<a name="waf-rule-group-creating"></a>

새 규칙 그룹을 생성하려면 이 페이지의 절차를 따르세요.

**규칙 그룹을 생성하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **규칙 그룹**과 **규칙 그룹 생성**을 차례로 선택합니다.

1. 규칙 그룹의 이름과 설명을 입력합니다. 이름과 설명은 관리 및 사용할 규칙 그룹을 식별하는 데 사용됩니다.

   `AWS`, `Shield`, `PreFM` 또는 `PostFM`으로 시작하는 이름은 사용하면 안 됩니다. 이러한 문자열은 예약되어 있거나 다른 서비스에서 관리되는 규칙 그룹과 혼동될 수 있습니다. [다른 서비스에서 제공하는 규칙 그룹 인지](waf-service-owned-rule-groups.md)을(를) 참조하세요.
**참고**  
규칙 그룹을 생성한 후에는 이름을 변경할 수 없습니다.

1. **리전**에서 규칙 그룹을 저장할 리전을 선택합니다. Amazon CloudFront 배포를 보호하는 보호 팩(웹 ACL)에서 규칙 그룹을 사용하려면 글로벌 설정을 사용해야 합니다. 리전별 애플리케이션에서도 전역 설정을 사용할 수 있습니다.

1. **다음**을 선택합니다.

1. 보호 팩(웹 ACL) 관리에서와 마찬가지로 **규칙 빌더** 마법사를 사용하여 규칙 그룹에 규칙을 추가합니다. 유일한 차이점은 규칙 그룹을 다른 규칙 그룹에 추가할 수 없다는 것입니다.

1. **용량**에서 규칙 그룹의 보호 팩(웹 ACL) 용량 단위(WCU) 사용에 대한 최대값을 설정합니다. 이것은 변경 불가능한 설정입니다. WCU에 대한 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 단원을 참조하세요.

   규칙 그룹에 규칙을 추가하면 **규칙 추가 및 용량 설정** 창에 이미 추가한 규칙에 따라 필요한 최소 용량이 표시됩니다. 규칙 그룹에서 이 계획과 향후 계획을 사용하면 규칙 그룹에 필요한 용량을 예측할 수 있습니다.

1. 규칙 그룹에 대한 설정을 검토하고 **생성**을 선택합니다.

# 규칙 그룹 편집
<a name="waf-rule-group-editing"></a>

규칙 그룹에서 규칙을 추가 또는 제거하거나 구성 설정을 변경하려면 이 페이지의 절차를 사용하여 규칙 그룹에 액세스합니다.

**프로덕션 트래픽 위험**  
보호 팩(웹 ACL)에서 현재 사용 중인 규칙 그룹을 변경하는 경우 해당 변경 내용은 사용 중인 보호 팩(웹 ACL) 동작에 영향을 미칩니다. 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 모든 변경 사항을 테스트하고 조정합니다. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**규칙 그룹을 편집하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **Rule groups(규칙 그룹)**를 선택합니다.

1. 편집할 규칙 그룹 이름을 선택합니다. 콘솔에서 규칙 그룹 페이지로 이동합니다.
**참고**  
편집하려는 규칙 그룹이 표시되지 않으면 **규칙 그룹** 섹션 내에서 리전 선택을 확인합니다. Amazon CloudFront 배포를 보호하는 데 사용하는 규칙 그룹의 경우 **글로벌(CloudFront)** 설정을 사용합니다.

1. 필요에 따라 규칙 그룹을 편집합니다. 생성 중에 했던 것과 마찬가지로 규칙 그룹의 변경 가능한 속성을 편집할 수 있습니다. 콘솔에 편집하는 변경 내용이 저장됩니다.
**참고**  
규칙 이름을 변경하고 규칙의 지표 이름에 변경 사항이 반영되도록 하려면 지표 이름도 업데이트해야 합니다. 규칙 이름을 변경할 때 AWS WAF 는 규칙의 지표 이름을 자동으로 업데이트하지 않습니다. 콘솔에서 규칙을 편집할 때 규칙 JSON 편집기를 사용하여 지표 이름을 변경할 수 있습니다. API와 보호 팩(웹 ACL) 또는 규칙 그룹을 정의하는 데 사용하는 JSON 목록을 통해 두 이름을 모두 변경할 수도 있습니다.

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경하면 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 집합에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

# 보호 팩(웹 ACL)에서 규칙 그룹 사용
<a name="waf-rule-group-using"></a>

보호 팩(웹 ACL)에서 규칙 그룹을 사용하려면 규칙 그룹 참조 문을 통해 해당 그룹을 보호 팩(웹 ACL)에 추가합니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 보호 팩(웹 ACL)의 변경 사항을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 변경 사항을 테스트하고 조정합니다. 그런 다음 업데이트된 규칙을 프로덕션 트래픽과 함께 계산 모드에서 테스트하고 조정한 다음 활성화하십시오. 자세한 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)을 참조하세요.

**참고**  
보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**규칙 그룹을 사용하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **Rule groups(규칙 그룹)**를 선택합니다.

1. 사용할 규칙 그룹 이름을 선택합니다.

1. **규칙 추가**를 선택한 다음 **나만의 규칙 및 규칙 그룹 추가**를 선택합니다.

1. **규칙 그룹**을 선택하고 목록에서 규칙 그룹을 선택합니다.

보호 팩(웹 ACL)에서는 개별 규칙 작업을 Count 또는 다른 작업으로 설정하여 규칙 그룹 및 해당 규칙의 동작을 변경할 수 있습니다. 이를 통해 규칙 그룹을 테스트하고, 규칙 그룹의 규칙에서 거짓 긍정지를 식별하며 관리형 규칙 그룹이 요청을 처리하는 방식을 사용자 지정하는 등의 작업을 수행할 수 있습니다. 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 단원을 참조하십시오.

규칙 그룹에 속도 기반 문이 포함된 경우 규칙 그룹을 사용하는 각 보호 팩(웹 ACL)에는 규칙 그룹을 사용하는 다른 보호 팩(웹 ACL)과는 별개로 속도 기반 규칙에 대한 별도의 고유한 속도 추적 및 관리 기능이 있습니다. 자세한 내용은 [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md) 단원을 참조하십시오.

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경하면 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 집합에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

# 규칙 그룹 삭제
<a name="waf-rule-group-deleting"></a>

규칙 그룹을 삭제하려면 이 단원의 지침을 따르십시오.

**참조된 세트 및 규칙 그룹 삭제**  
IP 세트, 정규식 패턴 세트 또는 규칙 그룹과 같이 보호 팩(웹 ACL)에서 사용할 수 있는 개체를 삭제하면는 개체가 현재 보호 팩(웹 ACL)에서 사용 중인지 AWS WAF 확인합니다. 사용 중인 것으로 확인되면 AWS WAF 경고합니다. AWS WAF 는 거의 항상 개체가 보호 팩(웹 ACL)에서 참조되고 있는지 확인할 수 있습니다. 그러나 드물지만 이러한 작업을 수행할 수 없는 경우도 있습니다. 현재 아무 것도 엔터티를 사용하고 있지 않음을 확인해야 하는 경우에는 해당 엔터티를 삭제하기 전에 해당 보호 팩(웹 ACL)에서 확인합니다. 엔티티가 참조된 세트인 경우에도 어떤 규칙 그룹도 해당 엔티티를 사용하고 있지 않음을 확인합니다.

**규칙 그룹을 삭제하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **Rule groups(규칙 그룹)**를 선택합니다.

1. 삭제하려는 규칙 그룹을 선택한 다음 **삭제**를 선택합니다.
**참고**  
삭제하려는 규칙 그룹이 표시되지 않으면 **규칙 그룹** 섹션 내에서 리전 선택을 확인합니다. Amazon CloudFront 배포를 보호하는 데 사용하는 규칙 그룹의 경우 **글로벌(CloudFront)** 설정을 사용합니다.

# 규칙 그룹 공유
<a name="waf-rule-group-sharing"></a>

규칙 그룹을 다른 계정과 공유하여 해당 계정에서 사용할 수 있습니다.

**규칙 그룹 공유**  
하나 이상의 특정 계정과 공유할 수 있으며 조직의 모든 계정과 공유할 수 있습니다.

규칙 그룹을 공유하려면 AWS WAF API를 사용하여 원하는 규칙 그룹 공유에 대한 정책을 생성합니다. 자세한 내용은 *AWS WAF API 참조*의 [PutPermissionPolicy](https://docs.aws.amazon.com/waf/latest/APIReference/API_PutPermissionPolicy.html)를 참조하세요.

**공유된 규칙 그룹 사용**  
규칙 그룹이 계정과 공유된 경우 API를 통해 액세스하고 API를 통해 보호 팩(웹 ACL)을 생성하거나 업데이트할 때 참조할 수 있습니다. 자세한 내용은 *AWS WAF API 참조*의 [GetRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetRuleGroup.html), [CreateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateWebACL.html) 및 [UpdateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_UpdateWebACL.html)을 참조하세요. 공유된 규칙 그룹은 AWS WAF 콘솔 규칙 그룹 목록에 표시되지 않습니다.

# AWS Marketplace 규칙 그룹
<a name="marketplace-rule-groups"></a>

이 섹션에서는 AWS Marketplace 규칙 그룹을 사용하는 방법을 설명합니다.

AWS Marketplace 규칙 그룹은의 AWS Marketplace 콘솔을 통해 구독을 통해 사용할 수 있습니다[AWS Marketplace](https://aws.amazon.com/marketplace). AWS Marketplace 규칙 그룹을 구독한 후에서 사용할 수 있습니다 AWS WAF. AWS Firewall Manager AWS WAF 정책에서 AWS Marketplace 규칙 그룹을 사용하려면 조직의 각 계정이 규칙 그룹을 구독해야 합니다.

**AWS Marketplace다음을 통해 다양한 유형의 규칙 그룹을 구독할 수 있습니다.**
+ AWS WAF 파트너 관리형 규칙 그룹
+ 클라이언트 측 보호

프로덕션 트래픽에 사용하기 전에 AWS WAF 보호에 대한 변경 사항을 테스트하고 조정합니다. 자세한 내용은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 단원을 참조하세요.

**AWS Marketplace 규칙 그룹 요금**  
AWS Marketplace 규칙 그룹은 장기 계약이나 최소 약정 없이 사용할 수 있습니다. 규칙 그룹을 구독하면 볼륨을 기준으로 월별 요금(시간당 비례 배분) 및 지속적 요청 요금이 부과됩니다. 그러나 구독 규칙 그룹을 웹 ACL에 추가하고 사용을 시작할 때만 구독 요금이 부과됩니다. 자세한 내용은의 각 AWS Marketplace 규칙 그룹에 대한 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/) 및 설명을 참조하세요[AWS Marketplace](https://aws.amazon.com/marketplace).

**AWS Marketplace 규칙 그룹에 대한 질문이 있습니까?**  
 AWS Marketplace 판매자가 관리하는 규칙 그룹에 대한 질문과 기능 변경을 요청하려면 공급자의 고객 지원 팀에 문의하세요. 연락처 정보를 찾으려면 [AWS Marketplace](https://aws.amazon.com/marketplace)의 공급자 목록을 참조하세요.

 AWS Marketplace 규칙 그룹 공급자는 규칙 그룹을 업데이트하는 방법, 규칙 그룹의 버전 관리 여부 등 규칙 그룹을 관리하는 방법을 결정합니다. 또한 공급자는 규칙, 규칙 작업 그리고 규칙이 일치하는 웹 요청에 추가하는 모든 레이블을 포함하여 규칙 그룹의 세부 정보를 결정합니다.

## AWS Marketplace 규칙 그룹 구독
<a name="marketplace-rule-groups-subscribing"></a>

 AWS WAF 콘솔에서 AWS Marketplace 규칙 그룹을 구독 및 구독 취소할 수 있습니다.

**중요**  
 AWS Firewall Manager 정책에서 AWS Marketplace 규칙 그룹을 사용하려면 먼저 조직의 각 계정이 해당 규칙 그룹을 구독해야 합니다.

**AWS Marketplace 규칙 그룹을 구독하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **추가 보호**를 선택합니다.

1. **AWS Marketplace** 섹션에서 규칙 그룹의 이름을 선택하여 세부 정보 및 요금 정보를 봅니다.
**작은 정보**  
필터를 사용하여 가장 관심 있는 규칙을 빠르게 정렬합니다. 예를 들어 **범주** 필터를 사용하여 클라이언트 측 보호만 볼 수 있습니다.

1.  AWS Marketplace 규칙 그룹을 구독하려면: 

   1. 규칙 그룹으로 이동한 다음 **Marketplace를 통해 구독**을 선택합니다.

   1. 열리는 Marketplace 페이지에서 **구매 옵션 보기**를 선택한 다음 **구독**을 선택합니다.
**참고**  
규칙 그룹을 구독하지 않으려는 경우 팝업을 닫으면 됩니다.

 AWS Marketplace 규칙 그룹을 구독한 후에는 다른 관리형 규칙 그룹과 마찬가지로 보호 팩(웹 ACLs)에서 규칙 그룹을 사용합니다. 자세한 내용은 [에서 보호 팩(웹 ACL) 생성 AWS WAF](web-acl-creating.md) 단원을 참조하세요.

보호 팩(웹 ACL)에 규칙 그룹을 추가할 때 규칙 그룹에 있는 규칙의 작업 및 규칙 그룹 결과의 규칙 작업을 재정의할 수 있습니다. 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 단원을 참조하십시오.

## AWS Marketplace 규칙 그룹 구독 취소
<a name="marketplace-rule-groups-unsubscribing"></a>

 AWS Marketplace 콘솔에서 AWS Marketplace 규칙 그룹의 구독을 취소할 수 있습니다.

**중요**  
 AWS Marketplace 규칙 그룹에 대한 구독 요금을 중지하려면 규칙 그룹의 구독을 취소하는 것 외에도 AWS WAF 모든 Firewall Manager AWS WAF 정책의 모든 보호 팩(웹 ACLs)에서 제거해야 합니다. AWS Marketplace 규칙 그룹에서 구독을 취소하고 보호 팩(웹 ACLs)에서 제거하지 않으면 구독에 대한 요금이 계속 청구됩니다.

**AWS Marketplace 규칙 그룹 구독을 취소하려면**

1. 모든 보호 팩(웹 ACL)에서 규칙 그룹을 제거합니다. 자세한 내용은 [에서 보호 팩(웹 ACL) 편집 AWS WAF](web-acl-editing.md) 단원을 참조하십시오.

1. [https://console.aws.amazon.com/marketplace](https://console.aws.amazon.com/marketplace) AWS 콘솔을 엽니다.

   **구독 관리** 페이지가 나타납니다.

1. **제공 방법** 목록을 열고 **SaaS**를 선택합니다.

1. **계약**에서 **작업 목록**을 열고 구독을 취소하려는 규칙 그룹의 이름 옆에 있는 **구독 취소**를 선택합니다.

1. **구독 취소** 대화 상자에서 **confirm**을 입력한 다음 **예, 구독 취소**를 선택합니다.

## AWS Marketplace 규칙 그룹 문제 해결
<a name="waf-managed-rule-group-troubleshooting"></a>

 AWS Marketplace 규칙 그룹이 합법적인 트래픽을 차단하는 경우 다음 단계를 수행하여 문제를 해결할 수 있습니다.

**AWS Marketplace 규칙 그룹 문제 해결**

1. 합법적인 트래픽을 차단하는 규칙 수로 작업을 재정의합니다. AWS WAF 샘플링된 요청 또는 AWS WAF 로그를 사용하여 특정 요청을 차단하는 규칙을 식별할 수 있습니다. 로그의 `ruleGroupId` 필드 또는 샘플링된 요청의 `RuleWithinRuleGroup`를 확인하여 규칙을 식별할 수 있습니다. 패턴 `<Seller Name>#<RuleGroup Name>#<Rule Name>`에서 규칙을 식별할 수 있습니다.

1. 요청만 계산하도록 특정 규칙을 설정해도 문제가 해결되지 않는 경우 모든 규칙 작업을 재정의하거나 AWS Marketplace 규칙 그룹 자체에 대한 작업을 **재정의 없음**에서 재정의로 **변경하여 계산할** 수 있습니다. 그러면 규칙 그룹 내의 개별 규칙 작업에 관계없이 웹 요청이 통과할 수 있습니다.

1. 개별 규칙 작업 또는 전체 AWS Marketplace 규칙 그룹 작업을 재정의한 후 규칙 그룹 공급자의 고객 지원 팀에 문의하여 문제를 추가로 해결합니다. 연락처 정보는 AWS Marketplace의 제품 목록 페이지에 나열된 규칙 그룹을 참조하세요.

### AWS 지원 문의
<a name="waf-managed-rule-group-troubleshooting-support"></a>

 AWS WAF 또는에서 관리하는 규칙 그룹에 문제가 있는 경우 AWS에 문의하세요 AWS Support. AWS Marketplace 판매자가 관리하는 규칙 그룹에 문제가 있는 경우 공급자의 고객 지원 팀에 문의하십시오. 연락처 정보를 찾으려면 공급자의 목록을 참조하세요 AWS Marketplace.

# 다른 서비스에서 제공하는 규칙 그룹 인지
<a name="waf-service-owned-rule-groups"></a>

사용자 또는 조직의 관리자가 AWS Firewall Manager 또는를 사용하여 리소스 보호를 AWS Shield Advanced 관리하는 경우 계정의 보호 팩(웹 ACLs)에 규칙 그룹 참조 문이 추가 AWS WAF될 수 있습니다.

이러한 규칙 그룹의 이름이 다음 문자열로 시작합니다.
+ **`ShieldMitigationRuleGroup`** - 이러한 규칙 그룹은에서 관리 AWS Shield Advanced 하며 보호된 애플리케이션 계층(계층 7) 리소스에 자동 애플리케이션 계층 DDoS 완화를 제공하는 데 사용됩니다.

  보호된 리소스에 대해 자동 애플리케이션 계층 DDoS 완화를 활성화하면 Shield Advanced에서 리소스와 연결된 보호 팩(웹 ACL)에 이러한 규칙 그룹 중 하나를 추가합니다. Shield Advanced는 규칙 그룹 참조문에 10,000,000의 우선 순위 설정을 할당하여 보호 팩(웹 ACL)에서 구성한 규칙 이후에 실행되도록 합니다. 이 규칙 그룹에 대한 자세한 내용은 [Shield Advanced를 사용하여 애플리케이션 계층 DDoS 자동화](ddos-automatic-app-layer-response.md) 섹션을 참조하세요.
**주의**  
보호 팩(웹 ACL)에서 이 규칙 그룹을 수동으로 관리하려고 하지 마세요. 특히 보호 팩(웹 ACL)에서 `ShieldMitigationRuleGroup` 규칙 그룹 참조문을 수동으로 삭제하지 마세요. 이로 인해 보호 팩(웹 ACL)과 연결된 모든 리소스에 의도하지 않은 결과가 발생할 수 있습니다. 대신 Shield Advanced를 사용하여 보호 팩(웹 ACL)과 연결된 리소스에 대한 자동 완화를 비활성화합니다. Shield Advanced는 자동 완화에 필요하지 않은 경우 규칙 그룹을 자동으로 제거합니다.
+ **`PREFMManaged` 및 `POSTFMManaged`** - 이러한 규칙 그룹은 Firewall Manager AWS WAF 정책 구성을 AWS Firewall Manager 기반으로에서 관리합니다. Firewall Manager는 Firewall Manager가 관리하는 보호 팩(웹 ACL) 내에서 이러한 규칙 그룹을 제공합니다.

  Firewall Manager는 `FMManagedWebACLV2`로 시작하는 이름으로 보호 팩(웹 ACL)을 생성합니다. Firewall Manager를 구성하여 기존 보호 팩(웹 ACL)을 새로 고칠 수도 있습니다. 이런 경우 보호 팩(웹 ACL) 이름은 보호 팩(웹 ACL)을 생성할 때 지정한 이름입니다. 어떤 경우든 Firewall Manager는 이러한 규칙 그룹을 보호 팩(웹 ACL)에 추가합니다. 자세한 내용은 [Firewall Manager에서 AWS WAF 정책 사용](waf-policies.md) 단원을 참조하십시오.

# 의 웹 ACL 용량 단위(WCUs) AWS WAF
<a name="aws-waf-capacity-units"></a>

이 섹션에서는 웹 ACL 용량 단위(WCU)가 무엇인지, 어떻게 작동하는지를 설명합니다.

AWS WAF 는 WCUs 사용하여 규칙, 규칙 그룹 및 웹 ACLs.는 규칙 그룹 및 웹 ACLs을 구성할 때 WCU 제한을 AWS WAF 적용합니다. WCUs가 웹 트래픽을 AWS WAF 검사하는 방법에 영향을 주지 않습니다.

AWS WAF 는 규칙, 규칙 그룹 및 웹 ACLs의 용량을 관리합니다.

**규칙 WCU**  
AWS WAF 는 규칙을 생성하거나 업데이트할 때 규칙 용량을 계산합니다.는 각 규칙의 상대 비용을 반영하기 위해 각 규칙 유형에 대해 용량을 다르게 AWS WAF 계산합니다. 실행 비용이 적게 드는 간단한 규칙은 처리 능력을 더 많이 사용하는 복잡한 규칙에 비해 WCU를 적게 사용합니다. 예를 들어 크기 제한 규칙 명령문에는 정규식 패턴 집합을 사용하여 요청을 검사하는 명령문보다 더 적은 WCU가 사용됩니다.

규칙 용량 요구 사항은 일반적으로 규칙 유형의 기본 비용에서 시작하여 예를 들어 검사 전에 텍스트 변환을 추가하거나 JSON 본문을 검사하는 경우 등 복잡성에 따라 증가합니다. 규칙 용량 요구 사항에 대한 자세한 내용은 [에서 규칙 문 사용 AWS WAF](waf-rule-statements.md)의 규칙 문 목록을 참조하세요.

**규칙 그룹 WCU**  
규칙 그룹의 WCU 요구 사항은 규칙 그룹 내에서 정의하는 규칙에 따라 결정됩니다. 규칙 그룹의 최대 용량은 5,000WCU입니다.

각 규칙 그룹마다 변경할 수 없는 용량 설정이 있으며, 이 설정은 소유자가 생성 시 할당합니다. 이는 사용자가 생성하는 관리형 규칙 그룹 및 규칙 그룹에 적용됩니다 AWS WAF. 규칙 그룹을 수정할 때 변경 사항은 규칙 그룹의 WCU가 해당 용량 내에 유지되도록 해야 합니다. 이렇게 하면 규칙 그룹을 사용하는 보호 팩(웹 ACL) 또는 웹 ACL이 해당 용량 요구 사항 내에서 유지됩니다.

규칙 그룹에서 사용 중인 WCUs는 규칙의 WCUs 합계에서 규칙의 동작을 결합하여 얻을 수 있는 처리 최적화를 뺀 값 AWS WAF 입니다. 예를 들어 동일한 웹 요청 구성 요소를 검사하기 위해 두 규칙을 정의하고 각 규칙이 구성 요소를 검사하기 전에 구성 요소에 특정 변환을 적용하는 경우 변환 적용에 대해 요금을 한 번만 청구할 AWS WAF 수 있습니다. 보호 팩(웹 ACL)의 규칙 그룹을 사용하는 데 드는 WCU 비용은 항상 규칙 그룹 생성 시 정의한 고정 WCU 설정입니다.

규칙 그룹을 생성할 때는 규칙 그룹의 전체 수명 기간 동안 사용하려는 규칙을 수용할 수 있을 만큼 용량을 충분히 높게 설정해야 합니다.

**보호 팩 또는 웹 ACL WCU**  
보호 팩(웹 ACL)의 WCU 요구 사항은 보호 팩(웹 ACL) 내에서 사용하는 규칙 및 규칙 그룹에 따라 결정됩니다.
+ 보호 팩(웹 ACL)에서 규칙 그룹을 사용하는 데 드는 비용은 규칙 그룹의 용량 설정입니다.
+ 규칙 사용 비용은 규칙의 계산된 WCUs에서 보호 팩(웹 ACL)의 규칙 조합에서 얻을 AWS WAF 수 있는 모든 처리 최적화를 뺀 값입니다. 예를 들어 동일한 웹 요청 구성 요소를 검사하기 위해 두 규칙을 정의하고 각 규칙이 구성 요소를 검사하기 전에 구성 요소에 특정 변환을 적용하는 경우 변환 적용에 대해 요금을 한 번만 청구할 AWS WAF 수 있습니다.

보호 팩(웹 ACL)의 기본 가격에는 최대 1,500개 WCU가 포함됩니다. 계층형 요금 모델에 따라 1,500개 이상의 WCUs를 사용하면 추가 요금이 발생합니다.는 보호 팩(웹 ACL) WCU 사용량이 변경될 때 보호 팩(웹 ACL) 요금을 AWS WAF 자동으로 조정합니다. 요금에 대한 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

보호 팩(웹 ACL)의 최대 용량은 5,000WCU입니다.

## 규칙 그룹, 보호 팩(웹 ACL) 또는 웹 ACL의 WCU 결정
<a name="aws-waf-capacity-units-used"></a>

이전 섹션에서 설명한 것처럼, 규칙 그룹, 보호 팩(웹 ACL) 또는 웹 ACL에서 사용되는 총 WCU는 규칙 그룹, 보호 팩(웹 ACL) 또는 웹 ACL에 정의된 모든 규칙의 WCU 합계와 같거나 *작습니다*.

 AWS WAF 콘솔에서 보호 팩(웹 ACL), 웹 ACL 또는 규칙 그룹에 규칙을 추가할 때 사용된 용량을 확인할 수 있습니다. 콘솔에는 규칙을 추가할 때 사용되는 현재 용량 단위가 표시됩니다.

API를 통해 보호 팩(웹 ACL), 웹 ACL 또는 규칙 그룹에서 사용하려는 규칙의 최대 용량 요구 사항을 확인할 수 있습니다. 이렇게 하려면 용량 확인 호출에 규칙의 JSON 목록을 제공합니다. 자세한 내용은 *AWS WAF V2 API 참조*의 [CheckCapacity](https://docs.aws.amazon.com/waf/latest/APIReference/API_CheckCapacity.html) 섹션을 참조하세요.

# 에서 웹 요청 구성 요소 크기 초과 AWS WAF
<a name="waf-oversize-request-components"></a>

이 섹션에서는 AWS WAF에서 웹 요청 본문, 헤더, 쿠키 검사 시 크기 제한을 관리하는 방법을 설명합니다.

AWS WAF 는 웹 요청 구성 요소 본문, 헤더 또는 쿠키에 대한 매우 큰 콘텐츠 검사를 지원하지 않습니다. 기본 호스트 서비스에는 검사를 AWS WAF 위해에 전달하는 항목에 대한 개수 및 크기 제한이 있습니다. 예를 들어 호스트 서비스는 200개 이상의 헤더를에 보내지 않으므로 AWS WAF 205개의 헤더가 있는 웹 요청의 경우는 마지막 5개의 헤더를 검사할 AWS WAF 수 없습니다.

에서 웹 요청이 보호된 리소스로 진행되도록 허용하면 AWS WAF 에서 검사할 AWS WAF 수 있었던 개수 및 크기 제한을 벗어난 콘텐츠를 포함하여 전체 웹 요청이 전송됩니다.

**구성 요소 검사 크기 제한**  
구성 요소 검사 크기 제한은 다음과 같습니다.
+ **`Body` 및 `JSON Body`** - Application Load Balancer의 경우 요청 본문의 처음 8KB를 검사할 수 AWS AppSync AWS WAF 있습니다. CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access의 경우 기본적으로 AWS WAF 는 처음 16KB를 검사할 수 있으며, 보호 팩(웹 ACL) 구성에서 제한을 최대 64KB까지 늘릴 수 있습니다. 자세한 내용은 [에서 본문 검사 관리에 대한 고려 사항 AWS WAF](web-acl-setting-body-inspection-limit.md) 단원을 참조하십시오.
+ **`Headers`** - 요청 헤더의 최대 처음 8KB(8,192바이트)와 최대 처음 200개의 헤더를 검사할 AWS WAF 수 있습니다. 콘텐츠는 첫 번째 한도에 도달할 AWS WAF 때까지 검사할 수 있습니다.

  이러한 제한은 요청의 모든 헤더를 검사할 때 적용됩니다. 단일 헤더를 검사할 때는 이러한 크기 또는 개수 제한 없이 해당 헤더의 전체 내용을 검사할 AWS WAF 수 있습니다.
+ **`Cookies`** - 요청 쿠키의 최대 처음 8KB(8,192바이트)와 최대 처음 200개의 쿠키를 검사할 AWS WAF 수 있습니다. 콘텐츠는 첫 번째 한도에 도달할 AWS WAF 때까지 검사할 수 있습니다.

**규칙 문에 대한 과대 처리 옵션**  
이러한 요청 구성 요소 유형 중 하나를 검사하는 규칙 문을 작성할 때 과대 구성 요소를 처리하는 방법을 지정합니다. 과대 처리는 규칙이 검사하는 요청 구성 요소가 크기 제한을 초과할 때 웹 요청으로 AWS WAF 수행할 작업을 알려줍니다.

과대 처리 구성 요소의 옵션은 다음과 같습니다.
+ **Continue** - 규칙 검사 기준에 따라 요청 구성 요소를 정상적으로 검사합니다.는 크기 제한 내에 있는 요청 구성 요소 콘텐츠를 AWS WAF 검사합니다.
+ **Match** - 웹 요청을 규칙 문과 일치하는 것으로 취급합니다.는 규칙의 검사 기준에 따라 평가하지 않고 요청에 규칙 작업을 AWS WAF 적용합니다.
+ **No match** - 웹 요청을 규칙의 검사 기준에 따라 평가하지 않고 규칙 문과 일치하지 않는 것으로 처리합니다.는 일치하지 않는 규칙에 대해와 마찬가지로 보호 팩(웹 ACL)의 나머지 규칙을 사용하여 웹 요청 검사를 AWS WAF 계속합니다.

 AWS WAF 콘솔에서 이러한 처리 옵션 중 하나를 선택해야 합니다. 콘솔 외부에서 기본 옵션은 Continue입니다.

동작이 Block로 설정된 규칙에서 Match 옵션을 사용하는 경우 규칙은 검사한 구성 요소의 크기가 너무 큰 요청을 차단합니다. 다른 구성을 사용할 경우 요청의 최종 처리는 보호 팩(웹 ACL)의 다른 규칙 구성, 보호 팩(웹 ACL)의 기본 작업 설정 등 다양한 요인에 따라 달라집니다.

**사용자가 소유하지 않는 규칙 그룹의 과대 처리**  
구성 요소 크기 및 개수 제한은 사용자가 보호 팩(웹 ACL)에서 사용하는 모든 규칙에 적용됩니다. 여기에는 관리형 규칙 그룹과 다른 계정이 사용자와 공유하는 규칙 그룹에서 사용자가 사용하지만 관리하지 않는 모든 규칙이 포함됩니다.

관리하지 않는 규칙 그룹을 사용하는 경우 제한된 요청 구성 요소를 검사하지만 사용자가 원하는 처리 방식으로 과대 콘텐츠를 처리하지 않는 규칙이 규칙 그룹에 있을 수 있습니다. AWS 관리형 규칙이 과대 구성 요소를 관리하는 방법에 대한 자세한 내용은 섹션을 참조하세요[AWS 관리형 규칙 규칙 그룹 목록](aws-managed-rule-groups-list.md). 다른 규칙 그룹에 대한 자세한 내용은 규칙 그룹 공급자에게 문의하십시오.

**보호 팩(웹 ACL)에서 과대 구성 요소를 관리하기 위한 지침**  
보호 팩(웹 ACL)에서 과대 구성 요소를 처리하는 방법은 요청 구성 요소 콘텐츠의 예상 크기, 보호 팩(웹 ACL)의 기본 요청 처리, 보호 팩(웹 ACL)의 다른 규칙이 요청을 일치시키고 처리하는 방법 등 여러 요인에 따라 달라질 수 있습니다.

과대 웹 요청 구성 요소를 관리하기 위한 일반 지침은 다음과 같습니다.
+ 과대 구성 요소 콘텐츠를 포함하는 일부 요청을 허용해야 하는 경우 가능하면 그러한 요청만 명시적으로 허용하는 규칙을 추가합니다. 동일한 구성 요소 유형을 검사하는 다른 규칙보다 먼저 실행되도록 보호 팩(웹 ACL)에서 해당 규칙의 우선 순위를 지정합니다. 이 접근 방식을 사용하면를 사용하여가 보호된 리소스에 전달 AWS WAF 하도록 허용하는 과대 구성 요소의 전체 콘텐츠를 검사할 수 없습니다.
+ 다른 모든 요청의 경우 제한을 초과하는 요청을 차단하여 추가 바이트가 전달되지 않도록 할 수 있습니다.
  + **규칙 및 규칙 그룹** - 크기 제한이 있는 구성 요소를 검사하는 규칙에서 제한을 초과하는 요청을 차단하도록 과대 처리를 구성합니다. 예를 들어, 규칙이 특정 헤더 콘텐츠를 포함하는 요청을 차단하는 경우 과대 처리를 과대 헤더 콘텐츠가 있는 요청과 일치하도록 설정합니다. 또는 보호 팩(웹 ACL)이 기본적으로 요청을 차단하고 규칙에서 특정 헤더 콘텐츠를 허용하는 경우, 과대 헤더 콘텐츠가 있는 어떠한 요청과도 일치하지 않도록 규칙의 과대 처리를 구성합니다.
  + **관리하지 않는 규칙 그룹** - 관리하지 않는 규칙 그룹이 과대 요청 구성 요소를 허용하지 않도록 하려면 요청 구성 요소 유형을 검사하고 제한을 초과하는 요청을 차단하는 별도의 규칙을 추가할 수 있습니다. 규칙 그룹보다 먼저 실행되도록 보호 팩(웹 ACL)에서 규칙의 우선 순위를 지정합니다. 예를 들어 본문 검사 규칙을 보호 팩(웹 ACL)에서 실행하기 전에 과대 본문 콘텐츠가 있는 요청을 차단할 수 있습니다. 다음 절차에서 이 규칙 유형을 추가하는 방법을 설명합니다.

## 과대 웹 요청 구성 요소 차단
<a name="waf-oversize-request-components-blocking"></a>

보호 팩(웹 ACL)에 과대 구성 요소가 있는 요청을 차단하는 규칙을 추가할 수 있습니다.

**과대 콘텐츠를 차단하는 규칙을 추가하려면**

1. 보호 팩(웹 ACL)을 만들거나 편집할 때 규칙 설정에서 **규칙 추가**, **자체 규칙 및 규칙 그룹 추가**, **규칙 빌더**, **규칙 시각 편집기**를 순서대로 선택합니다. 보호 팩(웹 ACL) 생성 또는 편집에 대한 지침은 [에서 웹 트래픽 지표 보기 AWS WAF](web-acl-working-with.md) 섹션을 참조하세요.

1. 규칙의 이름을 입력하고 **유형** 설정은 **일반 규칙**으로 그대로 둡니다.

1. 다음 일치 설정을 기본값에서 다른 값ㅇ로 변경합니다.

   1. **명령문**에서 **검사**의 드롭다운을 열고 필요한 웹 요청 구성 요소(**본문**, **헤더** 또는 **쿠키**)를 선택합니다.

   1. **검색 유형**에서 **크기 초과**를 선택합니다.

   1. **크기**에는 구성 요소 유형의 최소 크기 이상인 숫자를 입력합니다. 헤더 및 쿠키에 `8192`를 입력합니다. Application Load Balancer 또는 AWS AppSync 보호 팩(웹 ACLs)에서 본문에를 입력합니다`8192`. CloudFront, API Gateway, Amazon Cognito, App Runner 또는 Verified Access 보호 팩(웹 ACL) 본문에 기본 본문 크기 제한을 사용하는 경우 `16384`를 입력합니다. 그렇지 않으면 보호 팩(웹 ACL)에 대해 정의한 본문 크기 제한을 입력합니다.

   1. **과대를 처리하려면** **일치**를 선택합니다.

1. **작업**에서 **차단**을 선택합니다.

1. **규칙 추가**를 선택합니다.

1. 규칙을 추가한 후에는 **규칙 우선순위 설정** 페이지에서 해당 규칙을 동일한 구성 요소 유형을 검사하는 보호 팩(웹 ACL)의 모든 규칙 또는 규칙 그룹 위로 이동합니다. 이렇게 하면 새 규칙의 숫자 우선 순위 설정이 낮아져 AWS WAF 가 먼저 평가합니다. 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 단원을 참조하십시오.

# 에서 지원되는 정규식 구문 AWS WAF
<a name="waf-regex-pattern-support"></a>

AWS WAF 는 PCRE 라이브러리에서 사용하는 정규식 패턴 구문을 지원합니다`libpcre`. 이 라이브러리는 [PCRE - Perl 호환 정규식](http://www.pcre.org/)에 문서화되어 있습니다.

AWS WAF 는 라이브러리의 모든 구문을 지원하지 않습니다. 예를 들어 일부 제로 너비 어설션을 지원하지만, 모두 지원되는 것은 아닙니다. 지원되는 구문의 전체 목록은 제공하지 않습니다. 그러나 유효하지 않은 정규식 패턴을 제공하거나 지원되지 않는 구문을 사용하는 경우 AWS WAF API는 실패를 보고합니다.

AWS WAF 는 다음 PCRE 패턴을 지원하지 않습니다.
+ 역참조 및 캡처 하위식
+ 서브루틴 참조 및 재귀 패턴
+ 조건 패턴
+ 백트래킹 제어 명령어
+ \$1C 단일 바이트 명령
+ \$1R 줄 바꿈 일치 명령
+ \$1K 일치 시작 초기화 명령
+ 설명선 및 포함된 코드
+ 원자 그룹 지정 및 소유 수량자

# 의 IP 세트 및 정규식 패턴 세트 AWS WAF
<a name="waf-referenced-set-managing"></a>

이 섹션에서는 IP 집합 및 정규식 패턴 집합에 대한 주제를 소개합니다.

AWS WAF 는 규칙에서 참조하여 사용하는 세트에 더 복잡한 정보를 저장합니다. 이러한 각 집합에는 이름이 있으며 생성 시 Amazon 리소스 이름(ARN)이 할당됩니다. 규칙 문 내부에서 이러한 집합을 관리할 수 있으며. 콘솔 탐색 창을 통해 자체적으로 이를 액세스하고 관리할 수 있습니다.

규칙 그룹 또는 보호 팩(웹 ACL)에서 관리형 세트를 사용할 수 있습니다.
+ IP 집합을 사용하려면 [IP 집합 일치 규칙 문](waf-rule-statement-type-ipset-match.md) 섹션을 참조하세요.
+ 정규식 패턴 집합을 사용하려면 [정규식 패턴 집합 일치 규칙 문](waf-rule-statement-type-regex-pattern-set-match.md) 섹션을 참조하세요.

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경하면 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 집합에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

**Topics**
+ [에서 IP 세트 생성 및 관리 AWS WAF](waf-ip-set-managing.md)
+ [에서 정규식 패턴 세트 생성 및 관리 AWS WAF](waf-regex-pattern-set-managing.md)

# 에서 IP 세트 생성 및 관리 AWS WAF
<a name="waf-ip-set-managing"></a>

IP 집합은 규칙 문에서 함께 사용할 IP 주소 및 IP 주소 범위의 모음을 제공합니다. IP 세트는 AWS 리소스입니다.

보호 팩(웹 ACL) 또는 규칙 그룹에서 IP 세트를 사용하려면 먼저 주소 사양`IPSet`과 함께 AWS 리소스를 생성합니다. 그런 다음 IP 세트 규칙 문을 보호 팩(웹 ACL) 또는 규칙 그룹에 추가할 때 해당 세트를 참조합니다.

## IP 집합 생성
<a name="waf-ip-set-creating"></a>

이 단원의 절차에 따라 새 IP 집합을 생성합니다.

**참고**  
이 섹션의 절차 외에도 보호 팩(웹 ACL) 또는 규칙 그룹에 IP 일치 규칙을 추가할 때 새 IP 세트를 추가할 수 있는 옵션이 있습니다. 이 옵션을 선택하면 이 절차에 필요한 설정과 동일한 설정을 제공해야 합니다.

**IP 집합을 생성하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **IP sets(IP 집합)**과 **Create IP set(IP 집합 생성)**을 차례로 선택합니다.

1. IP 집합의 이름과 설명을 입력합니다. 이름과 설명은 사용 시 집합을 식별하는데 사용됩니다.
**참고**  
IP 집합을 생성한 후에는 이름을 변경할 수 없습니다.

1. **리전**에서 글로벌(CloudFront)을 선택하거나 IP 집합을 저장할 리전을 선택합니다. 리전 리소스를 보호하는 보호 팩(웹 ACL)에서만 리전 IP 세트를 사용할 수 있습니다. Amazon CloudFront 배포를 보호하는 보호 팩(웹 ACL)에서 IP 세트를 사용하려면 Global(CloudFront)을 사용해야 합니다.

1. **IP version(IP 버전)**의 경우 사용할 버전을 선택합니다.

1. **IP 주소** 텍스트 상자에 줄당 하나의 IP 주소 또는 IP 주소 범위를 CIDR 표기법으로 입력합니다.는를 제외한 모든 IPv4 및 IPv6 CIDR 범위를 AWS WAF 지원합니다`/0`. CIDR 표기법에 대한 자세한 내용은 [클래스 없는 도메인 간 라우팅](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)에 대한 Wikipedia 문서를 참조하세요.

   여기 몇 가지 예가 있습니다:
   + IPv4 주소 192.0.2.44를 지정하려면 [**192.0.2.44/32**]를 입력합니다.
   + IPv6 주소 2620:0:2d0:200:0:0:0:0을 지정하려면 **2620:0:2d0:200:0:0:0:0/128**을 입력합니다.
   + 192.0.2.0부터 192.0.2.255까지의 IPv4 주소 범위를 지정하려면 [**192.0.2.0/24**]를 입력합니다.
   + 2620:0:2d0:200:0:0:0:0부터 2620:0:2d0:200:ffff:ffff:ffff:ffff까지의 IPv6 주소 범위를 지정하려면 [**2620:0:2d0:200::/64**]를 입력합니다.

1. IP 집합에 대한 설정을 검토하고 **Create IP set(IP 집합 생성)**을 선택합니다.

## IP 집합 삭제
<a name="waf-ip-set-deleting"></a>

참조된 집합을 삭제하려면 이 섹션의 지침을 따르세요.

**참조된 세트 및 규칙 그룹 삭제**  
IP 세트, 정규식 패턴 세트 또는 규칙 그룹과 같이 보호 팩(웹 ACL)에서 사용할 수 있는 개체를 삭제하면는 개체가 현재 보호 팩(웹 ACL)에서 사용 중인지 AWS WAF 확인합니다. 사용 중인 것으로 확인되면 AWS WAF 경고합니다. AWS WAF 는 거의 항상 개체가 보호 팩(웹 ACL)에서 참조되고 있는지 확인할 수 있습니다. 그러나 드물지만 이러한 작업을 수행할 수 없는 경우도 있습니다. 현재 아무 것도 엔터티를 사용하고 있지 않음을 확인해야 하는 경우에는 해당 엔터티를 삭제하기 전에 해당 보호 팩(웹 ACL)에서 확인합니다. 엔티티가 참조된 세트인 경우에도 어떤 규칙 그룹도 해당 엔티티를 사용하고 있지 않음을 확인합니다.

**IP 세트 삭제**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **IP sets(IP 집합)**를 선택합니다.

1. 삭제하려는 IP 집합을 선택하고 **삭제**를 선택합니다.

# 에서 정규식 패턴 세트 생성 및 관리 AWS WAF
<a name="waf-regex-pattern-set-managing"></a>

정규식 패턴 집합은 규칙 문에서 함께 사용할 정규 표현식 모음을 제공합니다. 정규식 패턴 세트는 AWS 리소스입니다.

보호 팩(웹 ACL) 또는 규칙 그룹에서 정규식 패턴 세트를 사용하려면 먼저 정규식 패턴 사양`RegexPatternSet`으로 AWS 리소스를 생성합니다. 그런 다음 정규식 패턴 세트 규칙 문을 보호 팩(웹 ACL) 또는 규칙 그룹에 추가할 때 해당 세트를 참조합니다. 정규식 패턴 집합에는 하나 이상의 정규식 패턴이 포함되어야 합니다.

정규식 패턴 집합에 둘 이상의 정규식 패턴이 포함되어 있으면 규칙에서 사용될 때 패턴 일치가 `OR` 로직과 결합됩니다. 즉, 요청 구성 요소가 집합의 패턴 중 하나와 일치하는 경우 웹 요청은 패턴 집합 규칙 문과 일치하게 됩니다.

AWS WAF 는 일부 예외를 `libpcre` 제외하고 PCRE 라이브러리에서 사용하는 패턴 구문을 지원합니다. 이 라이브러리는 [PCRE - Perl 호환 정규식](http://www.pcre.org/)에 문서화되어 있습니다. AWS WAF 지원에 대한 자세한 내용은 섹션을 참조하세요[에서 지원되는 정규식 구문 AWS WAF](waf-regex-pattern-support.md).

## 정규식 패턴 집합 생성
<a name="waf-regex-pattern-set-creating"></a>

이 단원의 절차에 따라 새 정규식 패턴 집합을 생성합니다.

**정규식 패턴 집합을 생성하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **정규식 패턴 집합**을 선택한 다음 **정규식 패턴 집합 생성**을 선택합니다.

1. 정규식 패턴 집합의 이름과 설명을 입력합니다. 집합을 사용하고자 할 때 이름과 설명을 사용해 식별합니다.
**참고**  
정규식 패턴 집합을 생성한 후에는 이름을 변경할 수 없습니다.

1. **리전**에서 글로벌(CloudFront)을 선택하거나 정규식 패턴 집합을 저장할 리전을 선택합니다. 리전 리소스를 보호하는 보호 팩(웹 ACL)에서만 리전 정규식 패턴 세트를 사용할 수 있습니다. Amazon CloudFront 배포를 보호하는 보호 팩(웹 ACL)에서 정규식 패턴 세트를 사용하려면 글로벌(CloudFront)을 사용해야 합니다.

1. **정규 표현식** 텍스트 상자에 한 줄당 하나의 정규식 패턴을 입력합니다.

   예를 들어, 정규식 `I[a@]mAB[a@]dRequest`는 `IamABadRequest`, `IamAB@dRequest`, `I@mABadRequest` 및 `I@mAB@dRequest` 문자열과 일치합니다.

   AWS WAF 는 일부 예외를 `libpcre` 제외하고 PCRE 라이브러리에서 사용하는 패턴 구문을 지원합니다. 이 라이브러리는 [PCRE - Perl 호환 정규식](http://www.pcre.org/)에 문서화되어 있습니다. AWS WAF 지원에 대한 자세한 내용은 섹션을 참조하세요[에서 지원되는 정규식 구문 AWS WAF](waf-regex-pattern-support.md).

1. 정규식 패턴 집합에 대한 설정을 검토하고 **정규식 패턴 집합 생성**을 선택합니다.

## 정규식 패턴 집합 삭제
<a name="waf-regex-pattern-set-deleting"></a>

참조된 집합을 삭제하려면 이 섹션의 지침을 따르세요.

**참조된 세트 및 규칙 그룹 삭제**  
IP 세트, 정규식 패턴 세트 또는 규칙 그룹과 같이 보호 팩(웹 ACL)에서 사용할 수 있는 개체를 삭제하면는 개체가 현재 보호 팩(웹 ACL)에서 사용 중인지 AWS WAF 확인합니다. 사용 중인 것으로 확인되면 AWS WAF 경고합니다. AWS WAF 는 거의 항상 개체가 보호 팩(웹 ACL)에서 참조되고 있는지 확인할 수 있습니다. 그러나 드물지만 이러한 작업을 수행할 수 없는 경우도 있습니다. 현재 아무 것도 엔터티를 사용하고 있지 않음을 확인해야 하는 경우에는 해당 엔터티를 삭제하기 전에 해당 보호 팩(웹 ACL)에서 확인합니다. 엔티티가 참조된 세트인 경우에도 어떤 규칙 그룹도 해당 엔티티를 사용하고 있지 않음을 확인합니다.

**정규식 패턴 세트 삭제**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **정규식 패턴 집합**을 선택합니다.

1. 삭제하려는 정규식 패턴 집합을 선택하고 **삭제**를 선택합니다.

# 의 사용자 지정 웹 요청 및 응답 AWS WAF
<a name="waf-custom-request-response"></a>

이 섹션에서는 AWS WAF 규칙 작업 및 기본 보호 팩(웹 ACL) 작업에 사용자 지정 웹 요청 및 응답 처리 동작을 추가하는 방법을 설명합니다. 연결된 작업이 적용될 때마다 사용자 지정 설정이 적용됩니다.

다음과 같은 방법으로 웹 요청 및 응답을 사용자 지정할 수 있습니다.
+ Allow, Count, CAPTCHA 및 Challenge 작업을 사용하여 웹 요청에 사용자 지정 헤더를 삽입할 수 있습니다. AWS WAF 에서 웹 요청을 보호된 리소스에 전달할 때 해당 요청에 원래 요청 전체와 삽입한 사용자 지정 헤더가 포함됩니다. CAPTCHA 및 Challenge 작업의 경우 AWS WAF 는 요청이 CAPTCHA 또는 챌린지 토큰 검사를 통과하는 경우에만 사용자 지정을 적용합니다.
+ Block 작업을 사용하면 응답 코드, 헤더, 본문이 포함된 완전한 사용자 지정 응답을 정의할 수 있습니다. 보호된 리소스는에서 제공하는 사용자 지정 응답을 사용하여 요청에 응답합니다 AWS WAF. 사용자 지정 응답은 `403 (Forbidden)`의 기본 Block 작업 응답을 대체합니다.

**사용자 지정할 수 있는 작업 설정**  
다음 작업 설정을 정의할 때 사용자 지정 요청 또는 응답을 지정할 수 있습니다.
+ 규칙 작업. 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 단원을 참조하세요.
+ 보호 팩(웹 ACL)에 대한 기본 작업입니다. 자세한 내용은 [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md) 단원을 참조하세요.

**사용자 지정할 수 없는 작업 설정**  
보호 팩(웹 ACL)에서 사용하는 규칙 그룹에 대한 재정의 작업에서는 사용자 지정 요청 처리를 지정할 수 *없습니다*. [에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF](web-acl-processing.md)을(를) 참조하세요. [에서 관리형 규칙 그룹 문 사용 AWS WAF](waf-rule-statement-type-managed-rule-group.md) 및 [에서 규칙 그룹 문 사용 AWS WAF](waf-rule-statement-type-rule-group.md)도 참조하세요.

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경하면 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 세트에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

**사용자 지정 요청 및 응답 사용 제한**  
AWS WAF 는 사용자 지정 요청 및 응답 사용에 대한 최대 설정을 정의합니다. 예: 보호 팩(웹 ACL) 또는 규칙 그룹당 최대 요청 헤더 수, 단일 사용자 지정 응답 정의의 최대 사용자 지정 헤더 수. 자세한 내용은 [AWS WAF 할당량](limits.md) 섹션을 참조하세요.

**Topics**
+ [차단되지 않은 작업에 대해 사용자 지정 요청 헤더 삽입](customizing-the-incoming-request.md)
+ [Block 작업에 대한 사용자 지정 응답 전송](customizing-the-response-for-blocked-requests.md)
+ [사용자 지정 응답에 지원되는 상태 코드](customizing-the-response-status-codes.md)

# 차단되지 않은 작업에 대해 사용자 지정 요청 헤더 삽입
<a name="customizing-the-incoming-request"></a>

이 섹션에서는 규칙 작업이 요청을 차단하지 않을 때에 사용자 지정 헤더를 원래 HTTP 요청에 AWS WAF 삽입하도록 지시하는 방법을 설명합니다. 이 옵션을 사용하면 요청에만 추가할 수 있습니다. 원본 요청의 어떤 부분도 수정하거나 교체할 수 없습니다. 사용자 지정 헤더 삽입의 사용은 예를 들면, 삽입된 헤더에 따라 요청을 다르게 처리하도록 다운스트림 애플리케이션에 신호를 보내는 경우나 분석을 위해 요청에 플래그를 지정하는 경우입니다.

**중요**  
이 옵션은 Allow, Count, CAPTCHA 및 Challenge 규칙 작업과 Allow로 설정된 보호 팩(웹 ACL) 기본 작업에 적용됩니다. 규칙 작업에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요. 기본 보호 팩(웹 ACL) 작업에 대한 자세한 내용은 [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md) 섹션을 참조하세요.

## 사용자 지정 요청 헤더 이름 사용 시 고려 사항
<a name="using-custom-request-header-names"></a>

**요청 헤더에 추가된 접두사**  
AWS WAF 는 요청에 이미 있는 헤더와의 혼동을 방지하기 `x-amzn-waf-`위해 로 삽입하는 모든 요청 헤더를 접두사로 지정합니다. 예를 들어 헤더 이름를 지정하면가 헤더를 `sample` AWS WAF 삽입합니다`x-amzn-waf-sample`.

**중요**  
보안 관행으로 헤더가 이미 `x-amzn-waf-`로 시작하는 요청을 차단하는 문자열 일치 규칙을 추가할 수 있습니다. 이렇게 하면 사용자 지정 요청 헤더를 처리할 때가 AWS WAF 삽입한 `x-amzn-waf-` 접두사 문자열을 모방하는 비AWS WAF 소스의 요청이 차단됩니다.

다음 예제에서는 `x-amzn-waf-` 접두사가 삽입되지 않은 트래픽을 차단하도록 구성된 문자열 일치 규칙을 보여줍니다 AWS WAF.

```
    "Rules": [
        {
          "Name": "CustomHeader",
          "Priority": 0,
          "Statement": {
            "ByteMatchStatement": {
              "SearchString": " x-amzn-waf-",
              "FieldToMatch": {
                "Headers": {
                  "MatchPattern": {
                    "All": {}
                  },
                  "MatchScope": "KEY",
                  "OversizeHandling": "MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": 0,
                  "Type": "NONE"
                }
              ],
              "PositionalConstraint": "STARTS_WITH"
            }
          },
          "Action": {
            "Block": {}
          },
          "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "CustomHeader"
          }
        }
      ]
```

문자열 일치 규칙 사용에 대한 자세한 내용은 [문자열 일치 규칙 문](waf-rule-statement-type-string-match.md) 섹션을 참조하세요.

**이름이 같은 헤더**  
요청에 삽입 중인 것과 동일한 이름의 헤더가 이미 있는 경우 AWS WAF 는 헤더를 AWS WAF 덮어씁니다. 따라서 이름이 동일한 여러 규칙에서 헤더를 정의하는 경우 요청을 검사하고 일치하는 항목을 찾는 마지막 규칙에 헤더가 추가되고 이전 규칙에는 헤더가 추가되지 않습니다.

## 비종료 규칙 작업이 포함된 사용자 지정 헤더 사용
<a name="custom-request-header-non-terminating-rule-actions"></a>

Allow 작업과 달리 Count 작업은 보호 팩(웹 ACL)의 나머지 규칙을 사용하여 웹 요청을 AWS WAF 처리하는 것을 중지하지 않습니다. 마찬가지로 CAPTCHA 및에서 요청 토큰이 유효한 것으로 Challenge 확인되면 이러한 작업은 웹 요청 AWS WAF 처리를 중지하지 않습니다. 따라서 이러한 작업 중 하나와 함께 규칙을 사용하여 사용자 지정 헤더를 삽입하면 후속 규칙에서도 사용자 지정 헤더가 삽입될 수 있습니다. 규칙 작업 동작에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

예를 들어 규칙의 우선 순위가 다음과 같다고 가정해 보겠습니다.

1. Count 작업과 `RuleAHeader` 이름의 사용자 지정 헤더가 있는 RuleA.

1. Allow 작업과 `RuleBHeader` 이름의 사용자 지정 헤더가 있는 RuleB.

요청이 RuleA 및 RuleB와 모두 일치하는 경우 `x-amzn-waf-RuleBHeader`는 헤더 `x-amzn-waf-RuleAHeader` 및를 AWS WAF 삽입한 다음 해당 요청을 보호된 리소스로 전달합니다.

AWS WAF 는 요청 검사가 완료되면 사용자 지정 헤더를 웹 요청에 삽입합니다. 따라서 Count로 설정된 작업을 포함하는 규칙과 함께 사용자 지정 요청 처리를 사용하는 경우 추가하는 사용자 지정 헤더는 후속 규칙에서 검사되지 않습니다.

## 사용자 지정 요청 처리 예제
<a name="example-custom-request-handling"></a>

규칙의 작업 또는 보호 팩(웹 ACL)의 기본 작업에 대한 사용자 지정 요청 처리를 정의합니다. 다음 목록은 보호 팩(웹 ACL)의 기본 작업에 추가된 사용자 지정 처리를 위한 JSON을 보여줍니다.

```
{
 "Name": "SampleWebACL",
 "Scope": "REGIONAL",
 "DefaultAction": {
  "Allow": {
   "CustomRequestHandling": {
    "InsertHeaders": [
     {
      "Name": "fruit",
      "Value": "watermelon"
     },
     {
      "Name": "pie",
      "Value": "apple"
     }
    ]
   }
  }
 },
 "Description": "Sample protection pack (web ACL) with custom request handling configured for default action.",
 "Rules": [],
 "VisibilityConfig": {
  "SampledRequestsEnabled": true,
  "CloudWatchMetricsEnabled": true,
  "MetricName": "SampleWebACL"
 }
}
```

# Block 작업에 대한 사용자 지정 응답 전송
<a name="customizing-the-response-for-blocked-requests"></a>

이 섹션에서는에 로 설정된 규칙 작업 또는 보호 팩(웹 ACL) 기본 작업에 대한 사용자 지정 HTTP 응답을 클라이언트로 다시 AWS WAF 보내도록 지시하는 방법을 설명합니다Block. 규칙 작업에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요. 기본 보호 팩(웹 ACL) 작업에 대한 자세한 내용은 [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md) 섹션을 참조하세요.

Block 작업에 대한 사용자 지정 응답 처리를 정의할 때는 상태 코드, 헤더 및 응답 본문을 정의합니다. 사용할 수 있는 상태 코드 목록은 다음 섹션을 AWS WAF참조하세요[사용자 지정 응답에 지원되는 상태 코드](customizing-the-response-status-codes.md).

**사용 사례**  
사용자 지정 응답의 사용 예는 다음과 같습니다.
+ 기본 상태 코드가 아닌 상태 코드를 다시 클라이언트로 보내는 경우
+ 클라이언트에 사용자 지정 응답을 다시 보냅니다. `content-type`이라는 이름을 제외하고 모든 헤더 이름을 지정할 수 있습니다.
+ 정적 오류 페이지를 클라이언트로 다시 보내는 경우
+ 클라이언트를 다른 URL로 리디렉션하는 경우. 이렇게 하려면 `3xx` 리디렉션 상태 코드(예: `301 (Moved Permanently)` 또는`302 (Found)`) 중 하나를 지정한 다음 새 URL을 포함하는 `Location` 이름이 지정된 새 헤더를 지정합니다.

**보호된 리소스에서 정의한 응답과의 상호 작용**  
작업에 지정한 AWS WAF Block 사용자 지정 응답은 보호된 리소스에서 정의한 모든 응답 사양보다 우선합니다.

로 보호하는 AWS 리소스의 호스트 서비스는 웹 요청에 대한 사용자 지정 응답 처리를 허용할 AWS WAF 수 있습니다. 예는 다음과 같습니다.
+ Amazon CloudFront를 사용하면 상태 코드를 기반으로 오류 페이지를 사용자 지정할 수 있습니다. 자세한 내용을 알아보려면 *Amazon CloudFront 개발자 안내서*의 [사용자 지정 오류 응답 생성](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html) 섹션을 참조하세요.
+ Amazon API Gateway를 사용하면 게이트웨이에 대한 응답 및 상태 코드를 정의할 수 있습니다. 자세한 내용을 알아보려면 *Amazon API Gateway 개발자 안내서*의 [API Gatewaydml 게이트웨이 응답](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-gatewayResponse-definition.html) 섹션을 참조하세요.

사용자 AWS WAF 지정 응답 설정을 보호된 AWS 리소스의 사용자 지정 응답 설정과 결합할 수 없습니다. 개별 웹 요청에 대한 응답 사양은 전적으로 AWS WAF 에서 또는 전적으로 보호된 리소스에서 가져옵니다.

가 AWS WAF 차단하는 웹 요청의 경우 다음은 우선 순위입니다.

1. **AWS WAF 사용자 지정 응답** - 작업에 사용자 지정 응답이 활성화된 경우 AWS WAF Block 보호된 리소스는 구성된 사용자 지정 응답을 클라이언트로 다시 보냅니다. 보호된 리소스 자체에 정의했을 수 있는 응답 설정은 아무런 영향을 미치지 않습니다.

1. **보호된 리소스에 정의된 사용자 지정 응답** - 그렇지 않고 보호된 리소스에 사용자 지정 응답 설정이 지정된 경우 보호된 리소스는 이러한 설정을 사용하여 클라이언트에 응답합니다.

1. **AWS WAF 기본 Block 응답** - 그렇지 않으면 보호된 리소스가 AWS WAF 기본 응답 로 클라이언트에 Block 응답합니다`403 (Forbidden)`.

가 AWS WAF 허용하는 웹 요청의 경우 보호된 리소스의 구성에 따라 클라이언트로 다시 보내는 응답이 결정됩니다. 허용된 요청에 AWS WAF 대해에서 응답 설정을 구성할 수 없습니다. 허용된 요청에 AWS WAF 대해에서 구성할 수 있는 유일한 사용자 지정은 요청을 보호된 리소스로 전달하기 전에 원래 요청에 사용자 지정 헤더를 삽입하는 것입니다. 이 내용은 이전 섹션 [차단되지 않은 작업에 대해 사용자 지정 요청 헤더 삽입](customizing-the-incoming-request.md)에 설명되어 있습니다.

**사용자 지정 응답 헤더**  
`content-type`이라는 이름을 제외하고 모든 헤더 이름을 지정할 수 있습니다.

**사용자 지정 응답 본문**  
사용자 지정 응답을 사용하려는 보호 팩(웹 ACL) 또는 규칙 그룹의 컨텍스트 내에서 사용자 지정 응답의 본문을 정의합니다. 사용자 지정 응답 본문을 정의한 후에는 이 본문을 생성했던 보호 팩(웹 ACL) 또는 규칙 그룹 어디에서든 해당 본문을 참조로 사용할 수 있습니다. 개별 Block 작업 설정에서 사용할 사용자 지정 본문을 참조하고 사용자 지정 응답의 상태 코드와 헤더를 정의합니다.

콘솔에서 사용자 지정 응답을 생성할 때 이미 정의한 응답 본문 중에서 선택하거나 새 본문을 작성할 수 있습니다. 콘솔 외부에서는 보호 팩(웹 ACL) 또는 규칙 그룹 수준에서 사용자 지정 응답 본문을 정의한 다음 보호 팩(웹 ACL) 또는 규칙 그룹 내의 작업 설정에서 해당 본문을 참조합니다. 이 항목은 다음 섹션의 JSON 예제에 나와 있습니다.

**사용자 지정 응답 예제**  
다음 예제는 사용자 지정 응답 설정이 있는 규칙 그룹의 JSON 목록입니다. 사용자 지정 응답 본문은 전체 규칙 그룹에 대해 정의된 후 규칙 작업에서 키를 사용하여 참조됩니다.

```
{
 "ARN": "test_rulegroup_arn",
 "Capacity": 1,
 
 "CustomResponseBodies": {
  "CustomResponseBodyKey1": {
   "Content": "This is a plain text response body.",
   "ContentType": "TEXT_PLAIN"
  }
 },
 
 "Description": "This is a test rule group.",
 "Id": "test_rulegroup_id",
 "Name": "TestRuleGroup",
 
 "Rules": [
  {
   "Action": {
    "Block": {
     "CustomResponse": {
      "CustomResponseBodyKey": "CustomResponseBodyKey1",
      "ResponseCode": 404,
      "ResponseHeaders": [
       {
        "Name": "BlockActionHeader1Name",
        "Value": "BlockActionHeader1Value"
       }
      ]
     }
    }
   },
   "Name": "GeoMatchRule",
   "Priority": 1,
   "Statement": {
    "GeoMatchStatement": {
     "CountryCodes": [
      "US"
     ]
    }
   },
   "VisibilityConfig": {
    "CloudWatchMetricsEnabled": true,
    "MetricName": "TestRuleGroupReferenceMetric",
    "SampledRequestsEnabled": true
   }
  }
 ],
 "VisibilityConfig": {
  "CloudWatchMetricsEnabled": true,
  "MetricName": "TestRuleGroupMetric",
  "SampledRequestsEnabled": true
 }
}
```

# 사용자 지정 응답에 지원되는 상태 코드
<a name="customizing-the-response-status-codes"></a>

이 섹션에서는 사용자 지정 응답에 사용할 수 있는 상태 코드가 나열됩니다. HTTP 상태 코드에 대한 자세한 내용은 IETF(Internet Engineering Task Force)의 [상태 코드](https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes) 및 Wikipedia의 [HTTP 상태 코드 목록](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)을 참조하세요.

다음은가 사용자 지정 응답에 대해 AWS WAF 지원하는 HTTP 상태 코드입니다.
+ `2xx Successful`
  + `200` – `OK`
  + `201` – `Created`
  + `202` – `Accepted` 
  + `204` – `No Content` 
  + `206` – `Partial Content`
+ `3xx Redirection `
  + `300` – `Multiple Choices`
  + `301` – `Moved Permanently`
  + `302` – `Found`
  + `303` –`See Other`
  + `304` – `Not Modified`
  + `307` – `Temporary Redirect`
  + `308` – `Permanent Redirect`
+ `4xx Client Error `
  + `400` – `Bad Request`
  + `401` – `Unauthorized`
  + `403` – `Forbidden`
  + `404` – `Not Found`
  + `405` – `Method Not Allowed`
  + `408` – `Request Timeout`
  + `409` – `Conflict`
  + `411` – `Length Required`
  + `412` – `Precondition Failed`
  + `413` – `Request Entity Too Large`
  + `414` – `Request-URI Too Long`
  + `415` – `Unsupported Media Type`
  + `416` – `Requested Range Not Satisfiable`
  + `421` – `Misdirected Request`
  + `429` – `Too Many Requests`
+ `5xx Server Error`
  + `500` – `Internal Server Error`
  + `501` – `Not Implemented`
  + `502` – `Bad Gateway`
  + `503` – `Service Unavailable`
  + `504` – `Gateway Timeout`
  + `505` – `HTTP Version Not Supported`

# 의 웹 요청 레이블 지정 AWS WAF
<a name="waf-labels"></a>

이 섹션에서는 AWS WAF 레이블이 무엇인지 설명합니다.

레이블은 규칙이 요청과 일치할 때 규칙에 의해 웹 요청에 추가되는 메타데이터입니다. 추가되면 레이블은 보호 팩(웹 ACL) 평가가 종료될 때까지 요청에서 사용 가능한 상태로 유지됩니다. 레이블 일치 문을 사용하여 보호 팩(웹 ACL) 평가에서 나중에 실행되는 규칙의 레이블에 액세스할 수 있습니다. 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md)을 참조하세요.

웹 요청의 레이블은 Amazon CloudWatch 레이블 지표를 생성합니다. 지표 및 차원 목록은 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요. CloudWatch 및 AWS WAF 콘솔을 통해 지표 및 지표 요약에 액세스하는 방법에 대한 자세한 내용은 [AWS WAF 보호 모니터링 및 튜닝](web-acl-testing-activities.md) 섹션을 참조하세요.

**레이블 사용 사례**  
 AWS WAF 레이블의 일반적인 사용 사례는 다음과 같습니다.
+ **요청에 대한 작업을 수행하기 전에 여러 규칙 문에 대한 웹 요청 평가** - 보호 팩(웹 ACL)의 규칙과 일치하는 항목이 발견되면 규칙 작업이 보호 팩(웹 ACL) 평가를 종료하지 않는 경우 보호 팩(웹 ACL)에 대한 요청을 AWS WAF 계속 평가합니다. 요청을 허용하거나 차단하기로 결정하기 전에 레이블을 사용하여 여러 규칙의 정보를 평가하고 수집할 수 있습니다. 이렇게 하려면 기존 규칙의 작업을 Count로 변경하고 일치하는 요청에 레이블을 추가하도록 구성합니다. 그런 다음 다른 규칙 다음에 실행할 하나 이상의 새 규칙을 추가하고 레이블 일치 조합에 따라 레이블을 평가하고 요청을 관리합니다.
+ **지리적 리전별 웹 요청 관리** - 지리적 일치 규칙만 사용하여 오리진 국가별로 웹 요청을 관리할 수 있습니다. 위치를 리전 수준으로 세밀하게 조정하려면 Count 작업 뒤에 레이블 일치 규칙이 오는 지역 일치 규칙을 사용합니다. 지역 일치 규칙에 대한 자세한 내용은 [지리적 일치 규칙 문](waf-rule-statement-type-geo-match.md) 섹션을 참조하세요.
+ **여러 규칙에서 로직 재사용** - 여러 규칙에서 동일한 로직을 재사용해야 하는 경우 레이블을 사용하여 로직을 단일 소싱하고 결과만 테스트할 수 있습니다. 중첩 규칙 명령문의 공통 하위 집합을 사용하는 복잡한 규칙이 여러 개 있는 경우 복잡한 규칙 전체에 공통 규칙 집합을 복제하면 시간이 많이 걸리고 오류가 발생하기 쉽습니다. 레이블을 사용하면 일치하는 요청의 수를 계산하고 이들 요청에 레이블을 추가하는 공통 규칙 하위 집합을 사용하여 새 규칙을 만들 수 있습니다. 새 규칙을 보호 팩(웹 ACL)에 추가하여 원래의 복잡한 규칙보다 먼저 실행되도록 합니다. 그런 다음 원래 규칙에서 공유된 규칙 하위 집합을 레이블을 확인하는 단일 규칙으로 대체합니다.

  예를 들어 로그인 경로에만 적용하려는 규칙이 여러 개 있다고 가정해 보겠습니다. 각 규칙에 잠재적 로그인 경로와 일치시킬 동일한 로직을 지정하는 대신, 해당 로직을 포함하는 새 규칙 하나를 구현할 수 있습니다. 새 규칙에서 일치하는 요청에 레이블을 추가하여 로그인 경로에 대한 요청임을 나타냅니다. 보호 팩(웹 ACL)에서 이 새 규칙에 원래 규칙보다 낮은 숫자 우선 순위 설정을 지정하여 먼저 실행되도록 합니다. 그런 다음 원래 규칙에서 공유 로직을 레이블 유무 검사로 대체합니다. 우선 순위 설정에 대한 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 섹션을 참조하세요.
+ **규칙 그룹의 규칙에 대한 예외 생성** - 이 옵션은 보거나 변경할 수 없는 관리형 규칙 그룹에 특히 유용합니다. 많은 관리형 규칙 그룹 규칙은 일치하는 웹 요청에 레이블을 추가하여 일치하는 규칙을 표시하고 해당 일치에 대한 추가 정보를 제공합니다. 요청에 레이블을 추가하는 규칙 그룹을 사용하는 경우 일치 항목 수를 계산하도록 규칙 그룹 규칙을 재정의하고 나서, 규칙 그룹 이후에 규칙 그룹 레이블에 기반하여 웹 요청을 처리하는 규칙을 실행합니다. 모든 AWS 관리형 규칙은 일치하는 웹 요청에 레이블을 추가합니다. 자세한 내용은 [AWS 관리형 규칙 규칙 그룹 목록](aws-managed-rule-groups-list.md)의 규칙 설명을 참조하세요.
+ **레이블 지표를 사용하여 트래픽 패턴 모니터링** - 규칙을 통해 추가한 레이블의 지표와 보호 팩(웹 ACL)에서 사용하는 관리형 규칙 그룹에서 추가한 지표에 액세스할 수 있습니다. 모든 AWS 관리형 규칙 그룹은 평가하는 웹 요청에 레이블을 추가합니다. 레이블 지표 및 차원 목록은 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요. CloudWatch와 AWS WAF 콘솔의 보호 팩(웹 ACL) 페이지를 통해 지표 및 지표 요약에 액세스할 수 있습니다. 자세한 내용은 [AWS WAF 보호 모니터링 및 튜닝](web-acl-testing-activities.md) 섹션을 참조하세요.

# 에서 레이블 지정 작동 방식 AWS WAF
<a name="waf-rule-label-overview"></a>

이 섹션에서는 AWS WAF 레이블의 작동 방식을 설명합니다.

규칙이 웹 요청과 일치할 때 규칙에 레이블이 정의된 경우 규칙 평가 종료 시 요청에 레이블을 AWS WAF 추가합니다. 보호 팩(웹 ACL)에서 일치하는 규칙 다음에 평가되는 규칙이 일치하는 규칙에서 추가한 레이블과 일치할 수 있습니다.

**요청에 레이블을 추가하는 요소**  
요청을 평가하는 보호 팩(웹 ACL) 구성 요소는 요청에 레이블을 추가할 수 있습니다.
+ 규칙 그룹 참조 문이 아닌 모든 규칙은 일치하는 웹 요청에 레이블을 추가할 수 있습니다. 레이블 지정 기준은 규칙 정의의 일부이며, 웹 요청이 규칙과 일치하면가 규칙의 레이블을 요청에 AWS WAF 추가합니다. 자세한 내용은 [AWS WAF 레이블을 추가하는 규칙](waf-rule-label-add.md) 단원을 참조하세요.
+ 지역 일치 규칙 문은 결과에 일치하는 문이 있는지 여부와 관계없이 검사하는 모든 요청에 국가 및 리전 레이블을 추가합니다. 자세한 내용은 [지리적 일치 규칙 문](waf-rule-statement-type-geo-match.md) 단원을 참조하세요.
+  AWS WAF 모든에 대한 AWS 관리형 규칙은 검사하는 요청에 레이블을 추가합니다. 이러한 관리형 규칙은 규칙 그룹의 규칙 일치를 기반으로 일부 레이블을 추가하고 지능형 위협 완화 규칙 그룹을 사용할 때 추가되는 토큰 레이블 지정과 같이 관리형 규칙 그룹이 사용하는 AWS 프로세스에 기반하여 또 다른 일부 레이블을 추가합니다. 각 관리형 규칙 그룹에서 추가하는 레이블에 대한 자세한 내용은 [AWS 관리형 규칙 규칙 그룹 목록](aws-managed-rule-groups-list.md) 섹션을 참조하세요.

**가 레이블을 AWS WAF 관리하는 방법**  
AWS WAF 는 규칙의 요청 검사 종료 시 요청에 규칙의 레이블을 추가합니다. 레이블 지정은 작업과 마찬가지로 규칙 일치 활동의 일부입니다.

보호 팩(웹 ACL) 평가가 종료된 후에는 레이블이 웹 요청과 함께 유지되지 않습니다. 규칙에서 추가한 레이블과 다른 규칙을 일치시키려면 규칙 작업에서 보호 팩(웹 ACL)에 의한 웹 요청 평가가 종료되지 않아야 합니다. 규칙 작업은 Count, CAPTCHA 또는 Challenge로 설정해야 합니다. 보호 팩(웹 ACL) 평가가 종료되지 않으면 보호 팩(웹 ACL)의 후속 규칙이 요청에 대해 해당 레이블 일치 조건을 실행할 수 있습니다. 규칙 작업에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

**보호 팩(웹 ACL) 평가 중에 레이블에 액세스**  
추가된 레이블 AWS WAF 은가 보호 팩(웹 ACL)에 대해 요청을 평가하는 한 요청에 계속 사용할 수 있습니다. 보호 팩(웹 ACL)의 모든 규칙은 동일한 보호 팩(웹 ACL)에서 이미 실행된 규칙에 의해 추가된 레이블에 액세스할 수 있습니다. 여기에는 보호 팩(웹 ACL) 내에서 직접 정의된 규칙과 보호 팩(웹 ACL)에서 사용되는 규칙 그룹 안에 정의된 규칙이 포함됩니다.
+ 레이블 일치 문을 사용하여 규칙의 요청 검사 기준에서 레이블을 일치시킬 수 있습니다. 요청에 연결된 모든 레이블과 일치시킬 수 있습니다. 명령문에 대한 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 섹션을 참조하세요.
+ 지리적 일치 문은 일치 여부와 무관하게 레이블을 추가하지만 해당 문의 포함 보호 팩(웹 ACL) 규칙이 요청 평가를 완료한 후에만 사용할 수 있습니다.
  + 단일 규칙(예: `AND` 논리문)을 사용하여 지리적 레이블에 대해 지역 일치 문을 실행하고 나서 레이블 일치 문을 실행할 수는 없습니다. 지역 일치 문이 포함된 규칙 다음에 실행되는 별도의 규칙에 레이블 일치 문을 추가해야 합니다.
  + 속도 기반 규칙 문 또는 관리형 규칙 그룹 참조 문 내에서 지역 일치 문을 범위 축소 문으로 사용하는 경우 포함 규칙 문에서 지역 일치 문이 추가하는 레이블을 검사할 수 없습니다. 속도 기반 규칙 문 또는 규칙 그룹에서 지리적 레이블 지정을 검사해야 하는 경우 이전에 실행되는 별도의 규칙에서 지리적 일치 문을 실행해야 합니다.

**보호 팩(웹 ACL) 평가 외 환경에서 레이블 정보에 액세스**  
보호 팩(웹 ACL) 평가가 종료된 후에는 레이블이 웹 요청과 함께 유지되지 않지만 AWS WAF 는 로그와 지표에 레이블 정보를 기록합니다.
+ AWS WAF 는 단일 요청에서 처음 100개 레이블에 대한 Amazon CloudWatch 지표를 저장합니다. 레이블 지표 액세스에 대한 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 및 [레이블 지표 및 차원](waf-metrics.md#waf-metrics-label) 섹션을 참조하세요.
+ AWS WAF 는 AWS WAF 콘솔의 보호 팩(웹 ACL) 트래픽 개요 대시보드에 CloudWatch 레이블 지표를 요약합니다. 모든 보호 팩(웹 ACL) 페이지에서 대시보드에 액세스할 수 있습니다. 자세한 내용은 [보호 팩(웹 ACL)용 트래픽 개요 대시보드](web-acl-dashboards.md) 단원을 참조하십시오.
+ AWS WAF 는 요청의 처음 100개 레이블에 대한 로그에 레이블을 기록합니다. 레이블을 규칙 동작과 함께 사용하여 AWS WAF 에서 기록하는 로그를 필터링할 수 있습니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 단원을 참조하세요.

보호 팩(웹 ACL) 평가는 웹 요청에 100개 이상의 레이블을 적용하고 100개 이상의 레이블과 일치시킬 수 있지만 로그 및 지표에 처음 100 AWS WAF 개만 기록합니다.

# 의 레이블 구문 및 이름 지정 요구 사항 AWS WAF
<a name="waf-rule-label-requirements"></a>

이 섹션에서는 AWS WAF 레이블을 구성하고 레이블과 일치시키는 방법을 설명합니다.

레이블은 접두사, 선택적 네임스페이스 및 이름으로 구성된 문자열입니다. 레이블의 구성 요소는 콜론으로 구분됩니다. 레이블의 요구 사항 및 특성은 다음과 같습니다.
+ 레이블은 대/소문자를 구분합니다.
+ 각 레이블 네임스페이스 또는 레이블 이름은 최대 128자일 수 있습니다.
+ 레이블에 최대 5개의 네임스페이스를 지정할 수 있습니다.
+ 레이블의 구성 요소는 콜론(`:`)으로 구분됩니다.
+ 레이블에 지정하는 네임스페이스나 이름에는 예약된 문자열(`awswaf`, `aws`, `waf`, `rulegroup`, `webacl`, `regexpatternset`, `ipset` 및 `managed`)을 사용할 수 없습니다.

## 레이블 구문
<a name="waf-rule-label-syntax"></a>

정규화된 레이블에는 접두사, 선택적 네임스페이스 및 레이블 이름이 포함됩니다. 접두사는 레이블을 추가한 규칙의 규칙 그룹 또는 보호 팩(웹 ACL) 컨텍스트를 식별합니다. 네임스페이스는 레이블에 대한 더 많은 컨텍스트를 추가하는 데 사용될 수 있습니다. 레이블 이름은 레이블에 대한 가장 낮은 수준의 세부 정보를 제공합니다. 이는 흔히 요청에 레이블을 추가한 특정 규칙을 나타냅니다.

레이블 접두사는 오리진에 따라 다릅니다.
+ **레이블** - 다음은 보호 팩(웹 ACL) 및 규칙 그룹 규칙에서 생성하는 레이블의 전체 레이블 구문입니다. 엔터티 유형은 `rulegroup` 및 `webacl`입니다.

  ```
  awswaf:<entity owner account id>:<entity type>:<entity name>:<custom namespace>:...:<label name>
  ```
  + 레이블 네임스페이스 접두사: `awswaf:<entity owner account id>:<entity type>:<entity name>:`
  + 사용자 지정 네임스페이스 추가: `<custom namespace>:…:`

  규칙 그룹 또는 보호 팩(웹 ACL)에서 규칙의 레이블을 정의하면 사용자 지정 네임스페이스 문자열과 레이블 이름을 제어할 수 있습니다. 나머지는에 의해 생성됩니다 AWS WAF.는 모든 레이블에 `awswaf` 및 계정 및 보호 팩(웹 ACL) 또는 규칙 그룹 엔터티 설정을 AWS WAF 자동으로 접두사로 붙입니다.
+ **관리형 규칙 그룹 레이블** - 다음은 관리형 규칙 그룹의 규칙을 통해 생성되는 레이블의 전체 레이블 구문입니다.

  ```
  awswaf:managed:<vendor>:<rule group name>:<custom namespace>:...:<label name>
  ```
  + 레이블 네임스페이스 접두사: `awswaf:managed:<vendor>:<rule group name>:`
  + 사용자 지정 네임스페이스 추가: `<custom namespace>:…:`

  모든 AWS 관리형 규칙 규칙 그룹은 레이블을 추가합니다. 관리형 규칙 그룹에 대한 자세한 내용은 [에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md) 단원을 참조하세요.
+ **다른 AWS 프로세스의 레이블** - 이러한 프로세스는 AWS 관리형 규칙 규칙 그룹에서 사용하므로 관리형 규칙 그룹을 사용하여 평가하는 웹 요청에 추가된 것을 볼 수 있습니다. 다음은 관리형 규칙 그룹에서 호출하는 프로세스에 의해 생성되는 레이블의 전체 레이블 구문입니다.

  ```
  awswaf:managed:<process>:<custom namespace>:...:<label name>
  ```
  + 레이블 네임스페이스 접두사: `awswaf:managed:<process>:`
  + 사용자 지정 네임스페이스 추가: `<custom namespace>:…:`

   AWS 프로세스를 호출하는 관리형 규칙 그룹에는 이 유형의 레이블이 나열됩니다. 관리형 규칙 그룹에 대한 자세한 내용은 [에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md) 단원을 참조하세요.

## 규칙의 예제 레이블
<a name="waf-rule-label-examples-rules"></a>

다음 예제 레이블은 111122223333 계정에 속하는 `testRules` 이름이 지정된 규칙 그룹의 규칙을 통해 정의됩니다.

```
awswaf:111122223333:rulegroup:testRules:testNS1:testNS2:LabelNameA
```

```
awswaf:111122223333:rulegroup:testRules:testNS1:LabelNameQ
```

```
awswaf:111122223333:rulegroup:testRules:LabelNameZ
```

다음 목록은 JSON으로 작성된 예제 레이블 사양입니다. 이들 레이블 이름에는 끝 레이블 이름 앞에 사용자 지정 네임스페이스 문자열이 포함됩니다.

```
Rule: {
    Name: "label_rule",
    Statement: {...}
    RuleLabels: [
        Name: "header:encoding:utf8",
        Name: "header:user_agent:firefox"
    ],
    Action: { Count: {} }
}
```

**참고**  
콘솔에서 규칙 JSON 편집기를 통해 이 유형의 목록에 액세스할 수 있습니다.

위의 예제 레이블과 동일한 규칙 그룹 및 계정에서 위 규칙을 실행하면 다음과 같은 정규화된 레이블이 생성됩니다.

```
awswaf:111122223333:rulegroup:testRules:header:encoding:utf8
```

```
awswaf:111122223333:rulegroup:testRules:header:user_agent:firefox
```

## 관리형 규칙 그룹의 레이블 예제
<a name="waf-rule-label-examples-rule-groups"></a>

다음은 AWS 관리형 규칙 규칙 그룹 및 해당 그룹이 호출하는 프로세스의 레이블 예제를 보여줍니다.

```
awswaf:managed:aws:core-rule-set:NoUserAgent_Header
```

```
awswaf:managed:aws:sql-database:SQLiExtendedPatterns_QueryArguments
```

```
awswaf:managed:aws:atp:aggregate:attribute:compromised_credentials
```

```
awswaf:managed:token:accepted
```

# AWS WAF 레이블을 추가하는 규칙
<a name="waf-rule-label-add"></a>

거의 모든 규칙에서 레이블을 정의하고 일치하는 모든 요청에 AWS WAF 적용할 수 있습니다.

다음 규칙 유형은 유일한 예외입니다.
+ **속도 제한 동안에만 속도 기반 규칙 레이블** - 속도 기반 규칙은 AWS WAF에서 특정 집계 인스턴스의 속도를 제한하는 동안에만 이들 인스턴스에 대해 웹 요청에 레이블을 추가합니다. 속도 기반 규칙에 대한 자세한 내용은 [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md) 섹션을 참조하세요.
+ **규칙 그룹 참조 문에서는 레이블 지정이 허용되지 않음** - 콘솔은 규칙 그룹 문 또는 관리형 규칙 그룹 문에 대한 레이블을 허용하지 않습니다. API를 통해 두 명령문 유형의 레이블을 지정하면 유효성 검증 예외가 발생합니다. 이 문 유형에 대한 자세한 내용은 [에서 관리형 규칙 그룹 문 사용 AWS WAF](waf-rule-statement-type-managed-rule-group.md) 및 [에서 규칙 그룹 문 사용 AWS WAF](waf-rule-statement-type-rule-group.md) 섹션을 참조하세요.

**WCU** - 보호 팩(웹 ACL) 또는 규칙 그룹 규칙에서 정의하는 레이블 5개당 1WCU입니다.

**이를 찾을 수 있는 위치**
+ 콘솔의 **규칙 빌더** - 규칙의 **작업** 설정에서 **레이블** 아래에 있습니다.
+ **API 데이터 유형** - `Rule` `RuleLabels`

레이블 네임스페이스 접두사에 추가할 사용자 지정 네임스페이스 문자열과 이름을 지정하여 규칙에 레이블을 정의합니다.는 규칙을 정의하는 컨텍스트에서 접두사를 AWS WAF 파생합니다. 이에 대한 자세한 내용은 [의 레이블 구문 및 이름 지정 요구 사항 AWS WAF](waf-rule-label-requirements.md) 아래의 레이블 구문 정보를 참조하세요.

# AWS WAF 레이블과 일치하는 규칙
<a name="waf-rule-label-match"></a>

이 섹션에서는 레이블 일치 문을 사용하여 웹 요청 레이블을 평가하는 방법을 설명합니다. *레이블*과 일치시키거나(레이블 이름 필요) *네임스페이스*와 일치시킬 수 있습니다(네임스페이스 사양 필요). 레이블 또는 네임스페이스의 경우 사양에 이전 네임스페이스와 접두사를 선택적으로 포함할 수 있습니다. 이 문 유형에 대한 전체적인 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 섹션을 참조하세요.

레이블의 접두사는 레이블 규칙이 정의된 규칙 그룹 또는 보호 팩(웹 ACL)의 컨텍스트를 정의합니다. 규칙의 레이블 일치 문에서 레이블 또는 네임스페이스 일치 문자열이 접두사를 지정하지 않으면는 레이블 일치 규칙에 접두사를 AWS WAF 사용합니다.
+ 보호 팩(웹 ACL) 내에서 직접 정의된 규칙의 레이블에는 보호 팩(웹 ACL) 컨텍스트를 지정하는 접두사가 있습니다.
+ 규칙 그룹 내 규칙의 레이블에는 규칙 그룹 컨텍스트를 지정하는 접두사가 있습니다. 이 컨텍스트는 사용자 고유의 규칙 그룹일 수도 있고, 사용자 대신 관리되는 규칙 그룹일 수도 있습니다.

이에 대한 자세한 내용은 [의 레이블 구문 및 이름 지정 요구 사항 AWS WAF](waf-rule-label-requirements.md) 아래의 레이블 구문을 참조하세요.

**참고**  
일부 관리형 규칙 그룹은 레이블을 추가합니다. `DescribeManagedRuleGroup`을 호출하여 API를 통해 레이블을 검색할 수 있습니다. 레이블은 응답의 `AvailableLabels` 속성에 나열됩니다.

해당 규칙의 컨텍스트와 다른 컨텍스트에 있는 규칙과 일치시키려면 일치 문자열에 접두사를 입력해야 합니다. 예를 들어, 관리형 규칙 그룹의 규칙에서 추가한 레이블과 일치시키려는 경우 일치 문자열이 규칙 그룹의 접두사와 이어서 추가 일치 기준을 지정하는 레이블 일치 문을 사용하여 보호 팩(웹 ACL)에서 규칙을 추가할 수 있습니다.

레이블 일치 문의 일치 문자열에서 레이블 또는 네임스페이스를 지정합니다.
+ **레이블** - 일치 항목에 대한 레이블 사양은 레이블의 끝 부분으로 이루어집니다. 레이블 이름 바로 앞에 원하는 만큼의 연속 네임스페이스를 포함하고 그 뒤에 이름을 지정할 수 있습니다. 사양을 접두사로 시작하여 정규화된 레이블을 제공할 수도 있습니다.

  예제 사양:
  + `testNS1:testNS2:LabelNameA`
  + `awswaf:managed:aws:managed-rule-set:testNS1:testNS2:LabelNameA`
+ **네임스페이스** - 일치 항목에 대한 네임스페이스 사양은 이름을 제외한 레이블 사양의 연속 하위 집합으로 구성됩니다. 접두사를 포함할 수 있으며 네임스페이스 문자열을 하나 이상 포함할 수 있습니다.

  예제 사양: 
  + `testNS1:testNS2:`
  + `awswaf:managed:aws:managed-rule-set:testNS1:`

# AWS WAF 레이블 일치 예제
<a name="waf-rule-label-match-examples"></a>

이 섹션에서는 레이블 일치 규칙 문에 대한 일치 사양의 예를 제공합니다.

**참고**  
이러한 JSON 목록은 콘솔에서 레이블 일치 사양과 함께 규칙을 보호 팩(웹 ACL)에 추가한 다음 규칙을 편집하고 나서 **규칙 JSON 편집기**로 전환하여 생성했습니다. API 또는 명령줄 인터페이스를 통해 규칙 그룹 또는 보호 팩(웹 ACL)에 대한 JSON을 가져올 수도 있습니다.

**Topics**
+ [로컬 레이블과 일치](#waf-rule-label-match-examples-local-label)
+ [다른 컨텍스트의 레이블과 일치](#waf-rule-label-match-examples-label)
+ [관리형 규칙 그룹 레이블과 일치](#waf-rule-label-match-examples-mgd-rg-label)
+ [로컬 네임스페이스와 일치](#waf-rule-label-match-examples-local-namespace)
+ [관리형 규칙 그룹 네임스페이스와 일치](#waf-rule-label-match-examples-mgd-rg-namespace)

## 로컬 레이블과 일치
<a name="waf-rule-label-match-examples-local-label"></a>

다음 JSON 목록은 이 규칙과 동일한 컨텍스트에서 웹 요청에 로컬로 추가된 레이블에 대한 레이블 일치 문을 보여줍니다.

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "LABEL",
            Key: "header:encoding:utf8"
        }
    },
    RuleLabels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

보호 팩(웹 ACL) `testWebACL`에 대해 정의하는 규칙에서 계정 111122223333에 이 일치 문을 사용하면 다음 레이블과 일치하게 됩니다.

```
awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
```

```
awswaf:111122223333:webacl:testWebACL:testNS1:testNS2:header:encoding:utf8
```

레이블 문자열이 정확히 일치하지 않기 때문에 다음 레이블과 일치하지 않을 수 있습니다.

```
awswaf:111122223333:webacl:testWebACL:header:encoding2:utf8
```

컨텍스트가 동일하지 않아 접두사가 일치하지 않으므로 다음 레이블과 일치하지 않을 수 있습니다. 규칙이 정의된 보호 팩(웹 ACL) `testWebACL`에 `productionRules` 규칙 그룹을 추가한 경우에도 마찬가지입니다.

```
awswaf:111122223333:rulegroup:productionRules:header:encoding:utf8
```

## 다른 컨텍스트의 레이블과 일치
<a name="waf-rule-label-match-examples-label"></a>

다음 JSON 목록은 사용자가 만든 규칙 그룹 내 규칙의 레이블과 일치하는 레이블 일치 규칙을 보여줍니다. 이름이 지정된 규칙 그룹에 속하지 않는 보호 팩(웹 ACL)에서 실행되는 모든 규칙의 사양에는 접두사가 필요합니다. 이 예제 레이블 사양은 정확한 레이블만 일치시킵니다.

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "LABEL",
            Key: "awswaf:111122223333:rulegroup:testRules:header:encoding:utf8"
        }
    },
    RuleLabels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

## 관리형 규칙 그룹 레이블과 일치
<a name="waf-rule-label-match-examples-mgd-rg-label"></a>

이는 일치 규칙의 레이블이 아닌 다른 컨텍스트의 레이블을 대상으로 일치시키는 특별한 경우입니다. 다음 JSON 목록은 관리형 규칙 그룹 레이블의 레이블 일치 문을 보여줍니다. 이 경우 레이블 일치 문의 키 설정에 지정된 것과 정확히 일치하는 레이블만 일치시킵니다.

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "LABEL",
            Key: "awswaf:managed:aws:managed-rule-set:header:encoding:utf8"
        }
    },
    RuleLabels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

## 로컬 네임스페이스와 일치
<a name="waf-rule-label-match-examples-local-namespace"></a>

다음 JSON 목록은 로컬 네임스페이스의 레이블 일치 문을 보여줍니다.

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "NAMESPACE",
            Key: "header:encoding:"
        }
    },
    Labels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

로컬 `Label` 일치와 마찬가지로, 보호 팩(웹 ACL) `testWebACL`에 대해 정의하는 규칙에서 계정 111122223333에 이 문을 사용하면 다음 레이블과 일치하게 됩니다.

```
awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
```

계정이 동일하지 않아 접두사가 일치하지 않으므로 다음 레이블과 일치하지 않을 수 있습니다.

```
awswaf:444455556666:webacl:testWebACL:header:encoding:utf8
```

또한 다음과 같이 접두사가 관리형 규칙 그룹에서 적용한 어떤 레이블과도 일치하지 않습니다.

```
awswaf:managed:aws:managed-rule-set:header:encoding:utf8
```

## 관리형 규칙 그룹 네임스페이스와 일치
<a name="waf-rule-label-match-examples-mgd-rg-namespace"></a>

다음 JSON 목록은 관리형 규칙 그룹 네임스페이스의 레이블 일치 문을 보여줍니다. 소유한 규칙 그룹의 경우 규칙 컨텍스트 외부에 있는 네임스페이스와 일치시키려면 접두사도 제공해야 합니다.

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "NAMESPACE",
            Key: "awswaf:managed:aws:managed-rule-set:header:"
        }
    },
    RuleLabels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

이 사양은 다음 예제 레이블과 일치합니다.

```
awswaf:managed:aws:managed-rule-set:header:encoding:utf8
```

```
awswaf:managed:aws:managed-rule-set:header:encoding:unicode
```

다음 레이블과는 일치하지 않습니다.

```
awswaf:managed:aws:managed-rule-set:query:badstring
```

# 의 지능형 위협 완화 AWS WAF
<a name="waf-managed-protections"></a>

이 섹션에서는에서 제공하는 관리형 지능형 위협 완화 기능을 다룹니다 AWS WAF. 이러한 기능은 악성 봇 및 계정 탈취 시도와 같은 위협으로부터 보호하기 위해 구현할 수 있는 전문적인 고급 보호 기능입니다.

**참고**  
여기에 설명된 기능은 사용에 대한 기본 요금 외에 추가 비용이 발생합니다 AWS WAF. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

이 섹션에 제공된 지침은 일반적으로 AWS WAF 웹 ACLs, 규칙 및 규칙 그룹을 생성하고 관리하는 방법을 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다.

**Topics**
+ [의 지능형 위협 완화 옵션 AWS WAF](waf-managed-protections-comparison-table.md)
+ [의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md)
+ [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md)
+ [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)](waf-acfp.md)
+ [AWS WAF 사기 제어 계정 탈취 방지(ATP)](waf-atp.md)
+ [AWS WAF 봇 제어](waf-bot-control.md)
+ [AWS WAF 분산 서비스 거부(DDoS) 방지](waf-anti-ddos.md)
+ [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md)
+ [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md)

# 의 지능형 위협 완화 옵션 AWS WAF
<a name="waf-managed-protections-comparison-table"></a>

이 섹션에서는 지능형 위협 완화를 구현하기 위한 옵션을 자세히 비교합니다.

AWS WAF 는 지능형 위협 완화를 위해 다음과 같은 유형의 보호를 제공합니다.
+ **AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)** - 애플리케이션의 가입 페이지에서 악의적인 계정 생성 시도를 감지하고 관리합니다. 핵심 기능은 ACFP 관리형 규칙 그룹에서 제공합니다. 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)](waf-acfp.md) 및 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 섹션을 참조하세요.
+ **AWS WAF 사기 제어 계정 탈취 방지(ATP)** - 애플리케이션의 로그인 페이지에서 악의적인 탈취 시도를 감지하고 관리합니다. 핵심 기능은 ATP 관리형 규칙 그룹에서 제공합니다. 자세한 내용은 [AWS WAF 사기 제어 계정 탈취 방지(ATP)](waf-atp.md) 및 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 섹션을 참조하세요.
+ **AWS WAF Bot Control** - 친숙한 봇과 악의적인 봇을 모두 식별, 레이블 지정 및 관리합니다. 이 기능은 애플리케이션마다 고유한 서명을 사용하는 일반 봇과 특정 애플리케이션 관련 서명이 있는 대상 봇을 관리합니다. 핵심 기능은 봇 컨트롤 관리형 규칙 그룹에서 제공합니다. 자세한 내용은 [AWS WAF 봇 제어](waf-bot-control.md) 및 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.
+ **클라이언트 애플리케이션 통합 SDKs**- 웹 페이지에서 클라이언트 세션 및 최종 사용자를 검증하고 클라이언트가 웹 요청에 사용할 AWS WAF 토큰을 획득합니다. ACFP, ATP 또는 봇 컨트롤을 사용하는 경우, 가능하면 클라이언트 애플리케이션에서 애플리케이션 통합 SDK를 구현하여 모든 규칙 그룹 기능을 최대한 활용하세요. 이러한 규칙 그룹은 중요한 리소스를 신속하게 보호해야 하지만 SDK 통합을 위한 시간이 충분하지 않을 때 SDK 통합 없이 임시 방편으로만 사용할 것을 권장합니다. SDK 구현에 대한 정보는 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요.
+ **Challenge 및 CAPTCHA 규칙 작업** - 클라이언트 세션 및 최종 사용자를 검증하고 클라이언트가 웹 요청에 사용할 AWS WAF 토큰을 획득합니다. 이러한 작업은 규칙 내 규칙 작업을 지정하는 어느 위치에든 구현할 수 있으며 사용하는 규칙 그룹에서는 재정의로 구현할 수 있습니다. 이러한 작업은 AWS WAF JavaScript 중간 광고를 사용하여 클라이언트 또는 최종 사용자를 조사하며 JavaScript를 지원하는 클라이언트 애플리케이션이 필요합니다. 자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 단원을 참조하십시오.

지능형 위협 완화 AWS 관리형 규칙은 ACFP, ATP 및 Bot Control을 그룹화하여 고급 탐지에 토큰을 사용합니다. 규칙 그룹에서 토큰이 지원하는 기능에 대한 자세한 내용은 [ACFP와 함께 애플리케이션 통합 SDK 사용](waf-acfp-with-tokens.md), [ATP와 함께 애플리케이션 통합 SDK 사용](waf-atp-with-tokens.md) 및 [봇 컨트롤과 함께 애플리케이션 통합 SDK 사용](waf-bot-with-tokens.md) 섹션을 참조하세요.

지능형 위협 완화를 구현하는 옵션은 규칙 작업을 기본적으로 사용하여 문제를 실행하고 토큰 획득을 적용하는 것부터 지능형 위협 완화 AWS 관리형 규칙 그룹에서 제공하는 고급 기능에 이르기까지 실행됩니다.

다음 표는 기본 기능과 고급 기능의 옵션을 자세히 비교한 것입니다.

**Topics**
+ [챌린지 및 토큰 획득 옵션](waf-managed-protections-comparison-table-token.md)
+ [지능형 위협 완화 관리형 규칙 그룹의 옵션](waf-managed-protections-comparison-table-rg.md)
+ [속도 기반 규칙 및 대상 지정 Bot Control 규칙의 속도 제한 옵션](waf-rate-limiting-options.md)

# 챌린지 및 토큰 획득 옵션
<a name="waf-managed-protections-comparison-table-token"></a>

이 섹션에서는 챌린지 및 토큰 관리 옵션을 비교합니다.

 AWS WAF 애플리케이션 통합 SDKs 또는 규칙 작업 및 Challenge를 사용하여 챌린지를 제공하고 토큰을 획득할 수 있습니다CAPTCHA. 대체로 규칙 작업은 구현하기가 더 쉽지만 추가 비용이 발생하고 고객 경험에 더 많은 영향을 미치며 JavaScript가 필요합니다. SDK는 클라이언트 애플리케이션에서 프로그래밍해야 하지만 더 나은 고객 경험을 제공할 수 있고 무료로 사용할 수 있으며 JavaScript와 함께 사용하거나 Android 또는 iOS 애플리케이션에서 사용할 수 있습니다. 다음 섹션에 설명된 유료 지능형 위협 완화 관리형 규칙 그룹 중 하나를 사용하는 보호 팩(웹 ACL)이 있는 경우에만 애플리케이션 통합 SDK를 사용할 수 있습니다.


**챌린지 및 토큰 획득 옵션 비교**  

|  | Challenge 규칙 작업 | CAPTCHA 규칙 작업 | JavaScript SDK 챌린지 | 모바일 SDK 챌린지 | 
| --- | --- | --- | --- | --- | 
| 정의 | 브라우저 클라이언트에 자동 챌린지 중간 간격을 제공하여 AWS WAF 토큰 획득을 강제하는 규칙 작업  | 클라이언트 최종 사용자에게 시각적 또는 오디오 문제 중간 분석을 제공하여 AWS WAF 토큰 획득을 적용하는 규칙 작업  |  JavaScript를 실행하는 클라이언트 브라우저 및 기타 디바이스를 위한 애플리케이션 통합 계층. 자동 챌린지를 렌더링하고 토큰 획득  |  Android 및 iOS 애플리케이션용 애플리케이션 통합 계층. 자동 챌린지를 기본적으로 렌더링하고 토큰 획득  | 
| 적합한 용도... | JavaScript를 지원하는 클라이언트에 대해 봇 세션 자동 검증 및 토큰 획득 적용  | JavaScript를 지원하는 클라이언트에 대해 봇 세션에 대한 최종 사용자와 자동 검증 및 토큰 획득 적용 | JavaScript를 지원하는 클라이언트에 대해 봇 세션에 대한 자동 검증 및 토큰 획득 적용.SDK는 지연 시간을 최소화하고 애플리케이션에서 챌린지 스크립트가 실행되는 위치를 가장 잘 제어합니다. | Android 및 iOS의 네이티브 모바일 애플리케이션에 대해 봇 세션 자동 검증 및 토큰 획득 적용.SDK는 지연 시간을 최소화하고 애플리케이션에서 챌린지 스크립트가 실행되는 위치를 가장 잘 제어합니다. | 
| 구현 고려 사항 | 규칙 작업 설정으로 구현됨 | 규칙 작업 설정으로 구현됨 | 그러나 보호 팩(웹 ACL)에 ACFP, ATP 또는 봇 컨트롤 유료 규칙 그룹 중 하나가 필요합니다.클라이언트 애플리케이션에서 코딩 필요 | 그러나 보호 팩(웹 ACL)에 ACFP, ATP 또는 봇 컨트롤 유료 규칙 그룹 중 하나가 필요합니다.클라이언트 애플리케이션에서 코딩 필요 | 
| 런타임 고려 사항 | 유효한 토큰이 없는 요청에 대한 개입형 흐름 클라이언트가 AWS WAF 챌린지 중간 단계로 리디렉션됩니다. 네트워크 왕복을 추가하며 웹 요청에 대한 2차 평가 필요  | 유효한 토큰이 없는 요청에 대한 개입형 흐름 클라이언트가 AWS WAF CAPTCHA 중간 광고로 리디렉션됩니다. 네트워크 왕복을 추가하며 웹 요청에 대한 2차 평가 필요  | 백그라운드에서 실행 가능 챌린지 환경에 대한 보다 세부적인 제어 가능  | 백그라운드에서 실행 가능 챌린지 환경에 대한 보다 세부적인 제어 가능  | 
| JavScript 필요 | 예 | 예 | 예 | 아니요 | 
| 지원 클라이언트 | Javascript를 실행하는 브라우저 및 디바이스 | Javascript를 실행하는 브라우저 및 디바이스 | Javascript를 실행하는 브라우저 및 디바이스 | Android 및 iOS 기기 | 
| 단일 페이지 애플리케이션(SPA) 지원 | 적용 전용.SDK와 함께 Challenge 작업을 사용하여 요청에 유효한 챌린지 토큰이 있는지 확인할 수 있습니다. 규칙 작업을 사용하여 페이지에 챌린지 스크립트를 전달할 수 없습니다. | 적용 전용.SDK와 함께 CAPTCHA 작업을 사용하여 요청에 유효한 CAPTCHA 토큰이 있는지 확인할 수 있습니다. 규칙 작업을 사용하여 페이지에 CAPTCHA 스크립트를 전달할 수 없습니다. | 예 | 해당 사항 없음 | 
| 추가 요금 | 예. 정의하는 규칙에 명시적으로 지정하는 작업 설정의 경우 또는 사용하는 규칙 그룹에서 규칙 작업 재정의로 지정하는 경우에 적용됩니다. 그 밖의 모든 경우에는 적용되지 않습니다. | 예. 정의하는 규칙에 명시적으로 지정하는 작업 설정의 경우 또는 사용하는 규칙 그룹에서 규칙 작업 재정의로 지정하는 경우에 적용됩니다. 그 밖의 모든 경우에는 적용되지 않습니다. | 아니요. 하지만 유료 규칙 그룹 ACFP, ATP 또는 봇 컨트롤 중 하나가 필요합니다. | 아니요. 하지만 유료 규칙 그룹 ACFP, ATP 또는 봇 컨트롤 중 하나가 필요합니다. | 

이러한 옵션과 관련된 비용에 대한 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)에서 지능형 위협 완화 정보를 참조하세요.

Challenge 또는 CAPTCHA 작업을 포함하는 규칙을 추가하기만 하면 간단히 챌린지를 실행하고 기본 토큰을 적용할 수 있습니다. 예를 들어 애플리케이션 코드에 액세스할 수 없는 경우에는 규칙 작업을 사용해야 할 수도 있습니다.

그러나 SDK를 구현할 수 있는 경우 클라이언트 웹 요청에 대한 보호 팩(웹 ACL) 평가 시 Challenge 작업을 사용할 때보다 비용을 절감하고 지연 시간을 줄일 수 있습니다.
+ 애플리케이션의 어느 시점에서든 챌린지를 실행하도록 SDK 구현을 작성할 수 있습니다. 고객의 작업으로 보호된 리소스에 웹 요청이 전송되는 상황이 발생하기 전에 백그라운드에서 토큰을 획득할 수 있습니다. 이렇게 하면 클라이언트의 첫 번째 요청과 함께 토큰을 전송할 수 있습니다.
+ 대신 Challenge 작업을 포함하는 규칙을 구현하여 토큰을 획득하는 경우, 클라이언트가 요청을 처음 전송하고 토큰이 만료될 때마다 규칙과 작업에 대한 추가 웹 요청 평가 및 처리가 필요합니다. 이 Challenge 작업은 유효하고 만료되지 않은 토큰이 없는 요청을 차단하고 챌린지 중간 광고를 다시 클라이언트에게 전송합니다. 클라이언트가 챌린지에 성공적으로 응답하면 중간 광고는 유효한 토큰과 함께 원본 웹 요청을 다시 전송하고 보호 팩(웹 ACL)에서 이를 다시 평가합니다.

# 지능형 위협 완화 관리형 규칙 그룹의 옵션
<a name="waf-managed-protections-comparison-table-rg"></a>

이 섹션에서는 관리형 규칙 그룹 옵션을 비교합니다.

지능형 위협 완화 AWS 관리형 규칙 규칙 그룹은 기본 봇 관리, 정교하고 악의적인 봇의 탐지 및 완화, 계정 탈취 시도의 탐지 및 완화, 사기 계정 생성 시도의 탐지 및 완화를 제공합니다. 이러한 규칙 그룹은 이전 섹션에서 설명한 애플리케이션 통합 SDK와 결합되어 최신 보호 기능 및 클라이언트 애플리케이션과의 보안 연결을 제공합니다.


**관리형 규칙 그룹 옵션 비교**  

|  | ACFP  | 탭  | 봇 컨트롤 일반 수준 | 봇 컨트롤 대상 수준 | 
| --- | --- | --- | --- | --- | 
| 정의 | 애플리케이션의 등록 및 가입 페이지에서 사기 계정 생성 시도의 일부일 수 있는 요청을 관리합니다.봇을 관리하지 않습니다.[AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md)을(를) 참조하세요. | 애플리케이션의 로그인 페이지에서 악의적인 탈취 시도의 일부일 수 있는 요청을 관리합니다.봇을 관리하지 않습니다.[AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md)을(를) 참조하세요. | 애플리케이션 간에 고유한 서명을 사용하는 자체 식별이 가능한 일반 봇을 관리합니다.[AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md)을(를) 참조하세요. | 특정 애플리케이션 관련 서명이 있는 자체 식별이 불가능한 대상 봇을 관리합니다.[AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md)을(를) 참조하세요. | 
| 적합한 용도... | 계정 생성 트래픽에 대해 사용자 이름 탐색을 통한 생성 시도, 단일 IP 주소에서 많은 새 계정을 생성하는 등 사기 계정 생성 공격 여부 검사 | 로그인 트래픽의 계정 탈취 시도 공격(예: 암호 순회를 통한 로그인 시도, 동일 IP 주소에서의 다회 로그인 시도) 여부 검사. 토큰과 함께 사용할 경우 대량의 로그인 시도 실패에 대한 IP 및 클라이언트 세션 속도 제한과 같은 종합적인 보호 기능도 제공합니다. | 일반 자동 봇 트래픽에 대한 기본 봇 보호 및 레이블 지정 | 클라이언트 세션 수준에서의 속도 제한, Selenium 및 Puppeteer와 같은 브라우저 자동화 도구의 탐지 및 완화 등 정교한 봇에 대한 대상 보호. | 
| 평가 결과를 나타내는 레이블 추가 | 예 | 예 | 예 | 예 | 
| 토큰 레이블 추가 | 예 | 예 | 예 | 예 | 
| 유효한 토큰이 없는 요청 차단 | 포함되지 않음 [유효한 AWS WAF 토큰이 없는 요청 차단](waf-tokens-block-missing-tokens.md)을(를) 참조하세요. | 포함되지 않음 [유효한 AWS WAF 토큰이 없는 요청 차단](waf-tokens-block-missing-tokens.md)을(를) 참조하세요. | 포함되지 않음 [유효한 AWS WAF 토큰이 없는 요청 차단](waf-tokens-block-missing-tokens.md)을(를) 참조하세요. | 토큰 없이 5개의 요청을 보내는 클라이언트 세션을 차단합니다. | 
|  AWS WAF 토큰이 필요합니다. aws-waf-token  | 모든 규칙에 필요합니다.[ACFP와 함께 애플리케이션 통합 SDK 사용](waf-acfp-with-tokens.md)을(를) 참조하세요. | 여러 규칙에 필요합니다.[ATP와 함께 애플리케이션 통합 SDK 사용](waf-atp-with-tokens.md)을(를) 참조하세요. | 아니요 | 예 | 
|  AWS WAF 토큰을 획득합니다. aws-waf-token  | 예, AllRequests 규칙에 의해 적용됩니다. | 아니요 | 아니요 | 일부 규칙은 토큰을 획득하는 Challenge 또는 CAPTCHA 규칙 작업을 사용합니다. | 

이러한 옵션과 관련된 비용에 대한 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)에서 지능형 위협 완화 정보를 참조하세요.

# 속도 기반 규칙 및 대상 지정 Bot Control 규칙의 속도 제한 옵션
<a name="waf-rate-limiting-options"></a>

이 섹션에서는 속도 기반 완화 옵션을 비교합니다.

 AWS WAF Bot Control 규칙 그룹의 대상 수준과 AWS WAF 속도 기반 규칙 문은 모두 웹 요청 속도 제한을 제공합니다. 다음은 두 옵션을 비교하는 표입니다.


**속도 기반 탐지 및 완화 옵션 비교**  

|  | AWS WAF 속도 기반 규칙 | AWS WAF Bot Control 대상 규칙 | 
| --- | --- | --- | 
| 속도 제한 적용 방법 | 속도가 너무 높은 요청 그룹에 대해 조치를 취합니다. Allow를 제외한 모든 작업을 적용할 수 있습니다. | 요청 토큰을 사용하여 사람과 유사한 액세스 패턴과 동적 속도 제한을 적용합니다. | 
| 과거 트래픽 기준 기반 여부 | 아니요  | 예  | 
| 과거 트래픽 기준이 축적되는 데 필요한 시간 | 해당 사항 없음  | 동적 임계값의 경우 5분. 토큰이 없는 경우에는 해당되지 않습니다. | 
| 완화 지연 | 보통 30-50초입니다. 최대 몇 분이 걸릴 수 있습니다. | 일반적으로 10초 미만 최대 몇 분이 걸릴 수 있습니다. | 
| 완화 목표 | 구성 가능. 범위 축소 문을 사용하고 IP 주소, HTTP 메서드, 쿼리 문자열과 같은 하나 이상의 집계 키를 사용하여 요청을 그룹화할 수 있습니다. | IP 주소 및 클라이언트 세션  | 
| 완화 조치를 트리거하는 데 필요한 트래픽 볼륨 수준 | 중간 - 지정된 기간 동안 최소 10개의 요청일 수 있음  | 낮음 - 느린 스크레이퍼와 같은 클라이언트 패턴을 탐지하기 위함임  | 
| 사용자 지정 가능한 임계값 | 예  | 아니요  | 
| 기본 완화 작업 | 콘솔 기본값은 Block입니다. API에는 기본 설정이 없으므로 설정해야 합니다.Allow를 제외한 모든 규칙 작업으로 설정할 수 있습니다. | 규칙 그룹 규칙 작업 설정은 토큰이 없는 경우 Challenge이고 단일 클라이언트 세션에서 발생하는 대용량 트래픽의 경우 CAPTCHA입니다.이러한 규칙 중 하나를 유효한 규칙 작업 중 하나로 설정할 수 있습니다. | 
| 고도로 분산된 공격에 대한 복원력 | 중간 - 자체적으로 IP 주소를 제한하는 경우 최대 10,000개의 IP 주소 | 중간 - IP 주소와 토큰 간의 총 50,000개로 제한됨  | 
| [AWS WAF 요금](https://aws.amazon.com/waf/pricing/) | 에 대한 표준 요금에 포함됩니다 AWS WAF. | 봇 컨트롤 지능형 위협 완화의 대상 수준 요금에 포함됩니다. | 
| 자세한 정보 | [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md) | [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) | 

# 의 지능형 위협 완화 모범 사례 AWS WAF
<a name="waf-managed-protections-best-practices"></a>

이 섹션의 모범 사례를 따르면 지능형 위협 완화 기능을 가장 효율적이고 비용 효율적으로 구현할 수 있습니다.
+ **JavaScript 및 모바일 애플리케이션 통합 SDK** 구현 — ACFP, ATP 또는 봇 컨트롤 기능의 전체 집합을 가능한 가장 효과적인 방법으로 사용할 수 있도록 애플리케이션 통합을 구현합니다. 관리형 규칙 그룹은 SDK에서 제공하는 토큰을 사용하여 세션 수준에서 합법적인 클라이언트 트래픽을 바람직하지 않은 트래픽과 분리합니다. 애플리케이션 통합 SDK에서는 이러한 토큰을 항상 사용할 수 있습니다. 세부 정보는 다음을 참조하세요.
  + [ACFP와 함께 애플리케이션 통합 SDK 사용](waf-acfp-with-tokens.md)
  + [ATP와 함께 애플리케이션 통합 SDK 사용](waf-atp-with-tokens.md)
  + [봇 컨트롤과 함께 애플리케이션 통합 SDK 사용](waf-bot-with-tokens.md)

  통합을 사용하여 클라이언트에서 챌린지를 구현하고 JavaScript의 경우 최종 사용자에게 CAPTCHA 퍼즐을 제시하는 방식을 사용자 지정할 수 있습니다. 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md)을 참조하세요.

  JavaScript API를 사용하여 CAPTCHA 퍼즐을 사용자 지정하고 보호 팩(웹 ACL)의 모든 곳에서 CAPTCHA 규칙 작업을 사용하는 경우의 클라이언트에서 AWS WAF CAPTCHA 응답을 처리하기 위한 지침을 따릅니다[에서 CAPTCHA 응답 처리 AWS WAF](waf-js-captcha-api-conditional.md). 이 지침은 ACFP 관리형 규칙 그룹의 규칙과 봇 컨트롤 관리형 규칙 그룹의 대상 보호 수준을 포함하여 CAPTCHA 작업을 사용하는 모든 규칙에 적용됩니다.
+ **ACFP, ATP 및 Bot Control 규칙 그룹에 보내는 요청 제한** - 지능형 위협 완화 AWS 관리형 규칙 그룹을 사용하면 추가 요금이 발생합니다. ACFP 규칙 그룹은 사용자가 지정한 계정 등록 및 생성 엔드포인트에 대한 요청을 검사합니다. ATP 규칙 그룹은 사용자가 지정한 로그인 엔드포인트에 대한 요청을 검사합니다. 봇 컨트롤 규칙 그룹은 보호 팩(웹 ACL) 평가에서 로그인 엔드포인트에 도달한 모든 요청을 검사합니다.

  이러한 규칙 그룹의 사용을 줄이려면 다음과 같은 방법을 고려하십시오.
  + 관리형 규칙 그룹 문에서 범위 축소 문을 사용하여 검사에서 요청을 제외하십시오. 모든 중첩 가능한 명령문을 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 단원을 참조하세요.
  + 규칙 그룹 앞에 규칙을 추가하여 검사에서 요청을 제외시킵니다. 범위 축소 문에 사용할 수 없는 규칙의 경우, 그리고 레이블 지정 후 레이블 일치와 같은 좀 더 복잡한 상황의 경우 규칙 그룹보다 먼저 실행되는 규칙을 추가할 수 있습니다. 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 및 [에서 규칙 문 사용 AWS WAF](waf-rule-statements.md) 섹션을 참조하세요.
  + 비용이 더 저렴한 규칙 이후에 규칙 그룹을 실행합니다. 어떤 이유로든 요청을 차단하는 다른 표준 AWS WAF 규칙이 있는 경우 이러한 유료 규칙 그룹보다 먼저 실행합니다. 규칙 및 규칙 관리에 대한 자세한 내용은 [에서 규칙 문 사용 AWS WAF](waf-rule-statements.md) 섹션을 참조하세요.
  + 지능형 위협 완화 관리형 규칙 그룹을 두 개 이상 사용하는 경우 비용을 낮추려면 봇 컨트롤, ATP, ACFP 순으로 실행합니다.

  자세한 요금 정보는 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.
+ **Anti-DDoS 규칙 그룹에 보내는 요청 제한 금지** - 이 규칙 그룹은 명시적으로 허용하지 않는 모든 웹 트래픽을 모니터링하도록 구성하는 경우에 가장 잘 작동합니다. Allow 규칙 작업이 포함된 규칙 다음에만 평가되고 다른 모든 규칙보다 먼저 평가되도록 웹 ACL에 배치합니다.
+ **분산 서비스 거부(DDoS) 보호의 경우 Anti-DDoS 또는 Shield Advanced 자동 애플리케이션 계층 DDoS 완화 사용** - 다른 지능형 위협 완화 규칙 그룹은 DDoS 보호를 제공하지 않습니다. ACFP는 애플리케이션 가입 페이지에 대한 사기 계정 생성 시도로부터 보호합니다. ATP는 로그인 페이지에 대한 계정 탈취 시도로부터 보호합니다. 봇 컨트롤은 토큰을 사용하여 사람과 유사한 액세스 패턴을 적용하고 클라이언트 세션에 동적 속도 제한을 적용하는 데 중점을 둡니다.

  Anti-DDoS를 사용하면 DDoS 공격을 모니터링하고 제어할 수 있으므로 위협에 대해 신속하게 대응하고 완화할 수 있습니다. 자동 애플리케이션 계층 DDoS 완화 기능을 갖춘 Shield Advanced는 사용자를 대신하여 사용자 지정 AWS WAF 완화 기능을 생성, 평가 및 배포하여 탐지된 DDoS 공격에 자동으로 대응합니다.

  Shield Advanced에 대한 자세한 내용은 [AWS Shield Advanced 개요](ddos-advanced-summary.md) 및 [AWS Shield Advanced 및를 사용하여 애플리케이션 계층(계층 7) 보호 AWS WAF](ddos-app-layer-protections.md) 섹션을 참조하세요.

  분산 서비스 거부(DDoS) 방지에 대한 자세한 내용은 [DDoS 방지 규칙 그룹](aws-managed-rule-groups-anti-ddos.md) 및 [분산 서비스 거부(DDoS) 방지](waf-anti-ddos.md) 섹션을 참조하세요.
+  **정상적인 웹 트래픽 중에 봇 컨트롤 규칙 그룹의 Anti-DDoS 규칙 그룹 및 대상 보호 수준 활성화** - 이러한 규칙 범주는 정상 트래픽의 기준을 설정하는 데 시간이 필요합니다.

   **정상적인 웹 트래픽 중 봇 컨트롤 규칙 그룹의 표적 보호 수준 활성화** — 대상 보호 수준의 일부 규칙은 불규칙하거나 악의적인 트래픽 패턴을 인식하고 이에 대응하기 전에 정상적인 트래픽 패턴의 기준을 설정하는 데 시간이 필요합니다. 예를 들어, `TGT_ML_*` 규칙을 워밍업하려면 최대 24시간이 필요합니다.

  공격이 발생하지 않을 때 이러한 보호 기능을 추가하고 적절하게 대응할 것으로 예상하기 전에 보호의 기준이 설정될 때까지 기다립니다. 공격 중에 이러한 규칙을 추가하는 경우 개수 모드에서 Anti-DDoS 규칙 그룹을 활성화해야 합니다. 공격이 진정된 후 공격 트래픽으로 인한 왜곡이 가중되므로 일반적으로 기준을 설정하는 데 정상 소요 시간의 2배\$13배가 걸리게 됩니다. 규칙 및 규칙에 필요한 준비 시간에 대한 자세한 내용은 [규칙 목록](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules) 섹션을 참조하세요.
+ **분산 서비스 거부 (DDoS) 방어의 경우 Shield Advanced 자동 애플리케이션 계층 DDoS 완화 사용** - 지능형 위협 완화 규칙 그룹은 DDoS 보호를 제공하지 않습니다. ACFP는 애플리케이션 가입 페이지에 대한 사기 계정 생성 시도로부터 보호합니다. ATP는 로그인 페이지에 대한 계정 탈취 시도로부터 보호합니다. 봇 컨트롤은 토큰을 사용하여 사람과 유사한 액세스 패턴을 적용하고 클라이언트 세션에 동적 속도 제한을 적용하는 데 중점을 둡니다.

  자동 애플리케이션 계층 DDoS 완화가 활성화된 상태에서 Shield Advanced를 사용하면 Shield Advanced는 사용자를 대신하여 사용자 지정 AWS WAF 완화를 생성, 평가 및 배포하여 탐지된 DDoS 공격에 자동으로 대응합니다. Shield Advanced에 대한 자세한 내용은 [AWS Shield Advanced 개요](ddos-advanced-summary.md) 및 [AWS Shield Advanced 및를 사용하여 애플리케이션 계층(계층 7) 보호 AWS WAF](ddos-app-layer-protections.md) 섹션을 참조하세요.
+ **Anti-DDoS 규칙 그룹의 기준을 설정할 때 프로덕션 트래픽 부하 사용** - 인공 테스트 트래픽을 사용하여 다른 규칙 그룹을 테스트하는 것이 일반적입니다. 그러나 Anti-DDoS 규칙 그룹의 기준을 테스트하고 설정할 때는 프로덕션 환경의 부하를 반영하는 트래픽 흐름을 사용하는 것이 좋습니다. 일반적인 트래픽을 사용하여 Anti-DDoS 기준을 설정하는 것이 프로덕션 환경에서 규칙 그룹을 활성화할 때 리소스를 보호할 수 있는 가장 좋은 방법입니다.
+ **토큰 처리 조정 및 구성** - 최상의 사용자 환경을 제공할 수 있도록 보호 팩(웹 ACL)의 토큰 처리를 조정합니다.
  + 운영 비용을 줄이고 최종 사용자 환경을 개선하려면 토큰 관리 면제 시간을 보안 요구 사항이 허용하는 최장 시간으로 조정합니다. 이를 통해 CAPTCHA 퍼즐과 자동 챌린지 사용을 최소화할 수 있습니다. 자세한 내용은 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md) 단원을 참조하세요.
  + 보호된 애플리케이션 간에 토큰을 공유할 수 있도록 활성화하려면 보호 팩(웹 ACL)의 토큰 도메인 목록을 구성합니다. 자세한 내용은 [에서 토큰 도메인 및 도메인 목록 지정 AWS WAF](waf-tokens-domains.md) 단원을 참조하세요.
+ **임의 호스트 사양을 포함하는 요청 거부** - 웹 요청의 `Host` 헤더와 대상 리소스 간 일치가 필수 조건이 되도록 보호된 리소스를 구성하십시오. 단일 값 또는 특정 값 집합(예: `myExampleHost.com` 및) 는 허용할 수 있지만 `www.myExampleHost.com` 호스트에 대해 임의의 값은 수락하지 마십시오.
+ **CloudFront 배포의 오리진인 Application Load Balancer의 경우 적절한 토큰 처리를 AWS WAF 위해 CloudFront 및를 구성합니다**. 보호 팩(웹 ACL)을 Application Load Balancer에 연결하고 Application Load Balancer를 CloudFront 배포의 오리진으로 배포하는 경우 섹션을 참조하세요[CloudFront 오리진인 Application Load Balancer에 필요한 구성](waf-tokens-with-alb-and-cf.md).
+ **배포 전 테스트 및 조정** - 보호 팩(웹 ACL)에 변경 사항을 구현하기 전에 이 안내서의 테스트 및 조정 절차에 따라 예상대로 작동하는지 확인합니다. 이 점은 이러한 유료 기능의 경우 특히 중요합니다. 일반적인 지침은 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md) 섹션을 참조하세요. 유료 관리형 규칙 그룹과 관련된 자세한 내용은 [ACFP 테스트 및 배포](waf-acfp-deploying.md), [ATP 테스트 및 배포](waf-atp-deploying.md) 및 [AWS WAF Bot Control 테스트 및 배포](waf-bot-control-deploying.md) 섹션을 참조하세요.

# AWS WAF 지능형 위협 완화에 토큰 사용
<a name="waf-tokens"></a>

이 섹션에서는 AWS WAF 토큰이 수행하는 작업을 설명합니다.

AWS WAF 토큰은 AWS WAF 지능형 위협 완화를 통해 제공되는 향상된 보호 기능의 필수적인 부분입니다. 지문이라고도 하는 토큰은 클라이언트가 저장하는 모든 웹 요청과 함께 제공하는 단일 클라이언트 세션에 대한 정보 모음입니다. 토큰을 AWS WAF 사용하여 악의적인 클라이언트 세션을 식별하고 합법적인 세션과 분리합니다. 둘 다 단일 IP 주소에서 시작되더라도 마찬가지입니다. 토큰 사용으로 인해 합법적인 사용자에게는 무시할 만한 비용이 부과되지만 봇넷의 경우 높은 비용이 발생합니다.

AWS WAF 는 토큰을 사용하여 애플리케이션 통합 SDKs와 규칙 작업 Challenge 및에서 제공하는 브라우저 및 최종 사용자 챌린지 기능을 지원합니다CAPTCHA. 또한 토큰은 AWS WAF Bot Control 및 계정 탈취 방지 관리형 규칙 그룹의 기능을 활성화합니다.

AWS WAF 는 자동 챌린지 및 CAPTCHA 퍼즐에 성공적으로 응답하는 클라이언트에 대한 토큰을 생성, 업데이트 및 암호화합니다. 토큰이 있는 클라이언트가 웹 요청을 보내면 암호화된 토큰이 포함되어 토큰을 AWS WAF 해독하고 내용을 확인합니다.

**Topics**
+ [에서 토큰을 AWS WAF 사용하는 방법](waf-tokens-usage.md)
+ [AWS WAF 토큰 특성](waf-tokens-details.md)
+ [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md)
+ [에서 토큰 도메인 및 도메인 목록 지정 AWS WAF](waf-tokens-domains.md)
+ [의 토큰 레이블 유형 AWS WAF](waf-tokens-labeling.md)
+ [유효한 AWS WAF 토큰이 없는 요청 차단](waf-tokens-block-missing-tokens.md)
+ [CloudFront 오리진인 Application Load Balancer에 필요한 구성](waf-tokens-with-alb-and-cf.md)

# 에서 토큰을 AWS WAF 사용하는 방법
<a name="waf-tokens-usage"></a>

이 섹션에서는가 토큰을 AWS WAF 사용하는 방법을 설명합니다.

AWS WAF 는 토큰을 사용하여 다음 유형의 클라이언트 세션 검증을 기록하고 확인합니다.
+ **CAPTCHA** - CAPTCHA 퍼즐은 봇을 인간 사용자와 구분하는 데 도움이 됩니다. CAPTCHA는 CAPTCHA 규칙 작업을 통해서만 실행됩니다. 퍼즐을 성공적으로 완료하면 CAPTCHA 스크립트는 토큰의 CAPTCHA 타임스탬프를 업데이트합니다. 자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 단원을 참조하십시오.
+ **챌린지** - 챌린지는 자동으로 실행되어 일반 클라이언트 세션을 봇 세션과 구분할 수 있도록 도와주고 봇의 운영 비용을 증가시킵니다. 챌린지가 성공적으로 완료되면 챌린지 스크립트는 필요한 AWS WAF 경우에서 새 토큰을 자동으로 조달한 다음 토큰의 챌린지 타임스탬프를 업데이트합니다.

  AWS WAF 는 다음과 같은 상황에서 챌린지를 실행합니다.
  + **애플리케이션 통합 SDK** - 애플리케이션 통합 SDK는 클라이언트 애플리케이션 세션 내에서 실행되며 클라이언트가 챌린지에 성공적으로 응답한 후에만 로그인 시도가 허용되도록 합니다. 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 단원을 참조하십시오.
  + **Challenge 규칙 작업** – 자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 섹션을 참조하세요.
  + **CAPTCHA**— CAPTCHA 중간 광고를 실행할 때 클라이언트에 아직 토큰이 없는 경우 스크립트는 자동으로 챌린지를 먼저 실행하여 클라이언트 세션을 확인하고 토큰을 초기화합니다.

토큰은 지능형 위협 AWS 관리형 규칙 그룹의 많은 규칙에 필요합니다. 이들 규칙은 토큰을 사용하여 세션 수준에서 클라이언트 구분, 브라우저 특성 결정, 애플리케이션 웹 페이지의 사용자 상호 작용 수준 파악 등의 작업을 수행합니다. 이러한 규칙 그룹은 AWS WAF 토큰 관리를 호출하여 규칙 그룹이 검사하는 토큰 레이블 지정을 적용합니다.
+ **AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)** - ACFP 규칙에는 유효한 토큰이 있는 웹 요청이 필요합니다. 규칙에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 섹션을 참조하세요.
+ **AWS WAF 사기 제어 계정 탈취 방지(ATP)** - 대량의 오래 지속되는 클라이언트 세션을 방지하는 ATP 규칙에는 만료되지 않은 챌린지 타임스탬프가 있는 유효한 토큰이 있는 웹 요청이 필요합니다. 자세한 내용은 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 단원을 참조하십시오.
+ **AWS WAF Bot Control** -이 규칙 그룹의 대상 규칙은 클라이언트가 유효한 토큰 없이 보낼 수 있는 웹 요청 수를 제한하고 세션 수준 모니터링 및 관리에 토큰 세션 추적을 사용합니다. 이들 규칙은 필요에 따라 Challenge 및 CAPTCHA 규칙 작업을 적용하여 토큰 획득 및 유효한 클라이언트 동작을 요구합니다. 자세한 내용은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 단원을 참조하십시오.

# AWS WAF 토큰 특성
<a name="waf-tokens-details"></a>

각 토큰의 특성은 다음과 같습니다.
+ 토큰은 `aws-waf-token` 이름이 지정된 쿠키에 저장됩니다.
+ 토큰은 암호화됩니다.
+ 토큰은 다음 정보가 포함된 세분화된 고정 식별자로 클라이언트 세션을 핑거프린팅합니다.
  + 자동 챌린지에 대한 클라이언트의 최근 성공 응답의 타임스탬프.
  + CAPTCHA에 대한 최종 사용자의 최근 성공 응답의 타임스탬프. 이는 보호 기능에서 CAPTCHA를 사용하는 경우에만 나타납니다.
  + 합법적인 클라이언트를 원하지 않는 트래픽으로부터 분리하는 데 도움이 될 수 있는 클라이언트 및 클라이언트 행동에 대한 추가 정보. 이 정보에는 자동화된 활동을 탐지하는 데 사용할 수 있는 다양한 클라이언트 식별자와 클라이언트 측 신호가 포함됩니다. 수집된 정보는 고유하지 않으므로 각 개인에게 매핑할 수 없습니다.
    + 모든 토큰에는 자동화 및 브라우저 설정 불일치 표시와 같은 클라이언트 브라우저 질의 데이터가 포함됩니다. 이 정보는 Challenge 작업과 클라이언트 애플리케이션 SDK에 의해 실행되는 스크립트를 통해 검색됩니다. 이러한 스크립트는 브라우저에 능동적으로 질의하고 그 결과를 토큰에 넣습니다.
    + 또한 클라이언트 애플리케이션 통합 SDK를 구현하면 토큰에 최종 사용자의 애플리케이션 페이지 상호 작용에 대해 수동적으로 수집된 정보가 포함됩니다. 상호 작용에는 마우스 이동, 키 누름 및 페이지에 있는 모든 HTML 양식과의 상호 작용이 포함됩니다. 이 정보는 AWS WAF 에서 클라이언트의 사용자 상호 작용 수준을 탐지하여 사람으로 여겨지지 않는 사용자에게 챌린지를 제시하는 데 도움이 됩니다. 클라이언트측 통합에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요.

보안상의 이유로 AWS 는 AWS WAF 토큰의 내용에 대한 전체 설명이나 토큰 암호화 프로세스에 대한 자세한 정보를 제공하지 않습니다.

# 에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF
<a name="waf-tokens-immunity-times"></a>

이 섹션에서는 챌린지 및 CAPTCHA 타임스탬프를 만료하는 방법을 설명합니다.

AWS WAF 는 챌린지 및 CAPTCHA 면제 시간을 사용하여 단일 클라이언트 세션에 챌린지 또는 CAPTCHA를 표시할 수 있는 빈도를 제어합니다. 최종 사용자가 CAPTCHA에 성공적으로 응답한 후 CAPTCHA 면제 시간에 따라 최종 사용자가 다른 CAPTCHA를 받지 않는 기간이 결정됩니다. 마찬가지로, 챌린지 면제 시간은 클라이언트 세션이 챌린지에 성공적으로 응답한 후 다시 챌린지를 받지 않는 기간을 결정합니다.

** AWS WAF 토큰 면제 시간 작동 방식**

AWS WAF 는 토큰 내의 해당 타임스탬프를 업데이트하여 챌린지 또는 CAPTCHA에 대한 성공적인 응답을 기록합니다. 가 토큰에 챌린지 또는 CAPTCHA가 있는지 AWS WAF 검사하면 현재 시간에서 타임스탬프를 뺍니다. 결과가 구성된 면제 시간보다 크면 타임스탬프가 만료됩니다.

** AWS WAF 토큰 면제 시간의 구성 가능한 측면**

보호 팩(웹 ACL)과 CAPTCHA 또는 Challenge 규칙 작업을 사용하는 모든 규칙에서 챌린지 및 CAPTCHA 면제 시간을 구성할 수 있습니다.
+ 두 면제 시간에 대한 기본 보호 팩(웹 ACL) 설정은 300초입니다.
+ CAPTCHA 또는 Challenge 작업을 사용하는 모든 규칙의 면제 시간을 지정할 수 있습니다. 규칙에 대한 면제 시간을 지정하지 않으면 보호 팩(웹 ACL)에서 설정을 상속합니다.
+ CAPTCHA 또는 Challenge 작업을 사용하는 규칙 그룹 내 규칙의 경우 규칙에 대한 면제 시간을 지정하지 않으면 규칙 그룹을 사용하는 각 보호 팩(웹 ACL)의 설정이 상속됩니다.
+ 애플리케이션 통합 SDK는 보호 팩(웹 ACL)의 챌린지 면제 시간을 사용합니다.
+ 제한 시간의 최소 챌린지 면제 시간 값은 300초입니다. 제한 시간의 최소 CAPTCHA 면제 시간 값은 60초입니다. 두 면제 시간의 최대값은 259,200초, 즉 3일입니다.

보호 팩(웹 ACL) 및 규칙 수준 면제 시간 설정을 사용하여 CAPTCHA 작업, Challenge 또는 SDK 챌린지 관리 동작을 조정할 수 있습니다. 예를 들어, 면제 시간이 짧고 매우 민감한 데이터에 대한 액세스를 제어하는 규칙을 구성한 다음 다른 규칙 및 SDK가 상속할 더 높은 면제 시간을 보호 팩(웹 ACL)에서 설정할 수 있습니다.

특히 CAPTCHA의 경우 퍼즐은 고객의 웹 사이트 경험을 저하시킬 수 있으므로 CAPTCHA 면제 시간을 조정하면 원하는 보호 기능을 제공하면서 고객 경험에 미치는 영향을 완화하는 데 도움이 될 수 있습니다.

Challenge 및 CAPTCHA 규칙 작업의 사용 면제 시간 조정에 대한 자세한 내용은 [CAPTCHA 및 Challenge 작업 사용 모범 사례](waf-captcha-and-challenge-best-practices.md) 섹션을 참조하세요.

# AWS WAF 토큰 면제 시간을 설정할 위치
<a name="waf-tokens-immunity-times-setting"></a>

보호 팩(웹 ACL)과 Challenge 및 CAPTCHA 규칙 작업을 사용하는 규칙에서 면제 시간을 설정할 수 있습니다.

보호 팩(웹 ACL)및 관련 규칙의 관리에 대한 일반적인 정보는 [에서 웹 트래픽 지표 보기 AWS WAF](web-acl-working-with.md) 섹션을 참조하세요.

**보호 팩(웹 ACL) 면제 시간을 설정할 위치**
+ **콘솔** - 보호 팩(웹 ACL)을 편집할 때 **규칙** 탭의 **보호 팩(웹 ACL) CAPTCHA 구성** 및 **보호 팩(웹 ACL) 챌린지 구성** 창에서 설정을 편집하고 변경합니다. 콘솔에서는 보호 팩(웹 ACL)을 생성한 후에만 보호 팩(웹 ACL) CAPTCHA 및 챌린지 면제 시간을 구성할 수 있습니다.
+ **콘솔 외부** - 보호 팩(웹 ACL) 데이터 유형에는 사용자가 구성하여 보호 팩(웹 ACL)의 생성 및 업데이트 작업에 제공할 수 있는 CAPTCHA 및 챌린지 구성 매개변수가 있습니다.

**규칙 면제 시간을 설정할 위치**
+ **콘솔** - 규칙을 만들거나 편집하고 CAPTCHA 또는 Challenge 작업을 지정할 때 규칙 면제 시간 설정을 수정할 수 있습니다.
+ **콘솔 외부** - 규칙 데이터 유형에는 규칙을 정의할 때 구성할 수 있는 CAPTCHA 및 챌린지 구성 매개변수가 있습니다.

# 에서 토큰 도메인 및 도메인 목록 지정 AWS WAF
<a name="waf-tokens-domains"></a>

이 섹션에서는가 토큰에서 AWS WAF 사용하고 토큰에서 수락하는 도메인을 구성하는 방법을 설명합니다.

는 클라이언트에 대한 토큰을 AWS WAF 생성할 때 토큰 도메인으로 구성합니다. AWS WAF 는 웹 요청에서 토큰을 검사할 때 해당 도메인이 보호 팩(웹 ACL)에 유효한 것으로 간주되는 도메인과 일치하지 않는 경우 토큰을 유효하지 않은 것으로 간주하여 거부합니다.

기본적으로는 도메인 설정이 보호 팩(웹 ACL)과 연결된 리소스의 호스트 도메인과 정확히 일치하는 토큰 AWS WAF 만 허용합니다. 웹 요청의 `Host` 헤더 값입니다. 브라우저의 avaScript `window.location.hostname` 속성과 사용자의 주소 표시줄에 표시되는 주소에서 이 도메인을 찾을 수 있습니다.

다음 섹션에 설명된 바와 같이 보호 팩(웹 ACL) 구성에서 허용 가능한 토큰 도메인을 지정할 수도 있습니다. 이 경우는 호스트 헤더와 정확히 일치하는 항목과 토큰 도메인 목록의 도메인과 일치하는 항목을 모두 AWS WAF 수락합니다.

도메인을 설정하고 보호 팩(웹 ACL)에서 토큰 AWS WAF 을 평가할 때 사용할의 토큰 도메인을 지정할 수 있습니다. `gov.au`와 같은 공개 접미사는 도메인으로 지정할 수 없습니다. 사용할 수 없는 도메인의 경우 [공개 접미사](https://publicsuffix.org/list/) 목록의 [https://publicsuffix.org/list/public_suffix_list.dat](https://publicsuffix.org/list/public_suffix_list.dat) 목록을 참조하세요.

## AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성
<a name="waf-tokens-domain-lists"></a>

수락하려는 추가 도메인과 함께 토큰 도메인 목록을 제공하여 여러 보호된 리소스에서 토큰 AWS WAF 을 공유하도록 보호 팩(웹 ACL)을 구성할 수 있습니다. 토큰 도메인 목록에서는 여전히 리소스의 호스트 도메인을 AWS WAF 수락합니다. 또한 접두사가 붙은 하위 도메인을 포함하여 토큰 도메인 목록의 모든 도메인을 허용합니다.

예를 들어 토큰 도메인 목록의 도메인 사양 `example.com`은 `example.com`(`http://example.com/`), `api.example.com`(`http://api.example.com/`) 및 `www.example.com`(`http://www.example.com/`)와 일치합니다. `example.api.com`(`http://example.api.com/`) 또는 `apiexample.com`(`http://apiexample.com/`)과는 일치하지 않습니다.

보호 팩(웹 ACL)을 만들거나 편집할 때 보호 팩(웹 ACL)에서 토큰 도메인 목록을 구성할 수 있습니다. 보호 팩(웹 ACL)의 관리에 대한 일반적인 정보는 [에서 웹 트래픽 지표 보기 AWS WAF](web-acl-working-with.md) 섹션을 참조하세요.

## AWS WAF 토큰 도메인 설정
<a name="waf-tokens-domain-in-token"></a>

AWS WAF 는 애플리케이션 통합 SDKs 및 Challenge 및 CAPTCHA 규칙 작업에서 실행되는 챌린지 스크립트의 요청에 따라 토큰을 생성합니다.

토큰에를 AWS WAF 설정하는 도메인은 토큰을 요청하는 챌린지 스크립트 유형과 사용자가 제공하는 추가 토큰 도메인 구성에 따라 결정됩니다. AWS WAF 는 토큰의 도메인을 구성에서 찾을 수 있는 가장 짧은 가장 일반적인 설정으로 설정합니다.
+ **JavaScript SDK** - 토큰 도메인 사양을 사용하여 JavaScript SDK를 구성할 수 있으며, 이 사양에는 하나 이상의 도메인이 포함될 수 있습니다. 구성하는 도메인은 보호된 호스트 도메인 및 보호 팩(웹 ACL)의 토큰 도메인 목록에 따라 AWS WAF 가 수락할 도메인이어야 합니다.

  가 클라이언트에 토큰을 AWS WAF 발급하면 토큰 도메인을 호스트 도메인과 일치하고 구성된 목록의 호스트 도메인과 도메인 중에서 가장 짧은 도메인으로 설정합니다. 예를 들어 호스트 도메인이 `api.example.com` 이고 토큰 도메인 목록에가 있는 경우는 호스트 도메인과 일치하고 더 짧기 때문에 `example.com` 토큰에를 `example.com` AWS WAF 사용합니다. JavaScript API 구성에 토큰 도메인 목록을 제공하지 않으면는 도메인을 보호된 리소스의 호스트 도메인으로 AWS WAF 설정합니다.

  자세한 내용은 [토큰에 사용할 도메인 제공](waf-js-challenge-api-set-token-domain.md) 단원을 참조하십시오.
+ **모바일 SDK** - 애플리케이션 코드에서 토큰 도메인 속성을 사용하여 모바일 SDK를 구성해야 합니다. 이 속성은 AWS WAF 에서 보호된 호스트 도메인과 보호 팩(웹 ACL)의 토큰 도메인 목록에 기반하여 허용할 도메인이어야 합니다.

  가 클라이언트에 토큰을 AWS WAF 발행하면이 속성을 토큰 도메인으로 사용합니다. AWS WAF 는 모바일 SDK 클라이언트에 대해 발행하는 토큰에서 호스트 도메인을 사용하지 않습니다.

  자세한 내용은 [AWS WAF 모바일 SDK 사양](waf-mobile-sdk-specification.md)의 `WAFConfiguration` `domainName` 설정을 참조하세요.
+ **Challenge 작업** - 보호 팩(웹 ACL)에 토큰 도메인 목록을 지정하는 경우는 호스트 도메인과 목록의 도메인 중에서 토큰 도메인을 호스트 도메인과 일치하고 가장 짧은 도메인으로 AWS WAF 설정합니다. 예를 들어 호스트 도메인이 `api.example.com` 이고 토큰 도메인 목록에가 있는 경우는 호스트 도메인과 일치하고 더 짧기 때문에 `example.com` 토큰에를 `example.com` AWS WAF 사용합니다. 보호 팩(웹 ACL)에 토큰 도메인 목록을 제공하지 않으면가 도메인을 보호된 리소스의 호스트 도메인으로 AWS WAF 설정합니다.

# 의 토큰 레이블 유형 AWS WAF
<a name="waf-tokens-labeling"></a>

이 섹션에서는 AWS WAF 토큰 관리가 웹 요청에 추가하는 레이블을 설명합니다. 레이블에 대한 일반적인 내용은 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.

 AWS WAF 봇 또는 사기 제어 관리형 규칙 그룹을 사용하는 경우 규칙 그룹은 AWS WAF 토큰 관리를 사용하여 웹 요청 토큰을 검사하고 요청에 토큰 레이블을 적용합니다. 관리형 규칙 그룹에 대한 자세한 설명은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md), [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 및 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md)을(를) 참조하십시오.

**참고**  
AWS WAF 는 이러한 지능형 위협 완화 관리형 규칙 그룹 중 하나를 사용하는 경우에만 토큰 레이블을 적용합니다.

토큰 관리는 웹 요청에 다음 레이블을 추가할 수 있습니다.

**클라이언트 세션 레이블**  
레이블에는 AWS WAF 토큰 관리가 클라이언트 세션을 식별하는 데 사용하는 고유 식별자가 `awswaf:managed:token:id:identifier` 포함되어 있습니다. 클라이언트가 새 토큰을 획득하는 경우(예: 사용하고 있던 토큰을 폐기한 후) 식별자가 변경될 수 있습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**브라우저 지문 레이블**  
레이블에는 AWS WAF 토큰 관리가 다양한 클라이언트 브라우저 신호에서 계산하는 강력한 브라우저 지문 식별자가 `awswaf:managed:token:fingerprint:fingerprint-identifier` 포함되어 있습니다. 이 식별자는 여러 토큰 획득 시도에서 동일하게 유지됩니다. 지문 식별자는 단일 클라이언트에 고유하지 않습니다.

**참고**  
AWS WAF 는이 레이블에 대한 Amazon CloudWatch 지표를 보고하지 않습니다.

**토큰 상태 레이블: 레이블 네임스페이스 접두사**  
토큰 상태 레이블은 토큰 및 챌린지 상태와 토큰에 포함된 CAPTCHA 정보를 보고합니다.

각 토큰 상태 레이블은 다음 네임스페이스 접두사 중 하나로 시작합니다.
+ `awswaf:managed:token:` – 토큰의 일반 상태를 보고하고 토큰의 챌린지 정보 상태를 보고하는 데 사용됩니다.
+ `awswaf:managed:captcha:` – 토큰의 CAPTCHA 정보 상태를 보고하는 데 사용됩니다.

**토큰 상태 레이블: 레이블 이름**  
접두사 뒤에 오는 라벨의 나머지 부분은 자세한 토큰 상태 정보를 제공합니다.
+ `accepted` – 요청 토큰이 존재하며 다음을 포함합니다.
  + 유효한 챌린지 또는 CAPTCHA 솔루션.
  + 만료되지 않은 챌린지 또는 CAPTCHA 타임스탬프.
  + 보호 팩(웹 ACL)에 대해 유효한 도메인 사양입니다.

  예: 레이블 `awswaf:managed:token:accepted`은(는) 웹 요청의 토큰에 유효한 인증 확인 솔루션, 만료되지 않은 챌린지 타임스탬프 및 유효한 도메인이 있음을 나타냅니다.
+ `rejected` – 요청 토큰이 존재하지만 수락 기준을 충족하지 않습니다.

  거부된 레이블과 함께 토큰 관리는 사용자 지정 레이블 네임스페이스 및 이름을 추가하여 이유를 나타냅니다.
  + `rejected:not_solved` – 토큰에 챌린지 또는 CAPTCHA 솔루션이 없습니다.
  + `rejected:expired` – 보호 팩(웹 ACL)의 구성된 토큰 면역 시간에 따라 토큰의 챌린지 또는 CAPTCHA 타임스탬프가 만료되었습니다.
  + `rejected:domain_mismatch` – 토큰의 도메인이 보호 팩(웹 ACL)의 토큰 도메인 구성과 일치하지 않습니다.
  + `rejected:invalid` - 표시된 토큰을 읽을 AWS WAF 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:rejected` 및 `awswaf:managed:captcha:rejected:expired`가 함께 표시되는 것은 토큰 내 CAPTCHA 타임스탬프가 보호 팩(웹 ACL)에 구성된 CAPTCHA 토큰 면역 시간을 초과했기 때문에 요청에 유효한 CAPTCHA 풀이가 포함되지 않았음을 의미합니다.
+ `absent` – 요청에 토큰이 없거나 토큰 관리자가 토큰을 읽을 수 없습니다.

  예: 레이블 `awswaf:managed:captcha:absent`는 요청에 토큰이 없음을 나타냅니다.

# 유효한 AWS WAF 토큰이 없는 요청 차단
<a name="waf-tokens-block-missing-tokens"></a>

이 섹션에서는 AWS WAF 모바일 SDK를 사용할 때 토큰이 누락된 로그인 요청을 차단하는 방법을 설명합니다.

지능형 위협 AWS 관리형 규칙 그룹 `AWSManagedRulesACFPRuleSet`, `AWSManagedRulesATPRuleSet`및 `AWSManagedRulesBotControlRuleSet`를 사용하는 경우 규칙 그룹은 AWS WAF 토큰 관리를 호출하여 웹 요청 토큰의 상태를 평가하고 그에 따라 요청에 레이블을 지정합니다.

**참고**  
토큰 레이블 지정은 이러한 관리형 규칙 그룹 중 하나를 사용하여 평가하는 웹 요청에만 적용됩니다.

토큰 관리에서 적용하는 레이블 지정에 대한 내용은 앞의 [의 토큰 레이블 유형 AWS WAF](waf-tokens-labeling.md) 섹션을 참조하세요.

그러면 지능형 위협 완화 관리형 규칙 그룹이 다음과 같이 토큰 요구 사항을 처리합니다.
+ `AWSManagedRulesACFPRuleSet` `AllRequests` 규칙은 모든 요청에 대해 Challenge 작업을 실행하여 `accepted` 토큰 레이블이 없는 요청을 효과적으로 차단하도록 구성됩니다.
+ `AWSManagedRulesATPRuleSet`는 `rejected` 토큰 레이블이 있는 요청을 차단하지만 `absent` 토큰 레이블이 있는 요청은 차단하지 않습니다.
+ `AWSManagedRulesBotControlRuleSet` 대상 보호 수준에서는 클라이언트가 `accepted` 토큰 레이블 없이 요청을 5회 전송하고 나면 클라이언트에 챌린지를 제시합니다. 이 수준은 유효한 토큰이 없는 개별 요청을 차단하지는 않습니다. 이 규칙 그룹의 공통 보호 수준은 토큰 요구 사항을 관리하지 않습니다.

지능형 위협 규칙 그룹에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md), [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 및 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.

**Bot Control 또는 ATP 관리형 규칙 그룹을 사용할 때 토큰이 누락된 요청을 차단하려면**  
봇 컨트롤 및 ATP 규칙 그룹을 사용하면 유효한 토큰이 없는 요청에 대해 규칙 그룹 평가를 종료하고 보호 팩(웹 ACL)에서 계속 평가할 수 있습니다.

토큰이 없거나 토큰이 거부된 모든 요청을 차단하려면 관리형 규칙 그룹 바로 뒤에 실행되도록 규칙을 추가하여 해당 규칙 그룹이 처리하지 않는 요청이 캡처 및 차단되도록 합니다.

다음은 ATP 관리형 규칙 그룹을 사용하는 보호 팩(웹 ACL)의 예제 JSON 목록입니다. 보호 팩(웹 ACL)에는 `awswaf:managed:token:absent` 레이블을 캡처하고 처리하는 규칙이 추가되었습니다. 이 규칙은 평가 범위를 로그인 엔드포인트로 이동하는 웹 요청으로 좁혀서 ATP 규칙 그룹의 범위와 일치시킵니다. 추가된 규칙은 굵게 표시됩니다.

```
{
  "Name": "exampleWebACL",
  "Id": "55555555-6666-7777-8888-999999999999",
  "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/webacl/exampleWebACL/55555555-4444-3333-2222-111111111111",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesATPRuleSet",
      "Priority": 1,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesATPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesATPRuleSet": {
                "LoginPath": "/web/login",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  }
                },
                "ResponseInspection": {
                  "StatusCode": {
                    "SuccessCodes": [
                      200
                    ],
                    "FailureCodes": [
                      401,
                      403,
                      500
                    ]
                  }
                }
              }  
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesATPRuleSet"
      }
    },
    {
      "Name": "RequireTokenForLogins",
      "Priority": 2,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "Statement": {
                "LabelMatchStatement": {
                  "Scope": "LABEL",
                  "Key": "awswaf:managed:token:absent"
                }
              }
            },
            {
              "ByteMatchStatement": {
                "SearchString": "/web/login",
                "FieldToMatch": {
                  "UriPath": {}
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                 }
                ],
                "PositionalConstraint": "STARTS_WITH"
              }
            },
            {
              "ByteMatchStatement": {
                "SearchString": "POST",
                "FieldToMatch": {
                  "Method": {}
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ],
                "PositionalConstraint": "EXACTLY"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RequireTokenForLogins"
      } 
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "exampleWebACL"
  },
  "Capacity": 51,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111111111111:webacl:exampleWebACL:"
}
```

# CloudFront 오리진인 Application Load Balancer에 필요한 구성
<a name="waf-tokens-with-alb-and-cf"></a>

보호 팩(웹 ACL)을 Application Load Balancer에 연결하고 Application Load Balancer를 CloudFront 배포의 오리진으로 배포하는 경우 이 섹션을 참조하세요.

이 아키텍처를 사용하는 경우 토큰 정보가 올바르게 처리되도록 하려면 다음과 같은 추가 구성을 제공해야 합니다.
+ `aws-waf-token` 쿠키를 Application Load Balancer로 전달하도록 CloudFront를 구성합니다. 기본적으로 CloudFront는 오리진에 웹 요청을 전달하기 전에 웹 요청의 쿠키를 제거합니다. 토큰 쿠키를 웹 요청과 함께 유지하려면 토큰 쿠키만 포함하거나 모든 쿠키를 포함하도록 CloudFront 캐시 동작을 구성합니다. 그 방법에 대해 알아보려면 *Amazon CloudFront 개발자 안내서*의 [쿠키 기반의 콘텐츠 캐싱](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html)을 참조하세요.
+ CloudFront 배포의 도메인을 유효한 토큰 도메인으로 인식 AWS WAF 하도록를 구성합니다. 기본적으로 CloudFront는 `Host` 헤더를 Application Load Balancer 오리진으로 설정하고 이를 보호된 리소스의 도메인으로 AWS WAF 사용합니다. 하지만 클라이언트 브라우저에서는 CloudFront 배포를 호스트 도메인으로 간주하며, 클라이언트용으로 생성된 토큰은 CloudFront 도메인을 토큰 도메인으로 사용합니다. 추가 구성이 없으면가 토큰 도메인에 대해 보호된 리소스 도메인을 AWS WAF 확인하면 불일치가 발생합니다. 이 문제를 해결하려면 CloudFront 배포 도메인 이름을 보호 팩(웹 ACL) 구성의 토큰 도메인 목록에 추가하십시오. 이를 위한 자세한 방법은 [AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성](waf-tokens-domains.md#waf-tokens-domain-lists) 섹션을 참조하세요.

# AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)
<a name="waf-acfp"></a>

이 섹션에서는 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)가 수행하는 작업을 설명합니다.

계정 생성 사기는 공격자가 하나 이상의 허위 계정을 만들려고 하는 온라인 불법 활동입니다. 공격자는 허위 계정을 사용하여 프로모션 및 가입 보너스를 남용하거나 누군가를 사칭하는 사기 활동과 피싱 등의 사이버 공격을 수행합니다. 허위 계정이 존재하면 고객에 대해 평판이 손상되고 금융 사기에 노출되어 비즈니스에 부정적인 영향이 미칠 수 있습니다.

ACFP 기능을 구현하여 계정 생성 사기 시도를 모니터링하고 제어할 수 있습니다.는 컴패니언 애플리케이션 통합 SDKs와 `AWSManagedRulesACFPRuleSet` 함께 AWS 관리형 규칙 규칙 그룹에서이 기능을 AWS WAF 제공합니다.

ACFP 관리형 규칙 그룹은 악의적인 계정 생성 시도의 일부일 수 있는 요청에 레이블을 지정하고 관리합니다. 규칙 그룹은 클라이언트가 애플리케이션의 계정 가입 엔드포인트로 보내는 계정 생성 시도를 검사하여 이 작업을 수행합니다.

ACFP는 비정상적인 활동에 대한 계정 가입 요청을 모니터링하고 의심스러운 요청을 자동으로 차단하여 계정 가입 페이지를 보호합니다. 규칙 그룹은 요청 식별자, 행동 분석 및 기계 학습을 사용하여 사기성 요청을 탐지합니다.
+ **요청 검사** - ACFP는 비정상적인 계정 생성 시도 및 탈취한 보안 인증 정보를 사용하는 시도에 대한 가시성과 제어를 제공하여 사기 계정 생성을 방지합니다. ACFP는 도용된 보안 인증 정보 데이터베이스에서 이메일과 암호 조합을 검사합니다. 이 데이터베이스는 새로 유출된 보안 인증 정보가 다크 웹에서 발견될 때마다 정기적으로 업데이트됩니다. ACFP는 이메일 주소에 사용되는 도메인을 평가하고 전화번호 및 주소 필드의 사용을 모니터링하여 입력 내용을 확인하고 사기 행위를 탐지합니다. ACFP는 IP 주소 및 클라이언트 세션별로 데이터를 집계하여 의심스러운 요청을 너무 많이 보내는 클라이언트를 감지하고 차단합니다.
+ **응답 검사** – CloudFront 배포의 경우 ACFP 규칙 그룹은 수신 계정 생성 요청을 검사하는 것 외에도 계정 생성 시도에 대한 애플리케이션의 응답을 검사하여 성공률과 실패율을 추적합니다. ACFP는 이 정보를 사용하여 계정 생성 시도 실패가 너무 많은 클라이언트 세션 또는 IP 주소를 일시적으로 차단할 수 있습니다. AWS WAF 는 응답 검사를 비동기적으로 수행하므로 이 작업으로 인해 웹 트래픽의 지연 시간이 증가하지 않습니다.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**참고**  
Amazon Cognito 사용자 풀에는 ACFP 기능을 사용할 수 없습니다.

**Topics**
+ [AWS WAF ACFP 구성 요소](waf-acfp-components.md)
+ [ACFP와 함께 애플리케이션 통합 SDK 사용](waf-acfp-with-tokens.md)
+ [ACFP 관리형 규칙 그룹을 웹 ACL에 추가](waf-acfp-rg-using.md)
+ [ACFP 테스트 및 배포](waf-acfp-deploying.md)
+ [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 예제](waf-acfp-control-examples.md)

# AWS WAF ACFP 구성 요소
<a name="waf-acfp-components"></a>

 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)의 주요 구성 요소는 다음과 같습니다.
+ **`AWSManagedRulesACFPRuleSet`** -이 AWS 관리형 규칙 규칙 그룹의 규칙은 다양한 유형의 사기 계정 생성 활동을 감지, 레이블 지정 및 처리합니다. 규칙 그룹은 클라이언트가 지정된 계정 등록 엔드포인트로 보내는 HTTP `GET` 텍스트/html 요청과 클라이언트가 지정된 계정 등록 엔드포인트로 보내는 `POST` 웹 요청을 검사합니다. 보호된 CloudFront 배포의 경우 규칙 그룹은 배포가 계정 생성 요청에 다시 보내는 응답도 검사합니다. 이 규칙 그룹의 규칙 목록은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 섹션을 참조하세요. 관리형 규칙 그룹 참조 문을 사용하여 보호 팩(웹 ACL)에 이 규칙 그룹을 포함할 수 있습니다. 이 규칙 그룹 사용에 대한 자세한 내용은 [ACFP 관리형 규칙 그룹을 웹 ACL에 추가](waf-acfp-rg-using.md) 섹션을 참조하세요.
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.
+ **애플리케이션의 계정 등록 및 생성 페이지에 대한 세부 정보** - `AWSManagedRulesACFPRuleSet` 규칙 그룹을 보호 팩(웹 ACL)에 추가할 때 계정 등록 및 생성 페이지에 대한 정보를 제공해야 합니다. 이렇게 하면 규칙 그룹이 검사하는 요청의 범위를 좁히고 계정 생성 웹 요청을 적절하게 검증할 수 있습니다. 등록 페이지는 `GET` 텍스트/html 요청을 수락해야 합니다. 계정 생성 경로에서 `POST` 요청을 수락해야 합니다. ACFP 규칙 그룹은 이메일 형식의 사용자 이름을 사용합니다. 자세한 내용은 [ACFP 관리형 규칙 그룹을 웹 ACL에 추가](waf-acfp-rg-using.md) 단원을 참조하십시오.
+ **보호된 CloudFront 배포의 경우 애플리케이션이 계정 생성 시도에 응답하는 방식에 대한 세부 정보** - 사용자가 계정 생성 시도에 대한 애플리케이션의 응답에 대한 세부 정보를 제공하면 ACFP 규칙 그룹은 단일 IP 주소 또는 단일 클라이언트 세션에서 대량 계정 생성 시도를 추적하고 관리합니다. 이 옵션의 구성에 대한 자세한 내용은 [ACFP 관리형 규칙 그룹을 웹 ACL에 추가](waf-acfp-rg-using.md) 섹션을 참조하세요.
+ **JavaScript 및 모바일 애플리케이션 통합 SDKs** - ACFP 구현으로 AWS WAF JavaScript 및 모바일 SDKs를 구현하여 규칙 그룹이 제공하는 전체 기능 세트를 활성화합니다. 많은 ACFP 규칙은 합법적인 클라이언트 트래픽을 봇 트래픽과 분리하는 데 필요한 세션 수준 클라이언트 확인 및 행동 집계에 대해 SDK에서 제공하는 정보를 사용합니다. SDK에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md)을 참조하세요.

ACFP 구현을 다음과 결합하여 보호 기능을 모니터링, 조정 및 사용자 지정할 수 있습니다.
+ **로깅 및 지표** - 트래픽을 모니터링할 수 있으며, 로그, Amazon Security Lake 데이터 수집 및 보호 팩(웹 ACL)에 대한 Amazon CloudWatch 지표를 구성하고 활성화하여 ACFP 관리형 규칙 그룹이 트래픽에 미치는 영향을 파악할 수 있습니다. 웹 요청에 `AWSManagedRulesACFPRuleSet`가 추가하는 레이블은 데이터에 포함됩니다. 옵션에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md), [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 및 [Amazon Security Lake란 무엇입니까?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)를 참조하세요.

  요구 사항과 표시되는 트래픽에 따라 `AWSManagedRulesACFPRuleSet` 구현을 사용자 지정해야 할 수도 있습니다. 예를 들어 ACFP 평가에서 일부 트래픽을 제외하거나 범위 축소 문 또는 레이블 일치 규칙과 같은 AWS WAF 기능을 사용하여 식별한 계정 생성 사기 시도 중 일부를 처리하는 방법을 변경할 수 있습니다.
+ **레이블 및 레이블 일치 규칙** - `AWSManagedRulesACFPRuleSet`에 있는 모든 규칙의 경우 차단 동작을 계산으로 전환한 다음, 규칙에 의해 추가되는 레이블과 일치시킬 수 있습니다. 이 접근 방식을 사용하여 ACFP 관리형 규칙 그룹으로 식별되는 웹 요청을 처리하는 방식을 사용자 지정할 수 있습니다. 레이블 일치 문의 레이블 지정 및 사용에 대한 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 및 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.
+ **사용자 지정 요청 및 응답** - 허용하는 요청에 사용자 지정 헤더를 추가하고 차단한 요청에 대해 사용자 지정 응답을 보낼 수 있습니다. 이렇게 하려면 레이블 일치를 AWS WAF 사용자 지정 요청 및 응답 기능과 페어링해야 합니다. 요청 및 응답을 사용자 지정하는 방법에 대한 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 섹션을 참조하세요.

# ACFP와 함께 애플리케이션 통합 SDK 사용
<a name="waf-acfp-with-tokens"></a>

ACFP 규칙 그룹을 가장 효율적으로 사용하려면 애플리케이션 통합 SDK를 구현하는 것이 좋습니다.
+ **전체 규칙 그룹 기능** — ACFP 규칙 `SignalClientHumanInteractivityAbsentLow`에는 애플리케이션 통합에서 작성된 토큰만 사용됩니다. 이 규칙은 애플리케이션 페이지와의 비정상적인 사용자 상호 작용을 탐지하고 관리합니다. 애플리케이션 통합 SDK는 마우스 이동, 키 누름 및 기타 측정을 통해 인간의 정상적인 상호 작용을 탐지할 수 있습니다. 규칙 작업 CAPTCHA 및 Challenge를 통해 전송되는 중간 광고는 이러한 유형의 데이터를 제공할 수 없습니다.
+ **지연 시간 감소** - 규칙 그룹 규칙 `AllRequests`는 아직 챌린지 토큰이 없는 모든 요청에 Challenge 규칙 작업을 적용합니다. 이러한 상황이 발생할 경우 규칙 그룹은 해당 요청을 두 번 평가합니다. 즉, 한 번은 토큰이 없는 상태로, 두 번째는 Challenge 작업 중간 광고를 통해 토큰을 획득한 후에 평가합니다. `AllRequests` 규칙만 사용하는 경우에는 추가 요금이 부과되지 않지만, 이 접근 방식은 웹 트래픽에 오버헤드를 추가하고 최종 사용자 환경에 지연 시간을 추가합니다. 애플리케이션 통합을 사용하여 클라이언트 측에서 토큰을 획득하는 경우 계정 생성 요청을 보내기 전에 ACFP 규칙 그룹이 요청을 한 번 평가합니다.

규칙 그룹 기능에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 섹션을 참조하세요.

SDK에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요. AWS WAF 토큰에 대한 자세한 내용은 단원을 참조하십시오[AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md). 규칙 작업에 대한 자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 섹션을 참조하세요.

# ACFP 관리형 규칙 그룹을 웹 ACL에 추가
<a name="waf-acfp-rg-using"></a>

이 섹션에서는 `AWSManagedRulesACFPRuleSet` 규칙 그룹을 추가하고 구성하는 방법을 설명합니다.

웹 트래픽의 계정 생성 사기 활동을 인식하도록 ACFP 관리형 규칙 그룹을 구성하려면 클라이언트가 등록 페이지에 액세스하여 계정 생성 요청을 해당 애플리케이션에 보내는 방법에 대한 정보를 제공합니다. 보호된 Amazon CloudFront 배포의 경우 애플리케이션이 계정 생성 요청에 어떻게 응답하는지에 대한 정보도 제공합니다. 이 구성은 관리형 규칙 그룹의 일반 구성에 추가됩니다.

규칙 그룹 설명 및 규칙 목록은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 섹션을 참조하세요.

**참고**  
ACFP 도용된 보안 인증 정보 데이터베이스에는 이메일 형식의 사용자 이름만 포함됩니다.

이 지침은 AWS WAF 보호 팩(웹 ACL), 규칙 및 규칙 그룹을 만들고 관리하는 방법을 일반적으로 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다. 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가하는 방법에 대한 기본 정보는 [콘솔을 통해 보호 팩(웹 ACL)에 관리형 규칙 그룹 추가](waf-using-managed-rule-group.md) 섹션을 참조하세요.

**모범 사례 따르기**  
[의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md)의 모범 사례에 따라 ACFP 규칙 그룹을 사용하십시오.

**보호 팩(웹 ACL)에서 `AWSManagedRulesACFPRuleSet` 규칙 그룹 사용**

1.  AWS 관리형 규칙 그룹을 보호 팩(웹 ACL)`AWSManagedRulesACFPRuleSet`에 추가하고 규칙 그룹 설정을 **편집**한 후 저장합니다.
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

1. **규칙 그룹 구성** 창에서 ACFP 규칙 그룹이 계정 생성 요청을 검사하는 데 사용하는 정보를 제공합니다.

   1. 등록 및 계정 생성 페이지 **경로 사양에 대해 정규식 일치를 수행하려면 경로에서** 정규식 사용에서이 기능을 켭니다. AWS WAF 

      AWS WAF 는 일부 예외를 `libpcre` 제외하고 PCRE 라이브러리에서 사용하는 패턴 구문을 지원합니다. 이 라이브러리는 [PCRE - Perl 호환 정규식](http://www.pcre.org/)에 문서화되어 있습니다. AWS WAF 지원에 대한 자세한 내용은 섹션을 참조하세요[에서 지원되는 정규식 구문 AWS WAF](waf-regex-pattern-support.md).

   1. **등록 페이지 경로**에 애플리케이션의 등록 페이지 엔드포인트 경로를 제공합니다. 이 페이지는 `GET` 텍스트/html 요청을 수락해야 합니다. 이 규칙 그룹은 지정된 등록 페이지 엔드포인트에 대한 HTTP `GET` 텍스트/html 요청만 검사합니다.
**참고**  
엔드포인트에 대한 일치는 대/소문자를 구분하지 않습니다. Regex 사양에는 대소문자를 구분하지 않는 일치를 비활성화하는 플래그 `(?-i)`이(가) 포함되어서는 안 됩니다. 문자열 사양은 슬래시 `/`로 시작해야 합니다.

      예를 들어, URL `https://example.com/web/registration`의 경우 문자열 경로 사양 `/web/registration`을(를) 제공할 수 있습니다. 입력한 경로로 시작하는 등록 페이지 경로는 일치하는 것으로 간주됩니다. 예를 들어, `/web/registration`는 등록 경로 `/web/registration`, `/web/registration/`, `/web/registrationPage` 및 `/web/registration/thisPage`와 일치하지만, `/home/web/registration` 또는 `/website/registration` 경로와는 일치하지 않습니다.
**참고**  
최종 사용자가 계정 생성 요청을 제출하기 전에 등록 페이지를 로드하도록 해야 합니다. 이렇게 하면 클라이언트의 계정 생성 요청에 유효한 토큰이 포함되도록 할 수 있습니다.

   1. **계정 생성 경로**의 경우 완성된 새 사용자 세부 정보를 받아들이는 웹 사이트의 URI를 제공하세요. 이 URI는 `POST` 요청을 수락해야 합니다.
**참고**  
엔드포인트에 대한 일치는 대/소문자를 구분하지 않습니다. Regex 사양에는 대소문자를 구분하지 않는 일치를 비활성화하는 플래그 `(?-i)`이(가) 포함되어서는 안 됩니다. 문자열 사양은 슬래시 `/`로 시작해야 합니다.

      예를 들어, URL `https://example.com/web/newaccount`의 경우 문자열 경로 사양 `/web/newaccount`을(를) 제공할 수 있습니다. 입력한 경로로 시작하는 계정 생성 경로는 일치하는 것으로 간주됩니다. 예를 들어 `/web/newaccount`는 계정 생성 경로 `/web/newaccount`, `/web/newaccount/`, `/web/newaccountPage` 및 `/web/newaccount/thisPage`와 일치하지만, `/home/web/newaccount` 또는 `/website/newaccount` 경로와는 일치하지 않습니다.

   1. **요청 검사**의 경우 요청 본문에서 사용자 이름, 암호 및 기타 계정 생성 세부 정보를 입력하는 필드 이름과 요청 페이로드 유형을 제공하여 애플리케이션에서 계정 생성 시도를 수락하는 방식을 지정합니다.
**참고**  
기본 주소 및 전화번호 필드의 경우 요청 페이로드에 나타나는 순서대로 필드를 입력합니다.

      필드 이름 사양은 페이로드 유형에 따라 달라집니다.
      + **JSON 페이로드 유형** - JSON 포인터 구문으로 필드 이름을 지정합니다. JSON 포인터 구문에 대한 자세한 내용을 알아보려면 Internet Engineering Task Force(IETF) 설명서 [JavaScript Object Notation (JSON) Pointer](https://tools.ietf.org/html/rfc6901)(JavaScript 객체 표기법(JSON) 포인터)를 참조하세요.

        예를 들어 다음 JSON 페이로드 예제의 경우 사용자 이름 필드 사양은 `/signupform/username`이고 기본 주소 필드 사양은 `/signupform/addrp1`, `/signupform/addrp2` 및 `/signupform/addrp3`입니다.

        ```
        {
            "signupform": {
                "username": "THE_USERNAME",
                "password": "THE_PASSWORD",
                "addrp1": "PRIMARY_ADDRESS_LINE_1",
                "addrp2": "PRIMARY_ADDRESS_LINE_2",
                "addrp3": "PRIMARY_ADDRESS_LINE_3",
                "phonepcode": "PRIMARY_PHONE_CODE",
                "phonepnumber": "PRIMARY_PHONE_NUMBER"
            }
        }
        ```
      + **FORM\$1ENCODED 페이로드 유형** - HTML 양식 이름을 사용합니다.

        예를 들어 사용자 및 암호 입력 요소의 이름이 `username1` 및 `password1` 인 HTML 양식의 경우 사용자 이름 필드 사양은 `username1`이고 암호 필드 사양은 `password1`입니다.

   1. Amazon CloudFront 배포를 보호하려는 경우 **응답 검사**에서 애플리케이션이 계정 생성 시도에 대한 응답에 성공 또는 실패를 어떻게 표시하는지 지정합니다.
**참고**  
ACFP 응답 검사는 CloudFront 배포를 보호하는 보호 팩(웹 ACL)에서만 사용할 수 있습니다.

      ACFP에서 검사할 단일 구성 요소를 계정 생성 응답에 지정합니다. **본문** 및 **JSON** 구성 요소 유형의 경우 AWS WAF 는 구성 요소의 처음 65,536바이트(64KB)를 검사할 수 있습니다.

      인터페이스에 지정된 구성 요소 유형에 대한 검사 기준을 제공합니다. 구성 요소에서 검사할 성공 및 실패 기준을 모두 제공해야 합니다.

      예를 들어 애플리케이션이 응답의 상태 코드에 계정 생성 시도의 상태를 표시하고 성공 시 `200 OK` 그리고 실패 시 `401 Unauthorized` 또는 `403 Forbidden`을 사용한다고 가정해 보겠습니다. 응답 검사 **구성 요소 유형**을 **상태 코드**로 설정한 다음 **성공** 텍스트 상자에 `200`을 입력하고, **실패** 텍스트 상자의 첫 번째 줄에 `401`을 입력하고, 두 번째 줄에 `403`을 입력합니다.

      ACFP 규칙 그룹은 성공 또는 실패 검사 기준과 일치하는 응답만 계산합니다. 규칙 그룹의 규칙은 대량 계정 생성 시도를 줄이기 위해 계수된 응답 중 성공률이 너무 높은 클라이언트에게 적용됩니다. 규칙 그룹의 규칙이 정확한 작동하려면 성공 및 실패한 계정 생성 시도 모두에 대한 전체 정보를 제공해야 합니다.

      계정 생성 응답을 검사하는 규칙을 보려면 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md)의 규칙 목록에서 `VolumetricIPSuccessfulResponse` 및 `VolumetricSessionSuccessfulResponse`를 찾아보십시오.

1. 규칙 그룹에 사용할 추가 구성을 모두 제공합니다.

   관리형 규칙 그룹 문에 범위 축소 문을 추가하여 규칙 그룹이 검사하는 요청의 범위를 추가 제한할 수 있습니다. 예를 들어 특정 쿼리 인수 또는 쿠키가 있는 요청만 검사할 수 있습니다. 규칙 그룹은 범위 축소 문의 기준과 일치하고 규정 그룹 구성에 지정된 계정 등록 및 계정 생성 경로로 전송된 요청만 검사합니다. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.

1. 변경 사항을 보호 팩(웹 ACL)에 저장합니다.

프로덕션 트래픽용 ACFP 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다. 지침은 다음 섹션을 참조하세요.

# ACFP 테스트 및 배포
<a name="waf-acfp-deploying"></a>

이 섹션에서는 사이트에 대한 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 구현을 구성하고 테스트하기 위한 일반적인 지침을 제공합니다. 따르기로 선택한 구체적인 단계는 요구 사항, 리소스 및 수신하는 웹 요청에 따라 달라집니다.

이 정보는 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)에 제공된 테스트 및 조정에 대한 일반 정보 외의 정보입니다.

**참고**  
AWS 관리형 규칙은 일반적인 웹 위협으로부터 사용자를 보호하도록 설계되었습니다. 설명서에 따라 사용하는 경우 AWS 관리형 규칙 규칙 그룹은 애플리케이션에 또 다른 보안 계층을 추가합니다. 그러나 AWS 관리형 규칙 규칙 그룹은 보안 책임을 대체하기 위한 것이 아니며, 이는 선택한 AWS 리소스에 따라 결정됩니다. 의 리소스가 AWS 적절하게 보호되도록 공동 [책임 모델을](https://aws.amazon.com/compliance/shared-responsibility-model/) 참조하세요.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 ACFP 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다.

AWS WAF 는 ACFP 구성을 확인하는 데 사용할 수 있는 테스트 자격 증명을 제공합니다. 다음 절차에서는 ACFP 관리형 규칙 그룹을 사용하도록 테스트 보호 팩(웹 ACL)을 구성하고 규칙 그룹에서 추가한 레이블을 캡처하도록 규칙을 구성한 다음, 이러한 테스트 자격 증명을 사용하여 계정 생성 시도를 실행합니다. Amazon CloudWatch 지표에서 계정 생성 시도를 확인하여 보호 팩(웹 ACL)이 해당 시도를 제대로 관리했는지 확인할 수 있습니다.

이 지침은 AWS WAF 보호 팩(웹 ACL), 규칙 및 규칙 그룹을 만들고 관리하는 방법을 일반적으로 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다.

**AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 구현을 구성하고 테스트하려면**

이러한 단계를 먼저 테스트 환경에서 수행한 다음, 프로덕션 환경에서 수행합니다.

1. 

**계산 모드에서 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 관리형 규칙 그룹 추가**
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

    AWS 관리형 규칙 규칙 그룹을 새 보호 팩 또는 기존 보호 팩(웹 ACL)`AWSManagedRulesACFPRuleSet`에 추가하고 현재 보호 팩(웹 ACL) 동작을 변경하지 않도록 구성합니다. 이 규칙 그룹의 규칙 및 레이블에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 섹션을 참조하세요.
   + 관리형 규칙 그룹을 추가할 때는 해당 규칙 그룹을 편집하고 다음을 수행합니다.
     + **규칙 그룹 구성** 창에서 애플리케이션의 계정 등록 및 생성 페이지의 세부 정보를 제공합니다. ACFP 규칙 그룹은 이 정보를 사용하여 로그인 활동을 모니터링합니다. 자세한 내용은 [ACFP 관리형 규칙 그룹을 웹 ACL에 추가](waf-acfp-rg-using.md) 단원을 참조하십시오.
     + **규칙** 창에서 모든 규칙 **모든 규칙 작업 재정의** 드롭다운을 열고 **Count**를 선택합니다. 이 구성을 사용하면 AWS WAF 는 요청에 레이블을 여전히 추가하면서 규칙 그룹의 모든 규칙과 비교하여 요청을 평가한 후 일치하는 항목 수만 계산합니다. 자세한 내용은 [규칙 그룹에 대한 규칙 작업 재정의](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override) 단원을 참조하십시오.

       이 재정의를 통해 ACFP 관리형 규칙의 잠재적 영향을 모니터링하여 내부 사용 사례에 대한 예외와 같은 예외를 추가할지 여부를 결정할 수 있습니다.
   + 이미 사용 중인 규칙 또는 규칙 그룹보다 높은 우선순위를 지정하여 보호 팩(웹 ACL)의 기존 규칙 다음에 평가되도록 규칙 그룹을 배치합니다. 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 단원을 참조하십시오.

     이렇게 하면 현재의 트래픽 처리가 중단되지 않습니다. 예를 들어 SQL 명령어 삽입이나 교차 사이트 스크립팅과 같은 악성 트래픽을 탐지하는 규칙이 있는 경우 이들 규칙이 이러한 트래픽을 계속 탐지하고 기록합니다. 또는 악의적이지 않은 알려진 트래픽을 허용하는 규칙이 있는 경우 해당 트래픽을 ACFP 관리형 규칙 그룹을 통해 차단하지 않고 계속 허용할 수 있습니다. 테스트 및 조정 활동 중에 처리 순서를 조정하기로 결정할 수 있습니다.

1. 

**애플리케이션 통합 SDK를 구현합니다.**

    AWS WAF JavaScript SDK를 브라우저의 계정 등록 및 계정 생성 경로에 통합합니다.는 iOS 및 Android 디바이스를 통합하기 위한 모바일 SDKs AWS WAF 도 제공합니다. SDK 통합에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요. 이 권장 사항에 대한 자세한 내용은 [ACFP와 함께 애플리케이션 통합 SDK 사용](waf-acfp-with-tokens.md) 섹션을 참조하세요.
**참고**  
애플리케이션 통합 SDK를 사용할 수 없는 경우, 보호 팩(웹 ACL)에서 편집하고 `AllRequests` 규칙에 적용한 재정의를 제거하여 ACFP 규칙 그룹을 테스트할 수 있습니다. 이렇게 하면 규칙의 Challenge 작업 설정이 활성화되어 요청에 유효한 챌린지 토큰을 포함할 수 있습니다.  
*먼저 이 작업을 테스트 환경에서 수행한 다음 프로덕션 환경에서 세심한 주의를 기울여 다시 수행합니다.* 이 접근 방식은 사용자를 차단할 가능성이 있습니다. 예를 들어 등록 페이지 경로에서 `GET` 텍스트/html 요청을 수락하지 않는 경우 이 규칙 구성을 통해 등록 페이지의 모든 요청을 효과적으로 차단할 수 있습니다.

1. 

**보호 팩(웹 ACL)의 로깅 및 지표 활성화**

   필요에 따라 보호 팩(웹 ACL)에 대한 로깅, Amazon Security Lake 데이터 수집, 요청 샘플링 및 Amazon CloudWatch 지표를 구성합니다. 이러한 가시성 도구를 사용하여 ACFP 관리형 규칙 그룹과 트래픽 간의 상호 작용을 모니터링할 수 있습니다.
   + 로깅에 대한 추가 정보는 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.
   + Amazon Security Lake에 대한 자세한 내용은 [Amazon Security Lake 사용 설명서의 Amazon Security Lake란 무엇인가요?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) 및 [AWS 서비스에서 데이터 수집](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)을 참조하세요. ** 
   + Amazon CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.
   + 웹 요청 샘플링에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요.

1. 

**보호 팩(웹 ACL)을 리소스와 연결**

   보호 팩(웹 ACL)이 아직 테스트 리소스와 연결되지 않은 경우 해당 리소스를 연결합니다. 자세한 내용은 [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md) 단원을 참조하세요.

1. 

**트래픽과 ACFP 규칙 일치 모니터링**

   트래픽이 정상적으로 흐르고 있고 ACFP 관리형 규칙의 그룹 규칙이 일치하는 웹 요청에 레이블을 추가하고 있는지 확인하십시오. 로그에서 레이블을 볼 수 있고 Amazon CloudWatch 지표에서 ACFP 및 레이블 지표를 볼 수 있습니다. 로그에서 규칙 그룹에서 개수하도록 재정의한 규칙은 계수로 설정된 `action`과 재정의한 구성된 규칙 작업을 나타내는 `overriddenAction`을 포함하는 `ruleGroupList`로 표시됩니다.

1. 

**규칙 그룹의 보안 인증 정보 검사 기능 테스트**

   테스트용 손상된 보안 인증 정보으로 계정 생성을 시도하고 규칙 그룹이 예상대로 보안 인증 정보과 일치하는지 확인합니다.

   1. 보호된 자원의 계정 등록 페이지에 액세스하여 새 계정을 추가해 봅니다. 다음 AWS WAF 테스트 자격 증명 페어를 사용하고 모든 테스트를 입력합니다.
      + 사용자: `WAF_TEST_CREDENTIAL@wafexample.com`
      + 암호: `WAF_TEST_CREDENTIAL_PASSWORD`

      이러한 테스트 보안 인증 정보는 손상된 보안 인증 정보으로 분류되며, ACFP 관리형 규칙 그룹은 로그에서 확인할 수 있는 계정 생성 요청에 `awswaf:managed:aws:acfp:signal:credential_compromised` 레이블을 추가합니다.

   1. 보호 팩(웹 ACL) 로그의 테스트 계정 생성 요청에 대한 로그 항목의 `labels` 필드에서 `awswaf:managed:aws:acfp:signal:credential_compromised` 레이블을 찾습니다. 로깅에 대한 추가 정보는 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.

   규칙 그룹이 손상된 보안 인증 정보를 예상대로 캡처하는지 확인한 후에는 보호된 리소스에 필요한 대로 구현을 구성하는 단계를 수행할 수 있습니다.

1. 

**CloudFront 배포의 경우 대량 계정 생성 시도에 대한 규칙 그룹 관리를 테스트합니다.**

   ACFP 규칙 그룹에 대해 구성한 각 성공 응답 기준에 대해 이 테스트를 실행합니다. 테스트마다 30분 이상의 대기 시간을 둡니다.

   1. 각 성공 기준마다 응답에서 해당 성공 기준을 충족할 계정 생성 시도를 식별합니다. 그런 다음 단일 고객 세션에서 30분 이내에 최소 5번의 성공적인 계정 생성 시도를 수행합니다. 일반적으로 사용자는 사이트에서 단 하나의 계정만 생성합니다.

      계정을 처음 성공적으로 생성한 후에는 `VolumetricSessionSuccessfulResponse` 규칙이 규칙 작업 재정의에 따라 나머지 계정 생성 응답에 대해 일치, 레이블 지정 및 계산을 시작합니다. 이 규칙은 지연 시간으로 인해 처음 한두 개를 놓칠 수 있습니다.

   1. 보호 팩(웹 ACL) 로그의 테스트 계정 생성 웹 요청에 대한 로그 항목의 `labels` 필드에서 `awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:high` 레이블을 찾습니다. 로깅에 대한 추가 정보는 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.

   이 테스트는 규칙에서 집계된 성공 수가 규칙의 임계값을 초과하는지 확인하여 성공 기준과 응답의 일치 여부를 확인합니다. 임계값에 도달한 후에도 동일한 세션에서 계정 생성 요청을 계속 보내면 성공률이 임계값 아래로 떨어질 때까지 규칙이 계속 일치합니다. 임계값을 초과한 경우 이 규칙은 세션 주소에서의 성공하거나 실패한 계정 생성 시도를 모두 일치시킵니다.

1. 

**ACFP 웹 요청 처리 사용자 지정**

   필요에 따라 요청을 명시적으로 허용하거나 차단하는 자체 규칙을 추가하여 ACFP 규칙이 요청을 처리하는 방식을 변경합니다.

   예를 들어 ACFP 레이블을 사용하여 요청을 허용 또는 차단하거나 요청 처리를 사용자 지정할 수 있습니다. ACFP 관리형 규칙 그룹 뒤에 레이블 일치 규칙을 추가하여 적용할 처리에 대해 레이블이 지정된 요청을 필터링할 수 있습니다. 테스트 후에는 관련 ACFP 규칙을 계산 모드로 유지하고 사용자 지정 규칙에서 요청 처리 결정을 유지하십시오. 예제는 [ACFP 예제: 손상된 보안 인증 정보에 대한 사용자 지정 응답](waf-acfp-control-example-compromised-credentials.md) 섹션을 참조하세요.

1. 

**테스트 규칙을 제거하고 ACFP 관리형 규칙 그룹 설정을 활성화합니다.**

   상황에 따라 일부 ACFP 규칙을 계산 모드로 유지하기로 결정할 수도 있습니다. 규칙 그룹 내부에 구성된 대로 실행하려는 규칙에 대해서는 보호 팩(웹 ACL) 규칙 그룹 구성에서 계산 모드를 비활성화합니다. 테스트를 마치면 테스트 레이블 일치 규칙을 제거할 수도 있습니다.

1. 

**모니터링 및 조정**

   웹 요청이 원하는 대로 처리되도록 하려면 사용하려는 ACFP 기능을 활성화한 후 트래픽을 면밀히 모니터링합니다. 규칙 그룹의 규칙 수 재정의 및 자체 규칙을 사용하여 필요에 따라 동작을 조정합니다.

ACFP 규칙 그룹 구현 테스트를 완료한 후 브라우저의 계정 등록 및 계정 생성 페이지에 아직 AWS WAF JavaScript SDK를 통합하지 않은 경우 그렇게 하는 것이 좋습니다. AWS WAF 또한는 iOS 및 Android 디바이스를 통합하기 위한 모바일 SDKs 제공합니다. SDK 통합에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요. 이 권장 사항에 대한 자세한 내용은 [ACFP와 함께 애플리케이션 통합 SDK 사용](waf-acfp-with-tokens.md) 섹션을 참조하세요.

# AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 예제
<a name="waf-acfp-control-examples"></a>

이 섹션에서는 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 구현의 일반적인 사용 사례를 충족하는 예제 구성을 보여줍니다.

각 예제는 사용 사례에 대한 설명을 제공하고 나서 사용자 지정 구성 규칙의 JSON 목록에 나와 있는 솔루션을 표시합니다.

**참고**  
콘솔 보호 팩(웹 ACL) JSON 다운로드 또는 규칙 JSON 편집기를 통해, 또는 API 및 명령줄 인터페이스의 `getWebACL` 작업을 통해 이 예제에 표시된 목록과 같은 JSON 목록을 검색할 수 있습니다.

**Topics**
+ [ACFP 예제: 단순 구성](waf-acfp-control-example-basic.md)
+ [ACFP 예제: 손상된 보안 인증 정보에 대한 사용자 지정 응답](waf-acfp-control-example-compromised-credentials.md)
+ [ACFP 예제: 응답 검사 구성](waf-acfp-control-example-response-inspection.md)

# ACFP 예제: 단순 구성
<a name="waf-acfp-control-example-basic"></a>

다음 JSON 목록은 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 관리형 규칙 그룹이 있는 예제 보호 팩(웹 ACL)을 보여줍니다. 확인을 위해 추가 `CreationPath` 및 `RegistrationPagePath` 구성을 적어두고, 페이로드 유형과 페이로드에서 새 계정 정보를 찾는 데 필요한 정보도 함께 적어둡니다. 규칙 그룹은 이 정보를 사용하여 계정 생성 요청을 모니터링하고 관리합니다. 이 JSON에는 레이블 네임스페이스 및 보호 팩(웹 ACL)의 애플리케이션 통합 URL과 같은 보호 팩(웹 ACL)의 자동 생성 설정이 포함됩니다.

```
{
  "Name": "simpleACFP",
  "Id": "... ",
  "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/simpleACFP/... ",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesACFPRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesACFPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesACFPRuleSet": {
                "CreationPath": "/web/signup/submit-registration",
                "RegistrationPagePath": "/web/signup/registration",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  },
                  "EmailField": {
                    "Identifier": "/form/email"
                  },
                  "PhoneNumberFields": [
                    {
                      "Identifier": "/form/country-code"
                    },
                    {
                      "Identifier": "/form/region-code"
                    },
                    {
                      "Identifier": "/form/phonenumber"
                    }
                  ],
                  "AddressFields": [
                    {
                      "Identifier": "/form/name"
                    },
                    {
                      "Identifier": "/form/street-address"
                    },
                    {
                      "Identifier": "/form/city"
                    },
                    {
                      "Identifier": "/form/state"
                    },
                    {
                      "Identifier": "/form/zipcode"
                    }
                  ]
                },
                "EnableRegexInPath": false
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesACFPRuleSet"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "simpleACFP"
  },
  "Capacity": 50,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111122223333:webacl:simpleACFP:"
}
```

# ACFP 예제: 손상된 보안 인증 정보에 대한 사용자 지정 응답
<a name="waf-acfp-control-example-compromised-credentials"></a>

기본적으로 `AWSManagedRulesACFPRuleSet` 규칙 그룹에서 수행하는 보안 인증 정보 검사는 요청에 레이블을 지정하고 이를 차단하여 손상된 보안 인증 정보를 처리합니다. 규칙 그룹 및 규칙 동작에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 섹션을 참조하세요.

사용자가 제공한 계정 보안 인증 정보가 손상되었음을 사용자에게 알리려면 다음과 같이 하면 됩니다.
+ **`SignalCredentialCompromised` 규칙을 Count로 재정의** - 이렇게 하면 규칙이 일치 요청의 수만을 계산하고 레이블을 지정합니다.
+ **사용자 지정 처리가 포함된 레이블 일치 규칙 추가** - ACFP 레이블과 일치하고 사용자 지정 처리를 수행하도록 이 규칙을 구성합니다.

다음 보호 팩(웹 ACL) 목록은 `SignalCredentialCompromised` 규칙 작업이 계산으로 재정의된 이전 예제의 ACFP 관리형 규칙 그룹을 보여줍니다. 이 구성을 사용하면 이 규칙 그룹이 손상된 보안 인증 정보를 사용하는 웹 요청을 평가할 때 요청에 레이블을 지정하지만 차단하지는 않습니다.

또한 이제 보호 팩(웹 ACL)에는 `aws-waf-credential-compromised`라는 이름의 사용자 지정 응답과 `AccountSignupCompromisedCredentialsHandling`이라는 이름의 새 규칙이 있습니다. 이 규칙은 우선순위 숫자가 규칙 그룹보다 더 높게 설정되어 있으므로 보호 팩(웹 ACL) 평가에서 규칙 그룹보다 나중에 실행됩니다. 새 규칙은 모든 요청을 규칙 그룹의 손상된 보안 인증 정보 레이블과 일치시킵니다. 규칙에서 일치하는 항목을 찾으면 사용자 지정 응답 본문을 사용하여 요청에 Block 작업을 적용합니다. 사용자 지정 응답 본문은 최종 사용자에게 보안 인증 정보가 손상되었다는 정보를 제공하고 취해야 할 조치를 제안합니다.

```
{
  "Name": "compromisedCreds",
  "Id": "... ",
  "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/compromisedCreds/...",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesACFPRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesACFPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesACFPRuleSet": {
                "CreationPath": "/web/signup/submit-registration",
                "RegistrationPagePath": "/web/signup/registration",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  },
                  "EmailField": {
                    "Identifier": "/form/email"
                  },
                  "PhoneNumberFields": [
                    {
                      "Identifier": "/form/country-code"
                    },
                    {
                      "Identifier": "/form/region-code"
                    },
                    {
                      "Identifier": "/form/phonenumber"
                    }
                  ],
                  "AddressFields": [
                    {
                      "Identifier": "/form/name"
                    },
                    {
                      "Identifier": "/form/street-address"
                    },
                    {
                      "Identifier": "/form/city"
                    },
                    {
                      "Identifier": "/form/state"
                    },
                    {
                      "Identifier": "/form/zipcode"
                    }
                  ]
                },
                "EnableRegexInPath": false
              }
            }
          ],
          "RuleActionOverrides": [
            {
              "Name": "SignalCredentialCompromised",
              "ActionToUse": {
                "Count": {}
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesACFPRuleSet"
      }
    },
    {
      "Name": "AccountSignupCompromisedCredentialsHandling",
      "Priority": 1,
      "Statement": {
        "LabelMatchStatement": {
          "Scope": "LABEL",
          "Key": "awswaf:managed:aws:acfp:signal:credential_compromised"
        }
      },
      "Action": {
        "Block": {
          "CustomResponse": {
            "ResponseCode": 406,
            "CustomResponseBodyKey": "aws-waf-credential-compromised",
            "ResponseHeaders": [
              {
                "Name": "aws-waf-credential-compromised",
                "Value": "true"
              }
            ]
          }
        }
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AccountSignupCompromisedCredentialsHandling"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "compromisedCreds"
  },
  "Capacity": 51,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111122223333:webacl:compromisedCreds:",
  "CustomResponseBodies": {
    "aws-waf-credential-compromised": {
      "ContentType": "APPLICATION_JSON",
      "Content": "{\n  \"credentials-compromised\": \"The credentials you provided have been found in a compromised credentials database.\\n\\nTry again with a different username, password pair.\"\n}"
    }
  }
}
```

# ACFP 예제: 응답 검사 구성
<a name="waf-acfp-control-example-response-inspection"></a>

다음 JSON 목록은 오리진 응답을 검사하도록 구성된 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 관리형 규칙 그룹이 있는 예제 보호 팩(웹 ACL)을 보여줍니다. 성공 및 응답 상태 코드를 지정하는 응답 검사 구성을 기록해 둡니다. 헤더, 본문 및 본문 JSON 일치를 기반으로 성공 및 응답 설정을 구성할 수도 있습니다. 이 JSON에는 레이블 네임스페이스 및 보호 팩(웹 ACL)의 애플리케이션 통합 URL과 같은 보호 팩(웹 ACL)의 자동 생성 설정이 포함됩니다.

**참고**  
ATP 응답 검사는 CloudFront 배포를 보호하는 보호 팩(웹 ACL)에서만 사용할 수 있습니다.

```
{
  "Name": "simpleACFP",
  "Id": "... ",
  "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/simpleACFP/... ",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesACFPRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesACFPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesACFPRuleSet": {
                "CreationPath": "/web/signup/submit-registration",
                "RegistrationPagePath": "/web/signup/registration",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  },
                  "EmailField": {
                    "Identifier": "/form/email"
                  },
                  "PhoneNumberFields": [
                    {
                      "Identifier": "/form/country-code"
                    },
                    {
                      "Identifier": "/form/region-code"
                    },
                    {
                      "Identifier": "/form/phonenumber"
                    }
                  ],
                  "AddressFields": [
                    {
                      "Identifier": "/form/name"
                    },
                    {
                      "Identifier": "/form/street-address"
                    },
                    {
                      "Identifier": "/form/city"
                    },
                    {
                      "Identifier": "/form/state"
                    },
                    {
                      "Identifier": "/form/zipcode"
                    }
                  ]
                },
                "ResponseInspection": {
                  "StatusCode": {
                    "SuccessCodes": [
                      200
                    ],
                    "FailureCodes": [
                      401
                    ]
                  }
                },
                "EnableRegexInPath": false
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesACFPRuleSet"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "simpleACFP"
  },
  "Capacity": 50,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111122223333:webacl:simpleACFP:"
  }
```

# AWS WAF 사기 제어 계정 탈취 방지(ATP)
<a name="waf-atp"></a>

이 섹션에서는 AWS WAF 사기 제어 계정 탈취 방지(ATP)가 수행하는 작업을 설명합니다.

계정 탈취는 공격자가 개인 계정에 무단으로 액세스하는 온라인 불법 활동입니다. 공격자는 도용된 보안 인증 정보를 사용하거나 일련의 시도를 통해 피해자의 암호를 추측하는 등 다양한 방법으로 이를 수행할 수 있습니다. 공격자는 액세스 권한을 얻으면 피해자의 돈, 정보 또는 서비스를 훔칠 수 있습니다. 공격자는 피해자로 가장하여 피해자가 소유한 다른 계정에 액세스하거나 다른 사람 또는 조직의 계정에 액세스할 수 있습니다. 또한 피해자가 자신의 계정에 접근하지 못하도록 차단하기 위해 사용자의 비밀번호를 변경하려고 시도할 수도 있습니다.

ATP 기능을 구현하여 계정 탈취 시도를 모니터링하고 제어할 수 있습니다.는 AWS 관리형 규칙 규칙 그룹 `AWSManagedRulesATPRuleSet` 및 컴패니언 애플리케이션 통합 SDKs에서이 기능을 AWS WAF 제공합니다.

ATP 관리형 규칙 그룹은 사기 계정 탈취 시도의 일부일 수 있는 요청에 레이블을 지정하여 관리합니다. 규칙 그룹은 클라이언트가 애플리케이션의 로그인 엔드포인트로 보내는 로그인 시도를 검사하여 이 작업을 수행합니다.
+ **요청 검사** — ATP를 사용하면 비정상적인 로그인 시도 및 보안 인증 정보를 도용한 로그인 시도를 파악하고 제어할 수 있으므로 사기 행위로 이어질 수 있는 계정 탈취를 방지할 수 있습니다. ATP는 도용된 보안 인증 정보 데이터베이스에서 이메일과 암호 조합을 검사합니다. 이 데이터베이스는 유출된 보안 인증 정보가 다크 웹에서 발견될 때마다 정기적으로 업데이트됩니다. ATP는 IP 주소 및 클라이언트 세션별로 데이터를 집계하여 의심스러운 요청을 너무 많이 보내는 클라이언트를 탐지하고 차단합니다.
+ **응답 검사** — CloudFront 배포의 경우 ATP 규칙 그룹은 수신 로그인 요청을 검사하는 것 외에도 로그인 시도에 대한 애플리케이션의 응답을 검사하여 성공률과 실패율을 추적합니다. ATP는 이 정보를 사용하여 로그인 실패가 너무 많은 클라이언트 세션 또는 IP 주소를 일시적으로 차단할 수 있습니다. AWS WAF 는 응답 검사를 비동기적으로 수행하므로 이 작업으로 인해 웹 트래픽의 지연 시간이 증가하지 않습니다.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**참고**  
Amazon Cognito 사용자 풀에는 ATP 기능을 사용할 수 없습니다.

**Topics**
+ [AWS WAF ATP 구성 요소](waf-atp-components.md)
+ [ATP와 함께 애플리케이션 통합 SDK 사용](waf-atp-with-tokens.md)
+ [ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가](waf-atp-rg-using.md)
+ [ATP 테스트 및 배포](waf-atp-deploying.md)
+ [AWS WAF 사기 제어 계정 탈취 방지(ATP) 예제](waf-atp-control-examples.md)

# AWS WAF ATP 구성 요소
<a name="waf-atp-components"></a>

 AWS WAF 사기 제어 계정 탈취 방지(ATP)의 주요 구성 요소는 다음과 같습니다.
+ **`AWSManagedRulesATPRuleSet`** -이 AWS 관리형 규칙 규칙 그룹의 규칙은 다양한 유형의 계정 탈취 활동을 감지, 레이블 지정 및 처리합니다. 이 규칙 그룹은 클라이언트가 지정된 로그인 엔드포인트로 보내는 HTTP `POST` 웹 요청을 검사합니다. 보호된 CloudFront 배포의 경우 규칙 그룹은 배포가 이러한 요청에 다시 보내는 응답도 검사합니다. 규칙 그룹의 규칙 목록은 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 섹션을 참조하세요. 관리형 규칙 그룹 참조 문을 사용하여 보호 팩(웹 ACL)에 이 규칙 그룹을 포함할 수 있습니다. 이 규칙 그룹 사용에 대한 자세한 내용은 [ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가](waf-atp-rg-using.md) 섹션을 참조하세요.
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.
+ **애플리케이션의 로그인 페이지에 대한 세부 정보** - `AWSManagedRulesATPRuleSet` 규칙 그룹을 보호 팩(웹 ACL)에 추가할 때 로그인 페이지에 대한 정보를 제공해야 합니다. 이렇게 하면 규칙 그룹이 검사하는 요청의 범위를 좁히고 웹 요청의 보안 인증 정보 사용을 적절하게 검증할 수 있습니다. ATP 규칙 그룹은 이메일 형식의 사용자 이름을 사용합니다. 자세한 내용은 [ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가](waf-atp-rg-using.md) 단원을 참조하십시오.
+ **보호된 CloudFront 배포의 경우 애플리케이션이 로그인 시도에 응답하는 방식에 대한 세부 정보** - 사용자가 로그인 시도에 대한 애플리케이션의 응답에 대한 세부 정보를 제공하면 규칙 그룹은 실패한 대량 로그인 시도를 전송하는 클라이언트를 추적하고 관리합니다. 이 옵션의 구성에 대한 자세한 내용은 [ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가](waf-atp-rg-using.md) 섹션을 참조하세요.
+ **JavaScript 및 모바일 애플리케이션 통합 SDKs** - ATP 구현으로 AWS WAF JavaScript 및 모바일 SDKs를 구현하여 규칙 그룹이 제공하는 전체 기능 세트를 활성화합니다. 많은 ATP 규칙은 합법적인 클라이언트 트래픽을 봇 트래픽과 분리하는 데 필요한 세션 수준 클라이언트 확인 및 행동 집계에 대해 SDK에서 제공하는 정보를 사용합니다. SDK에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md)을 참조하세요.

ATP 구현을 다음과 결합하여 보호 기능을 모니터링, 조정 및 사용자 지정할 수 있습니다.
+ **로깅 및 지표** - 트래픽을 모니터링할 수 있으며, 로그, Amazon Security Lake 데이터 수집 및 보호 팩(웹 ACL)에 대한 Amazon CloudWatch 지표를 구성하고 활성화하여 ACFP 관리형 규칙 그룹이 트래픽에 미치는 영향을 파악할 수 있습니다. 웹 요청에 `AWSManagedRulesATPRuleSet`가 추가하는 레이블은 데이터에 포함됩니다. 옵션에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md), [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 및 [Amazon Security Lake란 무엇입니까?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)를 참조하세요.

  요구 사항과 표시되는 트래픽에 따라 `AWSManagedRulesATPRuleSet` 구현을 사용자 지정해야 할 수도 있습니다. 예를 들어 ATP 평가에서 일부 트래픽을 제외하거나 범위 축소 문 또는 레이블 일치 규칙과 같은 AWS WAF 기능을 사용하여 식별된 일부 계정 탈취 시도를 처리하는 방법을 변경할 수 있습니다.
+ **레이블 및 레이블 일치 규칙** - `AWSManagedRulesATPRuleSet`에 있는 모든 규칙의 경우 차단 동작을 계산으로 전환한 다음, 규칙에 의해 추가되는 레이블과 일치시킬 수 있습니다. 이 접근 방식을 사용하여 ATP 관리형 규칙 그룹으로 식별되는 웹 요청을 처리하는 방식을 사용자 지정할 수 있습니다. 레이블 일치 문의 레이블 지정 및 사용에 대한 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 및 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.
+ **사용자 지정 요청 및 응답** - 허용하는 요청에 사용자 지정 헤더를 추가하고 차단한 요청에 대해 사용자 지정 응답을 보낼 수 있습니다. 이렇게 하려면 레이블 일치를 AWS WAF 사용자 지정 요청 및 응답 기능과 페어링해야 합니다. 요청 및 응답을 사용자 지정하는 방법에 대한 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 섹션을 참조하세요.

# ATP와 함께 애플리케이션 통합 SDK 사용
<a name="waf-atp-with-tokens"></a>

이 섹션에서는 ATP와 함께 애플리케이션 통합 SDK을 사용하는 방법을 설명합니다.

ATP 관리형 규칙 그룹에는 애플리케이션 통합 SDK가 생성하는 챌린지 토큰이 필요합니다. 이러한 토큰을 사용하면 규칙 그룹이 제공하는 모든 보호 기능을 사용할 수 있습니다.

ATP 규칙 그룹을 가장 효율적으로 사용하려면 애플리케이션 통합 SDK를 구현하는 것이 좋습니다. 규칙 그룹이 스크립트에서 획득한 토큰을 활용하도록 하려면 ATP 규칙 그룹보다 먼저 챌린지 스크립트를 실행해야 합니다. 이는 애플리케이션 통합 SDK를 사용하여 자동으로 수행됩니다. SDK를 사용할 수 없는 경우 ATP 규칙 그룹에서 검사할 모든 요청에 대해 Challenge 또는 CAPTCHA 규칙 작업을 실행하도록 보호 팩(웹 ACL)을 구성할 수도 있습니다. Challenge 또는 CAPTCHA 규칙 작업을 사용하는 경우 추가 비용이 발생할 수 있습니다. 요금에 대한 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**토큰이 필요하지 않은 ATP 규칙 그룹의 기능**  
웹 요청에 토큰이 없는 경우 ATP 관리형 규칙 그룹은 다음 유형의 트래픽을 차단할 수 있습니다.
+ 로그인 요청을 많이 하는 단일 IP 주소.
+ 단시간에 실패한 로그인 요청이 많이 발생하는 단일 IP 주소.
+ 동일한 사용자 이름을 사용하지만 암호를 변경하며 암호 순회로 로그인을 시도합니다.

**토큰이 필요한 ATP 규칙 그룹의 기능**  
챌린지 토큰에 제공된 정보는 규칙 그룹 및 전체 클라이언트 애플리케이션 보안의 기능을 확장합니다.

토큰은 각 웹 요청과 함께 클라이언트 정보를 제공하여 ATP 규칙 그룹이 정상적인 클라이언트 세션을 잘못된 클라이언트 세션과 분리할 수 있도록 합니다. 둘 다 단일 IP 주소에서 시작된 경우에도 마찬가지입니다. 규칙 그룹은 탐지 및 완화를 세부적으로 조정하기 위해 토큰 정보를 사용하여 클라이언트 세션 요청 동작을 집계합니다.

웹 요청에서 토큰을 사용할 수 있는 경우 ATP 규칙 그룹은 세션 수준에서 다음과 같은 추가 범주의 클라이언트를 탐지하고 차단할 수 있습니다.
+ SDK가 관리하는 자동 챌린지에 실패한 클라이언트 세션 
+ 사용자 이름 또는 암호를 순회하는 클라이언트 세션. 이를 보안 인증 정보 스터핑이라고도 합니다.
+ 도용된 보안 인증 정보를 반복적으로 사용하여 로그인하는 클라이언트 세션
+ 로그인을 시도하는 데 오랜 시간이 걸리는 클라이언트 세션.
+ 로그인 요청이 많은 클라이언트 세션 ATP 규칙 그룹은 IP 주소로 클라이언트를 차단할 수 있는 AWS WAF 속도 기반 규칙보다 더 나은 클라이언트 격리를 제공합니다. 또한 ATP 규칙 그룹은 더 낮은 임계값을 사용합니다.
+ 짧은 시간 내에 실패 로그인 요청이 많은 클라이언트 세션 이 기능은 보호된 Amazon CloudFront 배포에 사용할 수 있습니다.

규칙 그룹 기능에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 섹션을 참조하세요.

SDK에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요. AWS WAF 토큰에 대한 자세한 내용은 단원을 참조하십시오[AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md). 규칙 작업에 대한 자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 섹션을 참조하세요.

# ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가
<a name="waf-atp-rg-using"></a>

이 섹션에서는 `AWSManagedRulesATPRuleSet` 규칙 그룹을 추가하고 구성하는 방법을 설명합니다.

웹 트래픽의 계정 탈취 활동을 인식하도록 ATP 관리형 규칙 그룹을 구성하려면 클라이언트가 로그인 요청을 해당 애플리케이션에 보내는 방법에 대한 정보를 제공합니다. 보호된 Amazon CloudFront 배포의 경우 애플리케이션이 로그인 요청에 어떻게 응답하는지에 대한 정보도 제공합니다. 이 구성은 관리형 규칙 그룹의 일반 구성에 추가됩니다.

규칙 그룹 설명 및 규칙 목록은 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 섹션을 참조하세요.

**참고**  
ATP 도용된 보안 인증 데이터베이스에는 이메일 형식의 사용자 이름만 포함됩니다.

이 지침은 AWS WAF 보호 팩(웹 ACL), 규칙 및 규칙 그룹을 만들고 관리하는 방법을 일반적으로 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다. 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가하는 방법에 대한 기본 정보는 [콘솔을 통해 보호 팩(웹 ACL)에 관리형 규칙 그룹 추가](waf-using-managed-rule-group.md) 섹션을 참조하세요.

**모범 사례 따르기**  
[의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md)의 모범 사례에 따라 ATP 규칙 그룹을 사용합니다.

**보호 팩(웹 ACL)에서 `AWSManagedRulesATPRuleSet` 규칙 그룹 사용**

1.  AWS 관리형 규칙 그룹을 보호 팩(웹 ACL)`AWSManagedRulesATPRuleSet`에 추가하고 규칙 그룹 설정을 **편집**한 후 저장합니다.
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

1. **규칙 그룹 구성** 창에서 ATP 규칙 그룹이 로그인 요청을 검사하는 데 사용하는 정보를 제공합니다.

   1. **경로에서 정규식 사용**에서 로그인 페이지 경로 사양에 대해 정규식 일치 AWS WAF 를 수행하려면이 기능을 켭니다.

      AWS WAF 는 일부 예외를 `libpcre` 제외하고 PCRE 라이브러리에서 사용하는 패턴 구문을 지원합니다. 이 라이브러리는 [PCRE - Perl 호환 정규식](http://www.pcre.org/)에 문서화되어 있습니다. AWS WAF 지원에 대한 자세한 내용은 섹션을 참조하세요[에서 지원되는 정규식 구문 AWS WAF](waf-regex-pattern-support.md).

   1. **로그인 경로**에 애플리케이션의 로그인 엔드포인트 경로를 입력합니다. 이 규칙 그룹은 지정된 로그인 엔드포인트에 대한 HTTP `POST` 요청만 검사합니다.
**참고**  
엔드포인트에 대한 일치는 대/소문자를 구분하지 않습니다. Regex 사양에는 대소문자를 구분하지 않는 일치를 비활성화하는 플래그 `(?-i)`이(가) 포함되어서는 안 됩니다. 문자열 사양은 슬래시 `/`로 시작해야 합니다.

      예를 들어, URL `https://example.com/web/login`의 경우 문자열 경로 사양 `/web/login`을(를) 제공할 수 있습니다. 입력한 경로로 시작하는 로그인 경로는 일치하는 것으로 간주됩니다. 예를 들어 `/web/login`는 로그인 경로 `/web/login`, `/web/login/`, `/web/loginPage` 및 `/web/login/thisPage`와 일치하지만, `/home/web/login` 또는 `/website/login` 로그인 경로와는 일치하지 않습니다.

   1. **요청 검사**의 경우 요청 본문에서 사용자 이름 및 암호를 입력하는 필드 이름과 요청 페이로드 유형을 제공하여 애플리케이션에서 로그인 시도를 수락하는 방식을 지정합니다. 필드 이름 사양은 페이로드 유형에 따라 달라집니다.
      + **JSON 페이로드 유형** - JSON 포인터 구문으로 필드 이름을 지정합니다. JSON 포인터 구문에 대한 자세한 내용을 알아보려면 Internet Engineering Task Force(IETF) 설명서 [JavaScript Object Notation (JSON) Pointer](https://tools.ietf.org/html/rfc6901)(JavaScript 객체 표기법(JSON) 포인터)를 참조하세요.

        예를 들어 다음 JSON 페이로드 예제의 경우 사용자 이름 필드 사양은 `/login/username`이고 암호 필드 사양은 `/login/password`입니다.

        ```
        {
            "login": {
                "username": "THE_USERNAME",
                "password": "THE_PASSWORD"
            }
        }
        ```
      + **FORM\$1ENCODED 페이로드 유형** - HTML 양식 이름을 사용합니다.

        예를 들어 입력 요소의 이름이 `username1` 및 `password1`인 HTML 양식의 경우 사용자 이름 필드 사양은 `username1`이고 암호 필드 사양은 `password1`입니다.

   1. Amazon CloudFront 배포를 보호하려는 경우 **응답 검사**에서 애플리케이션이 로그인 시도에 대한 응답에 성공 또는 실패를 어떻게 표시하는지 지정합니다.
**참고**  
ATP 응답 검사는 CloudFront 배포를 보호하는 보호 팩(웹 ACL)에서만 사용할 수 있습니다.

      ATP에서 검사할 단일 구성 요소를 로그인 응답에 지정합니다. **본문** 및 **JSON** 구성 요소 유형의 경우 AWS WAF 구성 요소의 처음 65,536바이트(64KB)를 검사할 수 있습니다.

      인터페이스에 지정된 구성 요소 유형에 대한 검사 기준을 제공합니다. 구성 요소에서 검사할 성공 및 실패 기준을 모두 제공해야 합니다.

      예를 들어 애플리케이션이 응답의 상태 코드에 로그인 시도의 상태를 표시하고 성공 시 `200 OK` 그리고 실패 시 `401 Unauthorized` 또는 `403 Forbidden`을 사용한다고 가정해 보겠습니다. 응답 검사 **구성 요소 유형**을 **상태 코드**로 설정한 다음 **성공** 텍스트 상자에 `200`을 입력하고, **실패** 텍스트 상자의 첫 번째 줄에 `401`을 입력하고, 두 번째 줄에 `403`을 입력합니다.

      ATP 규칙 그룹은 성공 또는 실패 검사 기준과 일치하는 응답만 계산합니다. 규칙 그룹 규칙은 계산된 응답 중 실패율이 너무 높은 클라이언트에 적용됩니다. 규칙 그룹의 규칙이 정확하게 작동하려면 성공 및 실패한 로그인 시도 모두에 대한 전체 정보를 제공해야 합니다.

      로그인 응답을 검사하는 규칙을 보려면 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md)의 규칙 목록에서 `VolumetricIpFailedLoginResponseHigh` 및 `VolumetricSessionFailedLoginResponseHigh`를 찾아보십시오.

1. 규칙 그룹에 사용할 추가 구성을 모두 제공합니다.

   관리형 규칙 그룹 문에 범위 축소 문을 추가하여 규칙 그룹이 검사하는 요청의 범위를 추가 제한할 수 있습니다. 예를 들어 특정 쿼리 인수 또는 쿠키가 있는 요청만 검사할 수 있습니다. 규칙 그룹은 범위 축소 문의 기준과 일치하는 지정된 로그인 엔드포인트에 대한 HTTP `POST` 요청만 검사합니다. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.

1. 변경 사항을 보호 팩(웹 ACL)에 저장합니다.

프로덕션 트래픽용 ATP 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다. 지침은 다음 섹션을 참조하세요.

# ATP 테스트 및 배포
<a name="waf-atp-deploying"></a>

이 섹션에서는 사이트에 대한 AWS WAF 사기 제어 계정 탈취 방지(ATP) 구현을 구성하고 테스트하기 위한 일반적인 지침을 제공합니다. 따르기로 선택한 구체적인 단계는 요구 사항, 리소스 및 수신하는 웹 요청에 따라 달라집니다.

이 정보는 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)에 제공된 테스트 및 조정에 대한 일반 정보 외의 정보입니다.

**참고**  
AWS 관리형 규칙은 일반적인 웹 위협으로부터 사용자를 보호하도록 설계되었습니다. 설명서에 따라 사용하는 경우 AWS 관리형 규칙 규칙 그룹은 애플리케이션에 또 다른 보안 계층을 추가합니다. 그러나 AWS 관리형 규칙 규칙 그룹은 보안 책임을 대체하기 위한 것이 아니며, 이는 선택한 AWS 리소스에 따라 결정됩니다. 의 리소스가 AWS 적절하게 보호되는지 확인하려면 [공동 책임 모델을](https://aws.amazon.com/compliance/shared-responsibility-model/) 참조하세요.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 ATP 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다.

AWS WAF 는 ATP 구성을 확인하는 데 사용할 수 있는 테스트 자격 증명을 제공합니다. 다음 절차에서는 ATP 관리형 규칙 그룹을 사용하도록 테스트 보호 팩(웹 ACL)을 구성하고, 규칙 그룹에서 추가한 레이블을 캡처하도록 규칙을 구성한 다음, 이러한 테스트 자격 증명을 사용하여 로그인 시도를 실행합니다. Amazon CloudWatch 지표에서 로그인 시도를 확인하여 웹 ACL이 시도를 제대로 관리했는지 확인할 수 있습니다.

이 지침은 AWS WAF 보호 팩(웹 ACL), 규칙 및 규칙 그룹을 만들고 관리하는 방법을 일반적으로 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다.

**AWS WAF 사기 제어 계정 탈취 방지(ATP) 구현을 구성하고 테스트하려면**

이러한 단계를 먼저 테스트 환경에서 수행한 다음, 프로덕션 환경에서 수행합니다.

1. 

**개수 모드에서 AWS WAF 사기 제어 계정 탈취 방지(ATP) 관리형 규칙 그룹 추가**
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

    AWS 관리형 규칙 규칙 그룹을 새 보호 팩 또는 기존 보호 팩(웹 ACL)`AWSManagedRulesATPRuleSet`에 추가하고 현재 보호 팩(웹 ACL) 동작을 변경하지 않도록 구성합니다. 이 규칙 그룹의 규칙 및 레이블에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 섹션을 참조하세요.
   + 관리형 규칙 그룹을 추가할 때는 해당 규칙 그룹을 편집하고 다음을 수행합니다.
     + **규칙 그룹 구성** 창에서 애플리케이션의 로그인 페이지의 세부 정보를 제공합니다. ATP 규칙 그룹은 이 정보를 사용하여 로그인 활동을 모니터링합니다. 자세한 내용은 [ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가](waf-atp-rg-using.md) 단원을 참조하십시오.
     + **규칙** 창에서 모든 규칙 **모든 규칙 작업 재정의** 드롭다운을 열고 **Count**를 선택합니다. 이 구성을 사용하면 AWS WAF 는 요청에 레이블을 여전히 추가하면서 규칙 그룹의 모든 규칙과 비교하여 요청을 평가한 후 일치하는 항목 수만 계산합니다. 자세한 내용은 [규칙 그룹에 대한 규칙 작업 재정의](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override) 단원을 참조하십시오.

       이 재정의를 통해 ATP 관리형 규칙의 잠재적 영향을 모니터링하여 내부 사용 사례에 대한 예외와 같은 예외를 추가할지 여부를 결정할 수 있습니다.
   + 이미 사용 중인 규칙 또는 규칙 그룹보다 높은 우선순위를 지정하여 보호 팩(웹 ACL)의 기존 규칙 다음에 평가되도록 규칙 그룹을 배치합니다. 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 단원을 참조하십시오.

     이렇게 하면 현재의 트래픽 처리가 중단되지 않습니다. 예를 들어 SQL 명령어 삽입이나 교차 사이트 스크립팅과 같은 악성 트래픽을 탐지하는 규칙이 있는 경우 이들 규칙이 이러한 트래픽을 계속 탐지하고 기록합니다. 또는 악의적이지 않은 알려진 트래픽을 허용하는 규칙이 있는 경우 해당 트래픽을 ATP 관리형 규칙 그룹을 통해 차단하지 않고 계속 허용할 수 있습니다. 테스트 및 조정 활동 중에 처리 순서를 조정하기로 결정할 수 있습니다.

1. 

**보호 팩(웹 ACL)의 로깅 및 지표 활성화**

   필요에 따라 보호 팩(웹 ACL)에 대한 로깅, Amazon Security Lake 데이터 수집, 요청 샘플링 및 Amazon CloudWatch 지표를 구성합니다. 이러한 가시성 도구를 사용하여 ATP 관리형 규칙 그룹과 트래픽 간의 상호 작용을 모니터링할 수 있습니다.
   + 로깅 구성 및 사용에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.
   + Amazon Security Lake에 대한 자세한 내용은 [Amazon Security Lake 사용 설명서의 Amazon Security Lake란 무엇인가요?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) 및 [AWS 서비스에서 데이터 수집](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)을 참조하세요. ** 
   + Amazon CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.
   + 웹 요청 샘플링에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요.

1. 

**보호 팩(웹 ACL)을 리소스와 연결**

   보호 팩(웹 ACL)이 아직 테스트 리소스와 연결되지 않은 경우 해당 리소스를 연결합니다. 자세한 내용은 [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md) 단원을 참조하세요.

1. 

**트래픽과 ATP 규칙 일치 모니터링**

   트래픽이 정상적으로 흐르고 있고 ATP 관리형 규칙의 그룹 규칙이 일치하는 웹 요청에 레이블을 추가하고 있는지 확인하십시오. 로그에서 레이블을 볼 수 있고 Amazon CloudWatch 지표에서 ATP 및 레이블 지표를 볼 수 있습니다. 로그에서 규칙 그룹에서 개수하도록 재정의한 규칙은 계수로 설정된 `action`과 재정의한 구성된 규칙 작업을 나타내는 `overriddenAction`을 포함하는 `ruleGroupList`로 표시됩니다.

1. 

**규칙 그룹의 보안 인증 정보 검사 기능 테스트**

   테스트용 손상된 보안 인증 정보로 로그인을 시도하고 규칙 그룹이 예상대로 보안 인증 정보와 일치하는지 확인합니다.

   1. 다음 AWS WAF 테스트 자격 증명 페어를 사용하여 보호된 리소스의 로그인 페이지에 로그인합니다.
      + 사용자: `WAF_TEST_CREDENTIAL@wafexample.com`
      + 암호: `WAF_TEST_CREDENTIAL_PASSWORD`

      이러한 테스트 보안 인증 정보는 손상된 보안 인증 정보으로 분류되며, ACFP 관리형 규칙 그룹은 로그에서 확인할 수 있는 계정 생성 요청에 `awswaf:managed:aws:atp:signal:credential_compromised` 레이블을 추가합니다.

   1. 보호 팩(웹 ACL) 로그의 테스트 로그인 웹 요청에 대한 로그 항목의 `labels` 필드에서 `awswaf:managed:aws:atp:signal:credential_compromised` 레이블을 찾습니다. 로깅에 대한 추가 정보는 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.

   규칙 그룹이 손상된 보안 인증 정보를 예상대로 캡처하는지 확인한 후에는 보호된 리소스에 필요한 대로 구현을 구성하는 단계를 수행할 수 있습니다.

1. 

**CloudFront 배포의 경우 규칙 그룹의 로그인 실패 관리를 테스트합니다.**

   

   1. ATP 규칙 그룹에 대해 구성한 각 성공 응답 기준에 대해 이 테스트를 실행합니다. 테스트마다 10분 이상의 대기 시간을 둡니다.

      단일 실패 기준을 테스트하려면 응답에서 해당 기준에 따라 실패할 로그인 시도를 식별합니다. 그런 다음 단일 클라이언트 IP 주소에서 10분 이내에 10회 이상의 로그인 실패를 시도합니다.

      볼륨 측정 실패 로그인 규칙은 처음 6회 실패 후 나머지 시도와의 일치, 레이블 지정 및 계산을 시작해야 합니다. 이 규칙은 지연 시간으로 인해 처음 한두 개를 놓칠 수 있습니다.

   1. 보호 팩(웹 ACL) 로그의 테스트 로그인 웹 요청에 대한 로그 항목의 `labels` 필드에서 `awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:high` 레이블을 찾습니다. 로깅에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 단원을 참조하세요.

   이러한 테스트는 실패한 로그인 수가 `VolumetricIpFailedLoginResponseHigh` 규칙의 임계값을 초과하는지 확인하여 실패 기준이 응답과 일치하는지 확인합니다. 임계값에 도달한 후에도 동일한 IP 주소에서 로그인 요청을 계속 보내면 성공률이 임계값 아래로 떨어질 때까지 규칙이 계속 일치합니다. 임계값을 초과한 경우 이 규칙은 IP 주소에서의 성공하거나 실패한 로그인 시도를 모두 일치시킵니다.

1. 

**ATP 웹 요청 처리를 사용자 지정합니다.**

   필요에 따라 요청을 명시적으로 허용하거나 차단하는 자체 규칙을 추가하여 ATP 규칙이 요청을 처리하는 방식을 변경합니다.

   예를 들어 ATP 레이블을 사용하여 요청을 허용 또는 차단하거나 요청 처리를 사용자 지정할 수 있습니다. ATP 관리형 규칙 그룹 뒤에 레이블 일치 규칙을 추가하여 적용할 처리에 대해 레이블이 지정된 요청을 필터링할 수 있습니다. 테스트 후에는 관련 ATP 규칙을 계수 모드로 유지하고 요청 처리 결정을 사용자 지정 규칙에서 유지하십시오. 예제는 [ATP 예제: 분실 및 손상된 보안 인증 정보에 대한 사용자 지정 처리](waf-atp-control-example-user-agent-exception.md) 섹션을 참조하세요.

1. 

**테스트 규칙을 제거하고 ATP 관리형 규칙 그룹 설정을 활성화합니다.**

   상황에 따라 일부 ATP 규칙이 계수 모드에서 나가도록 결정할 수도 있습니다. 규칙 그룹 내부에 구성된 대로 실행하려는 규칙에 대해서는 보호 팩(웹 ACL) 규칙 그룹 구성에서 계산 모드를 비활성화합니다. 테스트를 마치면 테스트 레이블 일치 규칙을 제거할 수도 있습니다.

1. 

**모니터링 및 조정**

   웹 요청이 원하는 대로 처리되도록 하려면 사용하려는 ATP 기능을 활성화한 후 트래픽을 면밀히 모니터링합니다. 규칙 그룹의 규칙 수 재정의 및 자체 규칙을 사용하여 필요에 따라 동작을 조정합니다.

ATP 규칙 그룹 구현 테스트를 완료한 후 아직 수행하지 않은 경우 향상된 감지 기능을 위해 브라우저 로그인 페이지에 AWS WAF JavaScript SDK를 통합하는 것이 좋습니다. AWS WAF 또한는 iOS 및 Android 디바이스를 통합하기 위한 모바일 SDKs 제공합니다. SDK 통합에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요. 이 권장 사항에 대한 자세한 내용은 [ATP와 함께 애플리케이션 통합 SDK 사용](waf-atp-with-tokens.md) 섹션을 참조하세요.

# AWS WAF 사기 제어 계정 탈취 방지(ATP) 예제
<a name="waf-atp-control-examples"></a>

이 섹션에서는 AWS WAF 사기 제어 계정 탈취 방지(ATP) 구현의 일반적인 사용 사례를 충족하는 예제 구성을 보여줍니다.

각 예제는 사용 사례에 대한 설명을 제공하고 나서 사용자 지정 구성 규칙의 JSON 목록에 나와 있는 솔루션을 표시합니다.

**참고**  
콘솔 보호 팩(웹 ACL) JSON 다운로드 또는 규칙 JSON 편집기를 통해, 또는 API 및 명령줄 인터페이스의 `getWebACL` 작업을 통해 이 예제에 표시된 목록과 같은 JSON 목록을 검색할 수 있습니다.

**Topics**
+ [ATP 예제: 단순 구성](waf-atp-control-example-basic.md)
+ [ATP 예제: 분실 및 손상된 보안 인증 정보에 대한 사용자 지정 처리](waf-atp-control-example-user-agent-exception.md)
+ [ATP 예제: 응답 검사 구성](waf-atp-control-example-response-inspection.md)

# ATP 예제: 단순 구성
<a name="waf-atp-control-example-basic"></a>

다음 JSON 목록은 AWS WAF 사기 제어 계정 탈취 방지(ATP) 관리형 규칙 그룹이 있는 예제 보호 팩(웹 ACL)을 보여줍니다. 참고로, 추가 로그인 페이지 구성은 로그인 요청을 모니터링하고 관리하는 데 필요한 정보를 규칙 그룹에 제공합니다. 이 JSON에는 레이블 네임스페이스 및 보호 팩(웹 ACL)의 애플리케이션 통합 URL과 같은 보호 팩(웹 ACL)의 자동 생성 설정이 포함됩니다.

```
{
    "WebACL": {
        "LabelNamespace": "awswaf:111122223333:webacl:ATPModuleACL:",
        "Capacity": 50,
        "Description": "This is a test protection pack (web ACL) for ATP.",
        "Rules": [
            {
                "Priority": 1,
                "OverrideAction": {
                    "None": {}
                },
                "VisibilityConfig": {
                    "SampledRequestsEnabled": true,
                    "CloudWatchMetricsEnabled": true,
                    "MetricName": "AccountTakeOverValidationRule"
                },
                "Name": "DetectCompromisedUserCredentials",
                "Statement": {
                    "ManagedRuleGroupStatement": {
                        "VendorName": "AWS",
                        "Name": "AWSManagedRulesATPRuleSet",
                        "ManagedRuleGroupConfigs": [
                          {
                            "AWSManagedRulesATPRuleSet": {
                              "LoginPath": "/web/login",
                              "RequestInspection": {
                                "PayloadType": "JSON",
                                "UsernameField": {
                                  "Identifier": "/form/username"
                                },
                                "PasswordField": {
                                  "Identifier": "/form/password"
                                }
                              },
                              "EnableRegexInPath": false
                            }
                          }
                        ]
                    }
                }
            }
        ],
        "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "ATPValidationAcl"
        },
        "DefaultAction": {
            "Allow": {}
        },
        "ManagedByFirewallManager": false,
        "RetrofittedByFirewallManager": false,
        "Id": "32q10987-65rs-4tuv-3210-98765wxyz432",
        "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/ATPModuleACL/32q10987-65rs-4tuv-3210-98765wxyz432",
        "Name": "ATPModuleACL"
    },
    "ApplicationIntegrationURL": "https://9z87abce34ea.us-east-1.sdk.awswaf.com/9z87abce34ea/1234567a1b10/",
    "LockToken": "6d0e6966-95c9-48b6-b51d-8e82e523b847"
}
```

# ATP 예제: 분실 및 손상된 보안 인증 정보에 대한 사용자 지정 처리
<a name="waf-atp-control-example-user-agent-exception"></a>

기본적으로 규칙 그룹 `AWSManagedRulesATPRuleSet`에서 수행하는 보안 인증 정보 검사는 웹 요청을 다음과 같이 처리합니다.
+ **보안 인증 정보 누락** - 요청에 레이블을 지정하고 차단합니다.
+ **손상된 보안 인증 정보** - 요청에 레이블을 지정하지만, 차단하거나 개수를 계산하지 않습니다.

규칙 그룹 및 규칙 동작에 대한 자세한 내용은 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 섹션을 참조하세요.

다음을 수행하여 보안 인증 정보가 누락되거나 손상된 웹 요청에 대한 사용자 지정 처리를 추가할 수 있습니다.
+ **`MissingCredential` 규칙을 Count로 재정의** - 이 규칙 작업 재정의는 규칙이 일치 요청만 계산하고 레이블을 지정하도록 합니다.
+ **사용자 지정 처리가 포함된 레이블 일치 규칙 추가** - ATP 레이블과 일치하고 사용자 지정 처리를 수행하도록 이 규칙을 구성합니다. 예를 들어, 고객을 가입 페이지로 리디렉션할 수 있습니다.

다음 규칙은 `MissingCredential` 규칙 작업이 계수로 재정의된 이전 예제의 ATP 관리형 규칙 그룹을 보여줍니다. 이로 인해 규칙은 일치하는 요청에 해당 레이블을 적용하고 나서 요청을 차단하는 대신 해당 요청의 개수만 계산합니다.

```
"Rules": [
    {
        "Priority": 1,
        "OverrideAction": {
            "None": {}
        },
        "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "AccountTakeOverValidationRule"
        },
        "Name": "DetectCompromisedUserCredentials",
        "Statement": {
            "ManagedRuleGroupStatement": {
                "ManagedRuleGroupConfigs": [
                  {
                    "AWSManagedRulesATPRuleSet": {
                      "LoginPath": "/web/login",
                      "RequestInspection": {
                        "PayloadType": "JSON",
                        "UsernameField": {
                          "Identifier": "/form/username"
                        },
                        "PasswordField": {
                          "Identifier": "/form/password"
                        }
                      },
                      "EnableRegexInPath": false
                    }
                  }
                ]
                "VendorName": "AWS",
                "Name": "AWSManagedRulesATPRuleSet",
                "RuleActionOverrides": [
                  {
                    "ActionToUse": {
                      "Count": {}
                    },
                    "Name": "MissingCredential"
                  }
                ],
                "ExcludedRules": []
            }
        }
    }
],
```

이 구성을 사용하면 이 규칙 그룹이 분실 또는 손상된 보안 인증 정보를 사용하는 웹 요청을 평가할 때 요청에 레이블을 지정하지만 차단하지는 않습니다.

다음 규칙의 우선 순위 설정 숫자 값은 이전 규칙 그룹보다 더 높습니다. AWS WAF 는 가장 낮은 값부터 순서대로 규칙을 평가하므로 이 규칙은 규칙 그룹 평가 후에 평가됩니다. 규칙은 보안 인증 정보 레이블 중 하나와 일치하고 일치 요청에 대한 사용자 지정 응답을 보내도록 구성됩니다.

```
"Name": "redirectToSignup",
      "Priority": 10,
      "Statement": {
        "OrStatement": {
          "Statements": [
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:atp:signal:missing_credential"
              }
            },
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:atp:signal:credential_compromised"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {
          "CustomResponse": {
             your custom response settings 
          }
        }
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "redirectToSignup"
      }
```

# ATP 예제: 응답 검사 구성
<a name="waf-atp-control-example-response-inspection"></a>

다음 JSON 목록은 오리진 응답을 검사하도록 구성된 AWS WAF 사기 제어 계정 탈취 방지(ATP) 관리형 규칙 그룹이 있는 예제 보호 팩(웹 ACL)을 보여줍니다. 성공 및 응답 상태 코드를 지정하는 응답 검사 구성을 기록해 둡니다. 헤더, 본문 및 본문 JSON 일치를 기반으로 성공 및 응답 설정을 구성할 수도 있습니다. 이 JSON에는 레이블 네임스페이스 및 보호 팩(웹 ACL)의 애플리케이션 통합 URL과 같은 보호 팩(웹 ACL)의 자동 생성 설정이 포함됩니다.

**참고**  
ATP 응답 검사는 CloudFront 배포를 보호하는 보호 팩(웹 ACL)에서만 사용할 수 있습니다.

```
{
    "WebACL": {
        "LabelNamespace": "awswaf:111122223333:webacl:ATPModuleACL:",
        "Capacity": 50,
        "Description": "This is a test protection pack (web ACL) for ATP.",
        "Rules": [
            {
                "Priority": 1,
                "OverrideAction": {
                    "None": {}
                },
                "VisibilityConfig": {
                    "SampledRequestsEnabled": true,
                    "CloudWatchMetricsEnabled": true,
                    "MetricName": "AccountTakeOverValidationRule"
                },
                "Name": "DetectCompromisedUserCredentials",
                "Statement": {
                    "ManagedRuleGroupStatement": {
                        "VendorName": "AWS",
                        "Name": "AWSManagedRulesATPRuleSet",
                        "ManagedRuleGroupConfigs": [
                          {
                            "AWSManagedRulesATPRuleSet": {
                              "LoginPath": "/web/login",
                              "RequestInspection": {
                                "PayloadType": "JSON",
                                "UsernameField": {
                                  "Identifier": "/form/username"
                                },
                                "PasswordField": {
                                  "Identifier": "/form/password"
                                }
                              },
                              "ResponseInspection": {
                                "StatusCode": {
                                  "SuccessCodes": [
                                    200
                                  ],
                                  "FailureCodes": [
                                    401
                                  ]
                                }
                              },
                              "EnableRegexInPath": false
                            }
                          }
                        ]
                    }
                }
            }
        ],
        "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "ATPValidationAcl"
        },
        "DefaultAction": {
            "Allow": {}
        },
        "ManagedByFirewallManager": false,
        "RetrofittedByFirewallManager": false,
        "Id": "32q10987-65rs-4tuv-3210-98765wxyz432",
        "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/ATPModuleACL/32q10987-65rs-4tuv-3210-98765wxyz432",
        "Name": "ATPModuleACL"
    },
    "ApplicationIntegrationURL": "https://9z87abce34ea.us-east-1.sdk.awswaf.com/9z87abce34ea/1234567a1b10/",
    "LockToken": "6d0e6966-95c9-48b6-b51d-8e82e523b847"
}
```

# AWS WAF 봇 제어
<a name="waf-bot-control"></a>

이 섹션에서는 봇 컨트롤이 수행하는 작업을 설명합니다.

봇 컨트롤을 사용하면 스크레이퍼, 스캐너, 크롤러, 상태 모니터, 검색 엔진 등 봇을 쉽게 모니터링 및 차단할 수 있고 속도를 제한할 수 있습니다. 규칙 그룹의 대상 검사 수준을 사용하는 경우 자체 식별이 불가능한 봇도 차단할 수 있으므로 악성 봇이 웹 사이트를 공격하기가 더 어려워지고 비용이 더 많이 듭니다. Bot Control 관리형 규칙 그룹을 단독으로 사용하거나 다른 AWS 관리형 규칙 그룹 및 자체 사용자 지정 규칙과 조합하여 애플리케이션을 보호할 수 있습니다 AWS WAF .

봇 컨트롤에는 요청 샘플링을 기반으로 봇에서 발생하는 현재 트래픽의 양을 보여주는 콘솔 대시보드가 포함되어 있습니다. 보호 팩(웹 ACL)에 봇 컨트롤 관리형 규칙 그룹을 추가하면 봇 트래픽에 대응하여 작업을 수행하고 애플리케이션으로 들어오는 일반적인 봇 트래픽에 대한 자세한 실시간 정보를 받을 수 있습니다.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

봇 컨트롤 관리형 규칙 그룹은 자체 식별 봇에 레이블을 추가하고, 일반적으로 선호되는 봇을 확인하며, 신뢰도가 높은 봇 서명을 탐지하는 기본적이고 일반적인 보호 수준을 제공합니다. 이를 통해 봇 트래픽의 일반적인 범주를 모니터링하고 제어할 수 있습니다.

또한 봇 컨트롤 규칙 그룹은 자체 식별이 불가능한 정교한 봇에 대한 탐지를 추가하는 표적 보호 수준을 제공합니다. 모든 대상 보호는 브라우저 질의, 핑거프린팅 및 행동 휴리스틱과 같은 감지 기술을 사용하여 잘못된 봇 트래픽을 식별합니다. 또한 대상 보호 기능은 봇 관련 활동을 탐지하기 위해 웹 사이트 트래픽 통계에 대한 자동화된 기계 학습 분석을 선택적으로 제공합니다. 기계 학습을 활성화하면 AWS WAF 는 타임스탬프, 브라우저 특성, 이전 방문 URL 등 웹사이트 트래픽에 대한 통계를 사용하여 봇 컨트롤 기계 학습 모델을 개선합니다.

가 Bot Control 관리형 규칙 그룹에 대해 웹 요청을 AWS WAF 평가할 때 규칙 그룹은 봇 범주 및 봇 이름과 같이 봇과 관련된 것으로 감지하는 요청에 레이블을 추가합니다. 자체 AWS WAF 규칙에서 이러한 레이블과 일치시켜 처리를 사용자 지정할 수 있습니다. 봇 컨트롤 관리형 규칙 그룹에서 생성된 레이블은 Amazon CloudWatch 지표와 보호 팩(웹 ACL) 로그에 포함됩니다.

 AWS Firewall Manager AWS WAF 정책을 사용하여 조직의 일부인 여러 계정의 애플리케이션에 Bot Control 관리형 규칙 그룹을 배포할 수도 있습니다 AWS Organizations.

봇 컨트롤 관리형 규칙 그룹에 대한 자세한 내용은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.

## AI 에이전트를 위한 웹 봇 인증
<a name="waf-bot-ai-agents"></a>

AWS WAF Bot Control은 이제 CloudFront 배포에 액세스하는 봇 및 AI 에이전트에 대한 암호화 확인 방법으로 웹 봇 인증(WBA)을 지원합니다. 이 기능을 사용하면 합법적인 AI 크롤러와 에이전트가 기존의 챌린지-응답 메커니즘 없이도 자신의 자격 증명을 증명할 수 있습니다.

버전 요구 사항: `AWSManagedRulesBotControlRuleSet` Version\$14.0 이상. (정적 버전을 명시적으로 선택해야 합니다.) 자세한 레이블 분류 및 규칙 동작은 다음을 참조하세요.
+ [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md)
+ [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md)
+ [AWS 관리형 규칙 변경 로그](aws-managed-rule-groups-changelog.md)

# AWS WAF Bot Control 구성 요소
<a name="waf-bot-control-components"></a>

봇 컨트롤 구현의 주요 구성 요소는 다음과 같습니다.
+ ** `AWSManagedRulesBotControlRuleSet`**—다양한 범주의 봇을 탐지하고 처리하는 규칙을 포함하는 봇 컨트롤 관리형 규칙 그룹입니다. 이 규칙 그룹은 봇 트래픽으로 탐지한 웹 요청에 레이블을 추가합니다.
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

봇 컨트롤 관리형 규칙 그룹은 선택할 수 있는 두 가지 보호 수준을 제공합니다.
  + **일반** - 웹 스크레이핑 프레임워크, 검색 엔진 및 자동 브라우저 등 다양한 자체 식별 봇을 탐지합니다. 이 수준의 봇 컨트롤 보호는 정적 요청 데이터 분석과 같은 기존 봇 탐지 기술을 사용하여 일반적인 봇을 식별합니다. 이 규칙은 이러한 봇의 트래픽에 레이블을 지정하고 확인할 수 없는 트래픽은 차단합니다.
  + **대상** - 공통 수준의 보호 기능을 포함하고 자체 식별이 불가능한 정교한 봇에 대한 대상 탐지 기능을 추가합니다. 대상 보호는 속도 제한과 CAPTCHA 및 백그라운드 브라우저 챌린지를 함께 사용하여 봇 활동을 완화합니다.
    + **`TGT_`** - 대상 보호를 제공하는 규칙의 이름은 `TGT_`로 시작합니다. 모든 대상 보호는 브라우저 질의, 지문 및 행동 휴리스틱과 같은 탐지 기술을 사용하여 잘못된 봇 트래픽을 식별합니다.
    + **`TGT_ML_`**— 기계 학습을 사용하는 대상 보호 규칙의 이름은 `TGT_ML_`로 시작합니다. 이러한 규칙은 웹 사이트 트래픽 통계에 대한 자동화된 기계 학습 분석을 사용하여 분산되고 조정된 봇 활동을 나타내는 비정상적인 동작을 감지합니다.는 타임스탬프, 브라우저 특성 및 이전에 방문한 URL과 같은 웹 사이트 트래픽에 대한 통계를 AWS WAF 분석하여 Bot Control 기계 학습 모델을 개선합니다. 기계 학습 기능은 기본적으로 활성화되지만 규칙 그룹 구성에서 비활성화할 수 있습니다. 기계 학습이 비활성화된 경우는 이러한 규칙을 평가하지 AWS WAF 않습니다.

  규칙 그룹의 규칙에 대한 정보를 포함한 자세한 내용은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.

  관리형 규칙 그룹 참조 문을 사용하며 사용하려는 검사 수준을 나타내 보호 팩(웹 ACL)에 이 규칙 그룹을 포함합니다. 대상 수준에 대해 기계 학습을 활성화할지 여부도 지정할 수 있습니다. 보호 팩(웹 ACL)에 이 관리형 규칙 그룹을 추가하는 방법에 대한 자세한 내용은 [웹 ACL에 AWS WAF Bot Control 관리형 규칙 그룹 추가](waf-bot-control-rg-using.md) 섹션을 참조하세요.
+ **봇 컨트롤 대시보드** - 보호 팩(웹 ACL)용 봇 모니터링 대시보드로, 보호 팩(웹 ACL) 봇 컨트롤 탭을 통해 사용할 수 있습니다. 이 대시보드를 사용하여 트래픽을 모니터링하고 다양한 유형의 봇에서 발생하는 트래픽의 양을 파악할 수 있습니다. 이는 이 항목에 설명된 대로 봇 관리를 사용자 지정하는 출발점이 될 수 있습니다. 또한 이를 사용하여 변경 사항을 확인하고 다양한 봇 및 봇 범주의 활동을 모니터링할 수 있습니다.
+ **AI 트래픽 분석 대시보드** - 세부 AI 봇 및 에이전트 활동 분석을 위한 특수 대시보드로, 보호 팩(웹 ACL) AI 트래픽 분석 탭을 통해 사용할 수 있습니다. 표준 Bot Control 지표를 넘어 AI별 트래픽 패턴, 봇 의도 및 액세스 동작에 대한 향상된 가시성을 제공합니다.
+ **JavaScript 및 모바일 애플리케이션 통합 SDKs**- Bot Control 규칙 그룹의 대상 보호 수준을 사용하는 경우 AWS WAF JavaScript 및 모바일 SDKs를 구현해야 합니다. 대상 규칙은 악의적인 봇에 대한 탐지 성능을 개선하기 위해 SDK에서 제공하는 정보를 클라이언트 토큰에서 사용합니다. SDK에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md)을 참조하세요.
+ **로깅 및 지표** - AWS WAF 로그, Amazon Security Lake 및 Amazon CloudWatch별로 보호 팩(웹 ACL)에 대해 수집된 데이터를 조사하여 봇 트래픽을 모니터링하고 Bot Control 관리형 규칙 그룹이 트래픽을 평가하고 처리하는 방법을 이해할 수 있습니다. 웹 요청에 봇 컨트롤이 추가하는 레이블은 데이터에 포함됩니다. 이러한 옵션에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md), [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 및 [Amazon Security Lake란 무엇입니까?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)를 참조하세요.

  요구 사항과 표시되는 트래픽에 따라 봇 컨트롤 구현을 사용자 지정해야 할 수도 있습니다. 다음은 가장 일반적으로 사용되는 몇 가지 옵션입니다.
+ **범위 축소 문** — 봇 컨트롤 관리형 규칙 그룹 참조 문 내에 범위 축소 문을 추가하여 봇 컨트롤 관리형 규칙 그룹이 평가하는 웹 요청에서 일부 트래픽을 제외할 수 있습니다. 모든 중첩 가능한 규칙 문은 범위 축소 문이 될 수 있습니다. 요청이 범위 축소 문과 일치하지 않는 경우는 규칙 그룹에 대해 AWS WAF 평가하지 않고 규칙 그룹 참조 문과 일치하지 않는 것으로 평가합니다. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.

  봇 컨트롤 관리형 규칙 그룹의 사용 요금은 AWS WAF 에서 해당 그룹을 사용하여 평가하는 웹 요청의 수에 따라 증가합니다. 범위 축소 문을 사용하여 규칙 그룹이 평가하는 요청을 제한함으로써 이러한 비용을 줄일 수 있습니다. 예를 들어 봇을 포함한 모든 사용자가 홈페이지가 로드되도록 허용한 다음 애플리케이션 API로 전송되거나 특정 유형의 콘텐츠가 포함된 요청에 규칙 그룹 규칙을 적용할 수 있습니다.
+ **레이블 및 레이블 일치 규칙** - Bot Control 규칙 그룹이 AWS WAF 레이블 일치 규칙 문을 사용하여 식별하는 일부 봇 트래픽을 처리하는 방법을 사용자 지정할 수 있습니다. 봇 컨트롤 규칙 그룹은 웹 요청에 레이블을 추가합니다. 봇 컨트롤 레이블과 일치하는 봇 컨트롤 규칙 그룹 뒤에 레이블 일치 규칙을 추가하고 필요한 처리를 적용할 수 있습니다. 레이블 일치 문의 레이블 지정 및 사용에 대한 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 및 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.
+ **사용자 지정 요청 및 응답** - 허용되는 요청에 사용자 지정 헤더를 추가하고 레이블 일치를 사용자 지정 요청 및 응답 기능과 페어링하여 차단하는 요청에 대한 AWS WAF 사용자 지정 응답을 보낼 수 있습니다. 요청 및 응답을 사용자 지정하는 방법에 대한 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 섹션을 참조하세요.

# 봇 컨트롤과 함께 애플리케이션 통합 SDK 사용
<a name="waf-bot-with-tokens"></a>

이 섹션에서는 봇 컨트롤과 함께 애플리케이션 통합 SDK를 사용하는 방법을 설명합니다.

봇 컨트롤 관리형 규칙 그룹에는 애플리케이션 통합 SDK가 생성하는 챌린지 토큰이 필요합니다. 요청 시 챌린지 토큰이 필요하지 않은 규칙은 봇 컨트롤 공통 수준 보호 및 대상 수준의 기계 학습 규칙입니다. 규칙 그룹의 보호 수준 및 규칙에 대한 설명은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.

봇 컨트롤 규칙 그룹을 가장 효율적으로 사용하려면 애플리케이션 통합 SDK를 구현하는 것이 좋습니다. 규칙 그룹이 스크립트에서 획득한 토큰을 활용하도록 하려면 봇 컨트롤 규칙 그룹보다 먼저 챌린지 스크립트를 실행해야 합니다.
+ 애플리케이션 통합 SDK를 사용하면 스크립트가 자동으로 실행됩니다.
+ SDK를 사용할 수 없는 경우 봇 컨트롤 규칙 그룹에서 검사할 모든 요청에 대해 Challenge 또는 CAPTCHA 규칙 작업을 실행하도록 보호 팩(웹 ACL)을 구성할 수 있습니다. Challenge 또는 CAPTCHA 규칙 작업을 사용하는 경우 추가 비용이 발생할 수 있습니다. 요금에 대한 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

클라이언트에서 애플리케이션 통합 SDK를 구현하거나 챌린지 스크립트를 실행하는 규칙 작업 중 하나를 사용하면 규칙 그룹과 전체 클라이언트 애플리케이션 보안의 기능이 확장됩니다.

토큰은 각 웹 요청과 함께 클라이언트 정보를 제공합니다. 이 추가 정보는 봇 컨트롤 규칙 그룹이 정상적인 클라이언트 세션을 잘못된 클라이언트 세션과 분리할 수 있도록 합니다. 둘 다 단일 IP 주소에서 시작된 경우에도 마찬가지입니다. 규칙 그룹은 대상 보호 수준에서 제공하는 탐지 및 완화를 세부적으로 조정하기 위해 토큰 정보를 사용하여 클라이언트 세션 요청 동작을 집계합니다.

SDK에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요. AWS WAF 토큰에 대한 자세한 내용은 단원을 참조하십시오[AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md). 규칙 작업에 대한 자세한 내용은 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md) 섹션을 참조하세요.

# 웹 ACL에 AWS WAF Bot Control 관리형 규칙 그룹 추가
<a name="waf-bot-control-rg-using"></a>

이 섹션에서는 `AWSManagedRulesBotControlRuleSet` 규칙 그룹을 추가하고 구성하는 방법을 설명합니다.

봇 컨트롤 관리형 규칙 그룹 `AWSManagedRulesBotControlRuleSet`에는 구현하려는 보호 수준을 식별하기 위한 추가 구성이 필요합니다.

규칙 그룹 설명 및 규칙 목록은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.

이 지침은 AWS WAF 보호 팩(웹 ACL), 규칙 및 규칙 그룹을 만들고 관리하는 방법을 일반적으로 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다. 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가하는 방법에 대한 기본 정보는 [콘솔을 통해 보호 팩(웹 ACL)에 관리형 규칙 그룹 추가](waf-using-managed-rule-group.md) 섹션을 참조하세요.

**모범 사례 따르기**  
[의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md)의 모범 사례에 따라 봇 컨트롤 규칙 그룹을 사용하세요.

**보호 팩(웹 ACL)에서 `AWSManagedRulesBotControlRuleSet` 규칙 그룹 사용**

1.  AWS 관리형 규칙 그룹을 보호 팩(웹 ACL)`AWSManagedRulesBotControlRuleSet`에 추가합니다. 전체 규칙 그룹 설명은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

   규칙 그룹을 추가할 때는 규칙 그룹을 편집하여 규칙 그룹의 구성 페이지를 엽니다.

1. 규칙 그룹 구성 페이지의 **검사 수준** 창에서 사용하려는 검사 수준을 선택합니다.
   + **일반** - 웹 스크레이핑 프레임워크, 검색 엔진 및 자동 브라우저 등 다양한 자체 식별 봇을 탐지합니다. 이 수준의 봇 컨트롤 보호는 정적 요청 데이터 분석과 같은 기존 봇 탐지 기술을 사용하여 일반적인 봇을 식별합니다. 이 규칙은 이러한 봇의 트래픽에 레이블을 지정하고 확인할 수 없는 트래픽은 차단합니다.
   + **대상** - 공통 수준의 보호 기능을 포함하고 자체 식별이 불가능한 정교한 봇에 대한 대상 탐지 기능을 추가합니다. 대상 보호는 속도 제한과 CAPTCHA 및 백그라운드 브라우저 챌린지를 함께 사용하여 봇 활동을 완화합니다.
     + **`TGT_`** - 대상 보호를 제공하는 규칙의 이름은 `TGT_`로 시작합니다. 모든 대상 보호는 브라우저 질의, 지문 및 행동 휴리스틱과 같은 탐지 기술을 사용하여 잘못된 봇 트래픽을 식별합니다.
     + **`TGT_ML_`**— 기계 학습을 사용하는 대상 보호 규칙의 이름은 `TGT_ML_`로 시작합니다. 이러한 규칙은 웹 사이트 트래픽 통계에 대한 자동화된 기계 학습 분석을 사용하여 분산되고 조정된 봇 활동을 나타내는 비정상적인 동작을 감지합니다.는 타임스탬프, 브라우저 특성 및 이전에 방문한 URL과 같은 웹 사이트 트래픽에 대한 통계를 AWS WAF 분석하여 Bot Control 기계 학습 모델을 개선합니다. 기계 학습 기능은 기본적으로 활성화되지만 규칙 그룹 구성에서 비활성화할 수 있습니다. 기계 학습이 비활성화된 경우 AWS WAF 는 이러한 규칙을 평가하지 않습니다.

1. 대상 보호 수준을 사용하고 기계 학습(ML) AWS WAF 을 사용하여 분산되고 조정된 봇 활동에 대한 웹 트래픽을 분석하지 않으려면 기계 학습 옵션을 비활성화합니다. 이름이 `TGT_ML_`로 시작하는 봇 컨트롤 규칙에는 기계 학습이 필요합니다. 이러한 규칙에 대한 자세한 내용은 [봇 컨트롤 규칙 목록](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules) 섹션을 참조하세요.

1. 사용 비용을 포함하도록 규칙 그룹에 대해 범위 축소 문을 추가합니다. 범위 축소 문은 규칙 그룹이 검사하는 요청 집합의 범위를 좁힙니다. 예를 들면 사용 사례는 [봇 컨트롤 예제: 로그인 페이지에만 봇 컨트롤 사용](waf-bot-control-example-scope-down-login.md) 및 [봇 컨트롤 예제: 봇 컨트롤을 동적 콘텐츠에만 사용](waf-bot-control-example-scope-down-dynamic-content.md)로 시작합니다.

1. 규칙 그룹에 필요한 추가 구성을 모두 제공합니다.

1. 변경 사항을 보호 팩(웹 ACL)에 저장합니다.

프로덕션 트래픽용 봇 컨트롤 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다. 지침은 다음 섹션을 참조하세요.

# AWS WAF Bot Control을 사용한 오탐 시나리오 예제
<a name="waf-bot-control-false-positives"></a>

 이 섹션에서는 AWS WAF Bot Control에서 거짓 긍정이 발생할 수 있는 예제 상황을 제공합니다.

거짓 긍정을 최소화하기 위해 AWS WAF Bot Control 관리형 규칙 그룹에서 규칙을 신중하게 선택했습니다. 전 세계 트래픽을 대상으로 규칙을 테스트하고 테스트 보호 팩(웹 ACL)에 미치는 영향을 모니터링합니다. 하지만 트래픽 패턴의 변화로 인해 여전히 거짓 긍정이 발생할 수 있습니다. 또한 일부 사용 사례는 거짓 긍정을 유발하는 것으로 알려져 있으며 웹 트래픽에 맞게 사용자 지정해야 합니다.

거짓 긍정이 발생할 수 있는 상황은 다음과 같습니다.
+ 모바일 앱에는 일반적으로 `SignalNonBrowserUserAgent` 규칙에서 기본적으로 차단되는 비 브라우저 사용자 에이전트가 있습니다. 모바일 앱에서 발생하는 트래픽이나 비 브라우저 사용자 에이전트를 통한 기타 합법적인 트래픽이 예상되면 예외를 추가하여 허용해야 합니다.
+ 가동 시간 모니터링, 통합 테스트 또는 마케팅 도구 등의 경우 특정 봇 트래픽에 의존해야 합니다. 봇 컨트롤이 사용자가 허용하고자 하는 봇 트래픽을 식별하여 차단하는 경우 자체 규칙을 추가하여 처리 방식을 변경해야 합니다. 이것이 모든 고객을 대상으로 하는 거짓 긍정 시나리오는 아니지만, 본인에게 해당하는 시나리오라면 거짓 긍정과 동일하게 처리해야 합니다.
+ Bot Control 관리형 규칙 그룹은의 IP 주소를 사용하여 봇을 확인합니다 AWS WAF. 봇 컨트롤을 사용하고 프록시나 로드 밸런서를 통해 라우팅되는 봇을 확인한 경우 사용자 지정 규칙을 사용하여 봇을 명시적으로 허용해야 할 수 있습니다. 이 유형의 사용자 지정 규칙을 생성하는 방법에 대한 자세한 내용은 [에서 전달된 IP 주소 사용 AWS WAF](waf-rule-statement-forwarded-ip-address.md) 섹션을 참조하세요.
+ 글로벌 거짓 긍정률이 낮은 봇 컨트롤 규칙은 특정 디바이스나 애플리케이션에 심각한 영향을 미칠 수 있습니다. 예를 들어, 테스트 및 검증 과정에서 트래픽이 적은 애플리케이션이나 자주 사용되지 않는 브라우저 또는 디바이스에서 들어 오는 요청을 관찰하지 못했을 수 있습니다.
+ 과거에 거짓 긍정률이 낮았던 봇 컨트롤 규칙의 경우 유효한 트래픽에 대한 거짓 긍정이 증가했을 수 있습니다. 이는 유효한 트래픽과 함께 등장한 새로운 트래픽 패턴 또는 요청 특성으로 인한 것일 수 있으며, 이로 인해 이전에는 일치하지 않았던 규칙과의 일치가 발생할 수 있습니다. 이러한 변화는 다음과 같은 상황으로 인해 발생할 수 있습니다.
  + 로드 밸런서 또는 콘텐츠 배포 네트워크(CDN)와 같은 네트워크 어플라이언스를 통해 트래픽이 전송될 때 변경되는 트래픽 세부 정보입니다.
  + 트래픽 데이터의 새로운 변경 사항(예: 새 브라우저 또는 기존 브라우저의 새 버전)

 AWS WAF 봇 컨트롤 관리형 규칙 그룹에서 발생할 수 있는 거짓 긍정을 처리하는 방법에 대한 자세한 내용은 다음에 이어지는 [AWS WAF Bot Control 테스트 및 배포](waf-bot-control-deploying.md) 섹션의 지침을 참조하세요.

# AWS WAF Bot Control 테스트 및 배포
<a name="waf-bot-control-deploying"></a>

이 섹션에서는 사이트에 대한 AWS WAF Bot Control 구현을 구성하고 테스트하기 위한 일반적인 지침을 제공합니다. 따르기로 선택한 구체적인 단계는 요구 사항, 리소스 및 수신하는 웹 요청에 따라 달라집니다.

이 정보는 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)에 제공된 테스트 및 조정에 대한 일반 정보 외의 정보입니다.

**참고**  
AWS 관리형 규칙은 일반적인 웹 위협으로부터 사용자를 보호하도록 설계되었습니다. 설명서에 따라 사용하는 경우 AWS 관리형 규칙 규칙 그룹은 애플리케이션에 또 다른 보안 계층을 추가합니다. 그러나 AWS 관리형 규칙 규칙 그룹은 보안 책임을 대체하기 위한 것이 아니며, 이는 선택한 AWS 리소스에 따라 결정됩니다. 의 리소스가 AWS 적절하게 보호되는지 확인하려면 [공동 책임 모델을](https://aws.amazon.com/compliance/shared-responsibility-model/) 참조하세요.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 봇 컨트롤 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다.

이 지침은 AWS WAF 보호 팩(웹 ACL), 규칙 및 규칙 그룹을 만들고 관리하는 방법을 일반적으로 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다.

**봇 컨트롤 구현을 구성하고 테스트하려면**

이러한 단계를 먼저 테스트 환경에서 수행한 다음, 프로덕션 환경에서 수행합니다.

1. 

**봇 컨트롤 관리형 규칙 그룹 추가**
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

   관리형 AWS 규칙 그룹을 새 보호 팩 또는 기존 보호 팩(웹 ACL)`AWSManagedRulesBotControlRuleSet`에 추가하고 현재 보호 팩(웹 ACL) 동작을 변경하지 않도록 구성합니다.
   + 관리형 규칙 그룹을 추가할 때는 해당 규칙 그룹을 편집하고 다음을 수행합니다.
     + **검사 수준** 창에서 사용하려는 검사 수준을 선택합니다.
       + **일반** - 웹 스크레이핑 프레임워크, 검색 엔진 및 자동 브라우저 등 다양한 자체 식별 봇을 탐지합니다. 이 수준의 봇 컨트롤 보호는 정적 요청 데이터 분석과 같은 기존 봇 탐지 기술을 사용하여 일반적인 봇을 식별합니다. 이 규칙은 이러한 봇의 트래픽에 레이블을 지정하고 확인할 수 없는 트래픽은 차단합니다.
       + **대상** - 공통 수준의 보호 기능을 포함하고 자체 식별이 불가능한 정교한 봇에 대한 대상 탐지 기능을 추가합니다. 대상 보호는 속도 제한과 CAPTCHA 및 백그라운드 브라우저 챌린지를 함께 사용하여 봇 활동을 완화합니다.
         + **`TGT_`** - 대상 보호를 제공하는 규칙의 이름은 `TGT_`로 시작합니다. 모든 대상 보호는 브라우저 질의, 지문 및 행동 휴리스틱과 같은 탐지 기술을 사용하여 잘못된 봇 트래픽을 식별합니다.
         + **`TGT_ML_`**— 기계 학습을 사용하는 대상 보호 규칙의 이름은 `TGT_ML_`로 시작합니다. 이러한 규칙은 웹 사이트 트래픽 통계에 대한 자동화된 기계 학습 분석을 사용하여 분산되고 조정된 봇 활동을 나타내는 비정상적인 동작을 감지합니다.는 타임스탬프, 브라우저 특성 및 이전에 방문한 URL과 같은 웹 사이트 트래픽에 대한 통계를 AWS WAF 분석하여 Bot Control 기계 학습 모델을 개선합니다. 기계 학습 기능은 기본적으로 활성화되지만 규칙 그룹 구성에서 비활성화할 수 있습니다. 기계 학습이 비활성화된 경우 AWS WAF 는 이러한 규칙을 평가하지 않습니다.

       이 옵션에 대한 자세한 내용은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.
     + **규칙** 창에서 모든 규칙 **모든 규칙 작업 재정의** 드롭다운을 열고 **Count**를 선택합니다. 이 구성을 사용하면는 규칙 그룹의 모든 규칙에 대해 요청을 AWS WAF 평가하고 요청에 레이블을 추가하면서 해당 결과의 일치 항목만 계산합니다. 자세한 내용은 [규칙 그룹에 대한 규칙 작업 재정의](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override) 단원을 참조하십시오.

       이 재정의를 통해 봇 컨트롤 규칙이 트래픽에 미치는 잠재적 영향을 모니터링하여 내부 사용 사례 또는 원하는 봇과 같은 항목에 예외를 추가할지 여부를 결정할 수 있습니다.
   + 이미 사용 중인 다른 규칙 또는 규칙 그룹보다 높은 우선순위를 지정하여 보호 팩(웹 ACL)에서 마지막으로 평가되도록 규칙 그룹을 배치합니다. 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 단원을 참조하십시오.

     이렇게 하면 현재의 트래픽 처리가 중단되지 않습니다. 예를 들어 SQL 명령어 삽입이나 교차 사이트 스크립팅과 같은 악성 트래픽을 탐지하는 규칙이 있는 경우 이들 규칙이 이러한 요청을 계속 탐지하고 기록합니다. 또는 악의적이지 않은 알려진 트래픽을 허용하는 규칙이 있는 경우 해당 트래픽을 봇 컨트롤 관리형 규칙 그룹을 통해 차단하지 않고 계속 허용할 수 있습니다. 테스트 및 조정 활동 중에 처리 순서를 조정하기로 결정할 수 있지만 좋은 시작 방법은 아닙니다.

1. 

**보호 팩(웹 ACL)의 로깅 및 지표 활성화**

   필요에 따라 보호 팩(웹 ACL)에 대한 로깅, Amazon Security Lake 데이터 수집, 요청 샘플링 및 Amazon CloudWatch 지표를 구성합니다. 이러한 가시성 도구를 사용하여 봇 컨트롤 관리형 규칙 그룹과 트래픽 간의 상호 작용을 모니터링할 수 있습니다.
   + 로깅에 대한 추가 정보는 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.
   + Amazon Security Lake에 대한 자세한 내용은 [Amazon Security Lake 사용 설명서의 Amazon Security Lake란 무엇인가요?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) 및 [AWS 서비스에서 데이터 수집](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)을 참조하세요. ** 
   + Amazon CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.
   + 웹 요청 샘플링에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요.

1. 

**보호 팩(웹 ACL)을 리소스와 연결**

   보호 팩(웹 ACL)이 아직 리소스와 연결되지 않은 경우 해당 리소스를 연결합니다. 자세한 내용은 [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md) 단원을 참조하세요.

1. 

**트래픽과 봇 컨트롤 규칙 일치 모니터링**

   트래픽이 흐르고 있고 봇 컨트롤 관리형 규칙의 그룹 규칙이 일치하는 웹 요청에 레이블을 추가하고 있는지 확인하십시오. 로그에서 레이블을 볼 수 있고 Amazon CloudWatch 지표에서 봇 및 레이블 지표를 볼 수 있습니다. 로그에서 규칙 그룹에서 개수하도록 재정의한 규칙은 계수로 설정된 `action`과 재정의한 구성된 규칙 작업을 나타내는 `overriddenAction`을 포함하는 `ruleGroupList`로 표시됩니다.
**참고**  
봇 컨트롤 관리형 규칙 그룹은 AWS WAF의 IP 주소를 사용하여 봇을 확인합니다. 봇 컨트롤을 사용하고 프록시나 로드 밸런서를 통해 라우팅되는 봇을 확인한 경우 사용자 지정 규칙을 사용하여 봇을 명시적으로 허용해야 할 수 있습니다. 사용자 지정 규칙을 생성하는 방법에 대한 자세한 내용은 [에서 전달된 IP 주소 사용 AWS WAF](waf-rule-statement-forwarded-ip-address.md) 섹션을 참조하세요. 규칙을 사용하여 봇 컨트롤 웹 요청 처리를 사용자 지정하는 방법에 대한 자세한 내용은 다음 단계를 참조하세요.

   웹 요청 처리를 주의 깊게 검토하여 사용자 지정 처리로 완화해야 하는 거짓 긍정이 있는지 확인하십시오. 거징 긍정의 예는 [AWS WAF Bot Control을 사용한 오탐 시나리오 예제](waf-bot-control-false-positives.md) 섹션을 참조하세요.

1. 

**봇 컨트롤 웹 요청 처리 사용자 지정**

   필요에 따라 요청을 명시적으로 허용하거나 차단하는 자체 규칙을 추가하여 봇 컨트롤 규칙이 요청을 처리하는 방식을 변경합니다.

   이를 수행하는 방법은 사용 사례에 따라 다르지만 일반적인 해결 방법은 다음과 같습니다.
   + 봇 컨트롤 관리형 규칙 그룹 앞에 추가하는 규칙으로 요청을 명시적으로 허용합니다. 이렇게 하면 허용된 요청이 평가 대상 규칙 그룹에 도달하지 않습니다. 이를 통해 봇 컨트롤 관리형 규칙 그룹 사용 비용을 억제할 수 있습니다.
   + 봇 컨트롤 관리형 규칙 그룹 문 안에 범위 축소 문을 추가하여 봇 컨트롤 평가에서 요청을 제외시킵니다. 이 기능은 이전 옵션과 동일합니다. 범위 축소 문과 일치하지 않는 요청은 규칙 그룹 평가에 도달하지 않으므로 봇 컨트롤 관리형 규칙 그룹의 사용 비용을 줄이는 데 도움이 됩니다. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.

     예를 들어, 다음을 참조하세요.
     + [봇 관리에서 IP 범위 제외](waf-bot-control-example-scope-down-ip.md)
     + [제어하는 봇에서 들어오는 트래픽 허용](waf-bot-control-example-scope-down-your-bot.md)
   + 요청 처리 시 봇 컨트롤 레이블을 사용하여 요청을 허용하거나 차단할 수 있습니다. 봇 컨트롤 관리형 규칙 그룹 뒤에 레이블 일치 규칙을 추가하여 허용하려는 레이블이 지정된 요청과 차단하려는 요청을 필터링합니다.

     테스트 후에는 관련 봇 컨트롤 규칙을 계수 모드로 유지하고 요청 처리 결정을 사용자 지정 규칙에서 유지하십시오. 레이블 일치 문에 대한 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 섹션을 참조하세요.

     이러한 유형의 사용자 지정에 대한 예는 다음을 참조하세요.
     + [차단된 사용자 에이전트에 대한 예외 생성](waf-bot-control-example-user-agent-exception.md)
     + [차단된 특정 봇 허용](waf-bot-control-example-allow-blocked-bot.md)
     + [확인된 봇 차단](waf-bot-control-example-block-verified-bots.md)

   추가 예제는 다음([AWS WAF Bot Control 예제](waf-bot-control-examples.md))을 참조하십시오.

1. 

**필요에 따라 봇 컨트롤 관리형 규칙 그룹 설정을 활성화**

   상황에 따라 일부 봇 컨트롤 규칙을 계수 모드로 유지하기로 결정하거나 다른 작업 재정의를 결정할 수도 있습니다. 규칙 그룹 내부에 구성된 대로 실행하려는 규칙의 경우 일반 규칙 구성을 활성화합니다. 이를 수행하려면 보호 팩(웹 ACL)에서 규칙 그룹 문을 편집하고 **규칙** 창에서 변경합니다.

# AWS WAF Bot Control 예제
<a name="waf-bot-control-examples"></a>

이 섹션에서는 AWS WAF Bot Control 구현에 대한 다양한 일반 사용 사례를 충족하는 구성의 예를 보여줍니다.

각 예제는 사용 사례에 대한 설명을 제공하고 나서 사용자 지정 구성 규칙의 JSON 목록에 나와 있는 솔루션을 표시합니다.

**참고**  
이 예제에 표시된 JSON 목록은 콘솔에서 규칙을 구성하고 나서 **규칙 JSON 편집기**로 편집하여 생성한 것입니다.

**Topics**
+ [봇 컨트롤 예제: 단순 구성](waf-bot-control-example-basic.md)
+ [봇 컨트롤 예제: 확인된 봇을 명시적으로 허용](waf-bot-control-example-allow-verified-bots.md)
+ [봇 컨트롤 예: 확인된 봇 차단](waf-bot-control-example-block-verified-bots.md)
+ [봇 컨트롤 예제: 차단된 특정 봇 허용](waf-bot-control-example-allow-blocked-bot.md)
+ [봇 컨트롤 예제: 차단된 사용자 에이전트에 대한 예외 생성](waf-bot-control-example-user-agent-exception.md)
+ [봇 컨트롤 예제: 로그인 페이지에만 봇 컨트롤 사용](waf-bot-control-example-scope-down-login.md)
+ [봇 컨트롤 예제: 봇 컨트롤을 동적 콘텐츠에만 사용](waf-bot-control-example-scope-down-dynamic-content.md)
+ [봇 컨트롤 예제: 봇 관리에서 IP 범위 제외](waf-bot-control-example-scope-down-ip.md)
+ [봇 컨트롤 예제: 제어하는 봇에서 들어오는 트래픽 허용](waf-bot-control-example-scope-down-your-bot.md)
+ [봇 컨트롤 예제: 대상 검사 수준 활성화](waf-bot-control-example-targeted-inspection-level.md)
+ [봇 컨트롤 예제: 두 문을 사용하여 대상 검사 수준 사용 제한](waf-bot-control-example-common-and-targeted-inspection-level.md)

# 봇 컨트롤 예제: 단순 구성
<a name="waf-bot-control-example-basic"></a>

다음 JSON 목록은 AWS WAF Bot Control 관리형 규칙 그룹이 있는 예제 보호 팩(웹 ACL)을 보여줍니다. 가 모니터링 목적으로 요청 샘플과 지표 AWS WAF 를 저장하는 가시성 구성을 기록해 둡니다.

```
{
  "Name": "Bot-WebACL",
  "Id": "...",
  "ARN": "...",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "Bot-WebACL",
  "Rules": [
      {
        ...
      },
      {
         "Name": "AWS-AWSBotControl-Example",
         "Priority": 5,
         "Statement": {
            "ManagedRuleGroupStatement": {
               "VendorName": "AWS",
               "Name": "AWSManagedRulesBotControlRuleSet",
               "ManagedRuleGroupConfigs": [
                 {
                   "AWSManagedRulesBotControlRuleSet": {
                     "InspectionLevel": "COMMON"
                   }
                 }
               ],
               "RuleActionOverrides": [],
               "ExcludedRules": []
            },
            "VisibilityConfig": {
               "SampledRequestsEnabled": true,
               "CloudWatchMetricsEnabled": true,
               "MetricName": "AWS-AWSBotControl-Example"
             }
          }
      }
    ],
    "VisibilityConfig": {
      ...
    },
    "Capacity": 1496,
    "ManagedByFirewallManager": false,
    "RetrofittedByFirewallManager": false
}
```

# 봇 컨트롤 예제: 확인된 봇을 명시적으로 허용
<a name="waf-bot-control-example-allow-verified-bots"></a>

AWS WAF Bot Control은에서 일반적이고 검증 가능한 봇 AWS 으로 알려진 봇을 차단하지 않습니다. 봇 컨트롤은 웹 요청이 확인된 봇으로부터 온 것으로 식별되면 봇의 이름을 지정하는 레이블과 해당 봇이 확인된 봇임을 나타내는 레이블을 추가합니다. 봇 컨트롤은 정상 작동이 확인된 봇이 차단되는 것을 방지하기 위해 신호 레이블과 같은 다른 레이블을 추가하지 않습니다.

확인된 봇을 차단하는 다른 AWS WAF 규칙이 있을 수 있습니다. 확인된 봇이 허용되도록 하려면 봇 컨트롤 레이블에 따라 허용할 사용자 지정 규칙을 추가합니다. 새 규칙은 봇 컨트롤 관리형 규칙 그룹 다음에 실행해야만 레이블과 일치할 수 있습니다.

다음 규칙은 확인된 봇을 명시적으로 허용합니다.

```
{
    "Name": "match_rule",
    "Statement": {
      "LabelMatchStatement": {
        "Scope": "LABEL",
        "Key": "awswaf:managed:aws:bot-control:bot:verified"
      }
    },
    "RuleLabels": [],
    "Action": {
      "Allow": {}
    }
}
```

# 봇 컨트롤 예: 확인된 봇 차단
<a name="waf-bot-control-example-block-verified-bots"></a>

확인된 봇을 차단하려면 AWS WAF 봇 컨트롤 관리형 규칙 그룹 이후에 실행되는 차단 규칙을 추가해야 합니다. 이렇게 하려면 차단할 봇 이름을 식별하고 레이블 일치 문을 사용하여 해당 봇을 식별하고 차단합니다. 확인된 봇을 모두 차단하려는 경우 `bot:name:` 레이블과 일치하는 항목을 생략할 수 있습니다.

다음 규칙은 `bingbot` 확인된 봇만 차단합니다. 이 규칙은 봇 컨트롤 관리형 규칙 그룹 다음에 실행해야 합니다.

```
{
    "Name": "match_rule",
    "Statement": {
      "AndStatement": {
        "Statements": [
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:bot:name:bingbot"
            }
          },
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:bot:verified"
            }
          }
        ]
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    }
  }
```

다음 규칙은 확인된 모든 봇을 차단합니다.

```
{
    "Name": "match_rule",
    "Statement": {
      "LabelMatchStatement": {
        "Scope": "LABEL",
        "Key": "awswaf:managed:aws:bot-control:bot:verified"
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    }
}
```

# 봇 컨트롤 예제: 차단된 특정 봇 허용
<a name="waf-bot-control-example-allow-blocked-bot"></a>

봇이 둘 이상의 봇 컨트롤 규칙에 의해 차단될 수 있습니다. 각 차단 규칙마다 다음 절차를 통해 실행합니다.

 AWS WAF Bot Control 규칙이 차단하지 않으려는 봇을 차단하는 경우 다음을 수행합니다.

1. 로그를 확인하여 봇을 차단하는 봇 컨트롤 규칙을 식별합니다. 차단 규칙은 이름이 `terminatingRule`로 시작하는 필드의 로그에 지정됩니다. 보호 팩(웹 ACL) 로그에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요. 참고로, 규칙이 요청에 추가하는 레이블입니다.

1. 보호 팩(웹 ACL)에서 차단 규칙의 작업을 계산으로 재정의합니다. 콘솔에서 이 작업을 수행하려면 보호 팩(웹 ACL)에서 규칙 그룹의 규칙을 편집하고 규칙에 대해 Count의 규칙 작업 재정의를 선택합니다. 이렇게 하면 봇이 규칙에 의해 차단되지 않지만 규칙은 여전히 해당 레이블을 일치 요청에 적용합니다.

1. 봇 컨트롤 관리형 규칙 그룹 다음에 보호 팩(웹 ACL)에 레이블 일치 규칙을 추가합니다. 재정의된 규칙의 레이블과 일치하도록 규칙을 구성하고, 차단하지 않을 봇을 제외한 모든 일치 요청을 차단하도록 구성합니다.

   이제 허용할 봇이 로그를 통해 식별된 차단 규칙에 의해 더 이상 차단되지 않도록 보호 팩(웹 ACL)이 구성됩니다.

트래픽과 로그를 다시 확인하여 봇의 통과가 허용되는지 확인합니다. 그렇지 않은 경우 위 절차를 다시 실행합니다.

예를 들어, `pingdom`을 제외한 모든 모니터링 봇을 차단하고자 한다고 가정해 보겠습니다. 이 경우, 개수를 계산하도록 `CategoryMonitoring` 규칙을 재정의하고 나서 봇 이름 레이블이 `pingdom`인 것을 제외하고 모든 모니터링 봇을 차단하는 규칙을 작성합니다.

다음 규칙은 봇 컨트롤 관리형 규칙 그룹을 사용하지만 개수를 계산하도록 `CategoryMonitoring`에 대한 규칙 작업을 재정의합니다. 범주 모니터링 규칙은 평소와 같이 일치 요청에 해당 레이블을 적용하지만 일반적인 차단 작업을 수행하는 대신 요청의 수만 계산합니다.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
	  "RuleActionOverrides": [
        {
          "ActionToUse": {
            "Count": {}
          },
          "Name": "CategoryMonitoring"
        }
      ],
      "ExcludedRules": []
    }
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AWS-AWSBotControl-Example"
  }
}
```

다음 규칙은 이전 `CategoryMonitoring` 규칙이 일치하는 웹 요청에 추가하는 범주 모니터링 레이블과 일치합니다. 범주 모니터링 요청 중에서 이 규칙은 봇 이름 `pingdom`에 대한 레이블이 있는 요청을 제외한 모든 요청을 차단합니다.

다음 규칙은 보호 팩(웹 ACL) 처리 순서에서 이전 봇 컨트롤 관리형 규칙 그룹 다음에 실행해야 합니다.

```
{
      "Name": "match_rule",
      "Priority": 10,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
              }
            },
            {
              "NotStatement": {
                "Statement": {
                  "LabelMatchStatement": {
                    "Scope": "LABEL",
                    "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
                  }
                }
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "match_rule"
      }
}
```

# 봇 컨트롤 예제: 차단된 사용자 에이전트에 대한 예외 생성
<a name="waf-bot-control-example-user-agent-exception"></a>

브라우저가 아닌 일부 사용자 에이전트의 트래픽이 잘못 차단되는 경우 문제가 되는 AWS WAF Bot Control 규칙을 개수`SignalNonBrowserUserAgent`로 설정한 다음 규칙의 레이블 지정을 예외 기준과 결합하여 예외를 생성할 수 있습니다.

**참고**  
모바일 앱에는 일반적으로 `SignalNonBrowserUserAgent` 규칙에서 기본적으로 차단되는 비 브라우저 사용자 에이전트가 있습니다.

다음 규칙은 봇 컨트롤 관리형 규칙 그룹을 사용하지만 개수를 계산하도록 `SignalNonBrowserUserAgent`에 대한 규칙 작업을 재정의합니다. 신호 규칙은 평소와 같이 일치 요청에 해당 레이블을 적용하지만 일반적인 차단 작업을 수행하는 대신 요청의 수만 계산합니다.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
	  "RuleActionOverrides": [
        {
          "ActionToUse": {
            "Count": {}
          },
          "Name": "SignalNonBrowserUserAgent"
        }
      ],
      "ExcludedRules": []
    }
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AWS-AWSBotControl-Example"
  }
}
```

다음 규칙은 봇 컨트롤 `SignalNonBrowserUserAgent` 규칙이 일치하는 웹 요청에 추가하는 신호 레이블과 일치합니다. 신호 요청 중에서 이 규칙은 허용하려는 사용자 에이전트가 있는 요청을 제외한 모든 요청을 차단합니다.

다음 규칙은 보호 팩(웹 ACL) 처리 순서에서 이전 봇 컨트롤 관리형 규칙 그룹 다음에 실행해야 합니다.

```
{
    "Name": "match_rule",
    "Statement": {
      "AndStatement": {
        "Statements": [
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:signal:non_browser_user_agent"
            }
          },
          {
            "NotStatement": {
              "Statement": {
                "ByteMatchStatement": {
                  "FieldToMatch": {
                    "SingleHeader": {
                      "Name": "user-agent"
                    }
                  },
                  "PositionalConstraint": "EXACTLY",
                  "SearchString": "PostmanRuntime/7.29.2",
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "match_rule"
    }
}
```

# 봇 컨트롤 예제: 로그인 페이지에만 봇 컨트롤 사용
<a name="waf-bot-control-example-scope-down-login"></a>

다음 예제에서는 범위 축소 문을 사용하여 URI 경로 로 식별되는 웹 사이트의 로그인 페이지로 들어오는 트래픽에만 AWS WAF Bot Control을 적용합니다`login`. 로그인 페이지의 URI 경로는 애플리케이션과 환경에 따라 예제와 다를 수 있습니다.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
	  "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "ByteMatchStatement": {
        "SearchString": "login",
        "FieldToMatch": {
          "UriPath": {}
        },
        "TextTransformations": [
          {
            "Priority": 0,
            "Type": "NONE"
          }
        ],
        "PositionalConstraint": "CONTAINS"
      }
    }
  }
}
```

# 봇 컨트롤 예제: 봇 컨트롤을 동적 콘텐츠에만 사용
<a name="waf-bot-control-example-scope-down-dynamic-content"></a>

이 예제에서는 범위 축소 문을 사용하여 동적 콘텐츠에만 AWS WAF Bot Control을 적용합니다.

scope-down 명령문은 정규식 패턴 집합에 대한 일치 결과를 무효화하여 정적 콘텐츠를 제외합니다.
+ *정규식 패턴 집합은 정적 콘텐츠의 확장자와 일치하도록 구성됩니다.* 예를 들어, 정규식 패턴 집합 사양은 `(?i)\.(jpe?g|gif|png|svg|ico|css|js|woff2?)$`일 수 있습니다. 정규식 패턴 집합 관리에 대한 자세한 내용은 [정규식 패턴 집합 일치 규칙 문](waf-rule-statement-type-regex-pattern-set-match.md) 섹션을 참조하세요.
+ 범위 축소 문에서는 `NOT` 문 안에 정규식 패턴 설정 문을 중첩하여 일치하는 정적 콘텐츠를 제외합니다. `NOT` 문에 대한 자세한 내용은 [NOT 규칙 문](waf-rule-statement-type-not.md) 섹션을 참조하세요.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
	  "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "RegexPatternSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:123456789:regional/regexpatternset/excludeset/00000000-0000-0000-0000-000000000000",
            "FieldToMatch": {
              "UriPath": {}
            },
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ]
          }
        }
      }
    }
  }
}
```

# 봇 컨트롤 예제: 봇 관리에서 IP 범위 제외
<a name="waf-bot-control-example-scope-down-ip"></a>

 AWS WAF Bot Control 관리에서 웹 트래픽의 하위 집합을 제외하려는 경우 규칙 문을 사용하여 해당 하위 집합을 식별한 다음 Bot Control 관리형 규칙 그룹 문에 범위 축소 문을 추가하여 제외할 수 있습니다.

다음 규칙은 특정 IP 주소 범위에서 들어오는 웹 요청을 제외한 모든 웹 트래픽에 대해 일반적인 봇 컨트롤 봇 관리를 수행합니다.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "IPSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:123456789:regional/ipset/friendlyips/00000000-0000-0000-0000-000000000000"
          }
        }
      }
    }
  }
}
```

# 봇 컨트롤 예제: 제어하는 봇에서 들어오는 트래픽 허용
<a name="waf-bot-control-example-scope-down-your-bot"></a>

일부 사이트 모니터링 봇과 사용자 지정 봇이 사용자 지정 헤더를 전송하도록 구성할 수 있습니다. 이러한 유형의 봇으로부터 들어오는 트래픽을 허용하려면 헤더에 공유 암호를 추가하도록 구성할 수 있습니다. 그런 다음 AWS WAF Bot Control 관리형 규칙 그룹 문에 범위 축소 문을 추가하여 헤더가 있는 메시지를 제외할 수 있습니다.

다음 예제 규칙은 비밀 헤더가 있는 트래픽을 봇 컨트롤 검사에서 제외합니다.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "ByteMatchStatement": {
            "SearchString": "YSBzZWNyZXQ=",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "x-bypass-secret"
              }
            },
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ],
            "PositionalConstraint": "EXACTLY"
          }
        }
      }
    }
  }
}
```

# 봇 컨트롤 예제: 대상 검사 수준 활성화
<a name="waf-bot-control-example-targeted-inspection-level"></a>

향상된 보호 수준을 위해 AWS WAF Bot Control 관리형 규칙 그룹에서 대상 검사 수준을 활성화할 수 있습니다.

다음 예제에서는 기계 학습 기능이 활성화됩니다. `EnableMachineLearning`을 `false`로 설정하여 이 동작을 옵트아웃할 수 있습니다.

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "TARGETED",
            "EnableMachineLearning": true
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    }
  }
}
```

# 봇 컨트롤 예제: 두 문을 사용하여 대상 검사 수준 사용 제한
<a name="waf-bot-control-example-common-and-targeted-inspection-level"></a>

비용 최적화를 위해 별도의 검사 수준 및 범위 지정과 함께 보호 팩(웹 ACL)에 두 개의 AWS WAF Bot Control 관리형 규칙 그룹 문을 사용할 수 있습니다. 예를 들어 대상 검사 수준 문의 범위를 보다 민감한 애플리케이션 엔드포인트로만 지정할 수 있습니다.

다음 예제의 두 문에는 상호 배타적인 범위 지정이 있습니다. 이 구성이 없으면 요청이 두 번의 봇 컨트롤 평가 비용을 청구할 수 있습니다.

**참고**  
콘솔의 시각적 편집기에서는 `AWSManagedRulesBotControlRuleSet`를 참조하는 여러 문이 지원되지 않습니다. 대신 JSON 편집기를 사용합니다.

```
{
  "Name": "Bot-WebACL",
  "Id": "...",
  "ARN": "...",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "Bot-WebACL",
  "Rules": [
      {
        ...
      },
      {
       "Name": "AWS-AWSBotControl-Common",
       "Priority": 5,
       "Statement": {
          "ManagedRuleGroupStatement": {
             "VendorName": "AWS",
             "Name": "AWSManagedRulesBotControlRuleSet",
             "ManagedRuleGroupConfigs": [
               {
                 "AWSManagedRulesBotControlRuleSet": {
                   "InspectionLevel": "COMMON"
                 }
               }
             ],
             "RuleActionOverrides": [],
             "ExcludedRules": []
          },
          "VisibilityConfig": {
             "SampledRequestsEnabled": true,
             "CloudWatchMetricsEnabled": true,
             "MetricName": "AWS-AWSBotControl-Common"
           },
           "ScopeDownStatement": {
              "NotStatement": {
                "Statement": {
                  "ByteMatchStatement": {
                    "FieldToMatch": {
                      "UriPath": {}
                    },
                    "PositionalConstraint": "STARTS_WITH",
                    "SearchString": "/sensitive-endpoint",
                    "TextTransformations": [
                      {
                        "Type": "NONE",
                        "Priority": 0
                      }
                    ]
                  }
                }
              }
            }
        }
      },
      {
       "Name": "AWS-AWSBotControl-Targeted",
       "Priority": 6,
       "Statement": {
          "ManagedRuleGroupStatement": {
             "VendorName": "AWS",
             "Name": "AWSManagedRulesBotControlRuleSet",
             "ManagedRuleGroupConfigs": [
               {
                 "AWSManagedRulesBotControlRuleSet": {
                   "InspectionLevel": "TARGETED",
                   "EnableMachineLearning": true
                 }
               }
             ],
             "RuleActionOverrides": [],
             "ExcludedRules": []
          },
          "VisibilityConfig": {
             "SampledRequestsEnabled": true,
             "CloudWatchMetricsEnabled": true,
             "MetricName": "AWS-AWSBotControl-Targeted"
           },
           "ScopeDownStatement": {
              "Statement": {
                "ByteMatchStatement": {
                  "FieldToMatch": {
                    "UriPath": {}
                  },
                  "PositionalConstraint": "STARTS_WITH",
                  "SearchString": "/sensitive-endpoint",
                  "TextTransformations": [
                    {
                      "Type": "NONE",
                      "Priority": 0
                    }
                  ]
                }
              }
            }
        }
      }
    ],
    "VisibilityConfig": {
      ...
    },
    "Capacity": 1496,
    "ManagedByFirewallManager": false,
    "RetrofittedByFirewallManager": false
}
```

# AWS WAF 분산 서비스 거부(DDoS) 방지
<a name="waf-anti-ddos"></a>

AWS WAF 는 AWS 리소스의 DDoS 공격에 대한 정교하고 사용자 지정 가능한 보호를 제공합니다. 이 섹션에 설명된 옵션을 검토하고 보안 및 비즈니스 요구 사항에 맞는 DDoS 방지 보호 수준을 선택합니다.

 AWS WAF의 두 가지 DDoS 보호 티어 중에서 선택할 수 있습니다.

리소스 수준 DDoS 보호  
표준 티어는 Application Load Balancer 내에서 작동하여 호스트 내 필터링을 통해 알려진 악성 소스로부터 보호합니다. 잠재적 DDoS 이벤트에 가장 잘 대응하도록 보호 동작을 구성할 수 있습니다.  
리소스 수준 DDoS 보호:  
+ 트래픽 패턴을 자동으로 모니터링합니다.
+ 위협 인텔리전스를 실시간으로 업데이트합니다.
+ 알려진 악성 소스로부터 보호합니다.
**Application Load Balancer에 대한 웹 ACL 요청 비용 최적화**  
리소스 수준 보호를 활성화하려면 웹 ACL을 Application Load Balancer와 연결해야 합니다. Application Load Balancer가 구성이 없는 웹 ACL과 연결된 경우 AWS WAF 요청으로 인해 요금이 발생하지 않지만, AWS WAF 는 CloudWatch 지표에서 샘플링된 요청 또는 Application Load Balancer에 대한 보고서를 제공하지 않습니다. 다음 작업을 수행하여 Application Load Balancer에 대한 관찰성 기능을 활성화할 수 있습니다.  
+ `DefaultAction`에서 사용자 지정 요청 헤더와 함께 `Block` 작업 또는 `Allow` 작업을 사용합니다. 자세한 내용은 [차단되지 않은 작업에 대해 사용자 지정 요청 헤더 삽입](customizing-the-incoming-request.md) 단원을 참조하세요.
+ 웹 ACL에 규칙을 추가합니다. 자세한 내용은 [AWS WAF 규칙](waf-rules.md) 단원을 참조하세요.
+ 로깅 대상을 활성화합니다. 자세한 내용은 [보호 팩(웹 ACL)에 대한 로깅 구성](logging-management-configure.md) 단원을 참조하세요.
+ 웹 ACL을 AWS Firewall Manager 정책과 연결합니다. 자세한 내용은 [에 대한 AWS Firewall Manager 정책 생성 AWS WAF](create-policy.md#creating-firewall-manager-policy-for-waf) 단원을 참조하세요.
AWS WAF 는 이러한 구성 없이 샘플링된 요청을 제공하거나 CloudWatch 지표를 게시하지 않습니다.

AWS 관리형 규칙 그룹 DDoS 보호  
DDoS 보호의 고급 티어는 `AWSManagedRulesAntiDDoSRuleSet`을 통해 제공됩니다. 관리형 규칙 그룹은 다음과 같은 주목할 만한 차이점과 함께 리소스 수준 보호 티어를 보완합니다.  
+ 보호 동작은 Application Load Balancer 및 CloudFront 배포 모두로 확장됩니다.
+ 트래픽 기준은 보호된 리소스에 대해 생성되어 새로운 공격 패턴의 탐지를 개선합니다.
+ 보호 동작은 선택한 민감도 수준에 따라 활성화됩니다.
+ 가능한 DDoS 이벤트 중에 보호된 리소스에 대한 요청을 관리하고 레이블을 지정합니다.
포함된 규칙 및 기능의 전체 목록은 [AWS WAF 분산 서비스 거부(DDoS) 방지 규칙 그룹](aws-managed-rule-groups-anti-ddos.md) 섹션을 참조하세요.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 설명은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**Topics**
+ [Application Load Balancer에 대한 리소스 수준 DDoS 보호](waf-anti-ddos-alb.md)
+ [안티 DDoS 관리형 규칙 그룹을 사용한 고급 AWS WAF 안티 DDoS 보호](waf-anti-ddos-advanced.md)

# Application Load Balancer에 대한 리소스 수준 DDoS 보호
<a name="waf-anti-ddos-alb"></a>

**리소스 수준 DDoS 보호**는 AWS WAF 관리형 규칙 그룹 배포에 대한 요금 부과 없이 Application Load Balancer에 즉각적인 방어를 추가합니다. 이 표준 DDoS 방지 계층은 AWS 위협 인텔리전스 및 트래픽 패턴 분석을 사용하여 Application Load Balancer를 보호합니다. 알려진 악성 소스를 식별하기 위해 DDoS 방지 보호는 직접 클라이언트 IP 주소와 XFF(X-Forwarded-For) 헤더를 모두 호스트에서 필터링합니다. 알려진 악성 소스가 식별되면 다음 두 모드 중 하나를 통해 보호가 활성화됩니다.

**DDoS에서 활성**은 기본 보호 모드이며 대부분의 사용 사례에 권장됩니다.

이 모드:
+ 높은 로드 조건 또는 잠재적 DDoS 이벤트를 감지할 때 자동으로 보호 활성화
+ 공격 조건에서만 알려진 악성 소스의 트래픽 속도 제한
+ 정상 운영 중 합법적인 트래픽에 미치는 영향 최소화
+ Application Load Balancer 상태 지표 및 AWS WAF 응답 데이터를 사용하여 보호 참여 시기 결정

**Always on**은 활성화되면 항상 활성화되는 선택적 모드입니다.

이 모드: 
+ 알려진 악성 소스에 대한 지속적인 보호 유지
+ 실시간으로 알려진 악성 소스의 트래픽 속도 제한
+ XFF 헤더에 악성 IP가 있는 직접 연결 및 요청 모두에 보호 적용
+ 합법적인 트래픽에 더 큰 영향을 미칠 수 있지만 보안 극대화

리소스 수준 DDoS 보호로 차단된 요청은 CloudWatch 로그에 `LowReputationPacketsDropped` 또는 `LowReputationRequestsDenied` 지표로 기록됩니다. 자세한 내용은 [AWS WAF 핵심 지표 및 차원](waf-metrics.md#waf-metrics-general) 단원을 참조하세요.

## 기존 webACL에서 표준 DDoS 보호 활성화
<a name="enabling-protection-alb"></a>

웹 ACL을 생성하거나 Application Load Balancer와 연결된 기존 웹 ACL을 업데이트할 때 DDoS 보호를 활성화할 수 있습니다.

**참고**  
Application Load Balancer와 연결된 기존 웹 ACL이 있는 경우 **DDoS에서 활성** 모드에서 DDoS 방지 보호가 기본적으로 활성화됩니다.

**AWS WAF 콘솔에서 DDoS 방지 보호를 활성화하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **웹 ACL**을 선택한 후 Application Load Balancer와 연결된 웹 ACL을 엽니다.

1. **연결된 AWS 리소스를** 선택합니다.

1. **리소스 수준 DDoS 보호**에서 **편집**을 선택합니다.

1. 다음 보호 모드 중 하나를 선택합니다.
   + **DDoS에서 활성**(권장) - 높은 로드 조건에서만 보호 작동
   + **Always on** - 알려진 악성 소스에 대한 Always on 보호

1. **변경 사항 저장**을 선택합니다.

**참고**  
웹 ACL 생성에 대한 자세한 내용은 [에서 보호 팩(웹 ACL) 생성 AWS WAF](web-acl-creating.md) 섹션을 참조하세요.

**Application Load Balancer에 대한 웹 ACL 요청 비용 최적화**  
리소스 수준 보호를 활성화하려면 웹 ACL을 Application Load Balancer와 연결해야 합니다. Application Load Balancer가 구성이 없는 웹 ACL과 연결된 경우 AWS WAF 요청으로 인해 요금이 발생하지 않지만, AWS WAF 는 CloudWatch 지표의 Application Load Balancer에 대해 샘플링된 요청 또는 보고서를 제공하지 않습니다. 다음 작업을 수행하여 Application Load Balancer에 대한 관찰성 기능을 활성화할 수 있습니다.  
`DefaultAction`에서 사용자 지정 요청 헤더와 함께 `Block` 작업 또는 `Allow` 작업을 사용합니다. 자세한 내용은 [차단되지 않은 작업에 대해 사용자 지정 요청 헤더 삽입](customizing-the-incoming-request.md) 단원을 참조하세요.
웹 ACL에 규칙을 추가합니다. 자세한 내용은 [AWS WAF 규칙](waf-rules.md) 단원을 참조하세요.
로깅 대상을 활성화합니다. 자세한 내용은 [보호 팩(웹 ACL)에 대한 로깅 구성](logging-management-configure.md) 단원을 참조하세요.
웹 ACL을 AWS Firewall Manager 정책과 연결합니다. 자세한 내용은 [에 대한 AWS Firewall Manager 정책 생성 AWS WAF](create-policy.md#creating-firewall-manager-policy-for-waf) 단원을 참조하세요.
AWS WAF 는 이러한 구성 없이 샘플링된 요청을 제공하거나 CloudWatch 지표를 게시하지 않습니다.

# 안티 DDoS 관리형 규칙 그룹을 사용한 고급 AWS WAF 안티 DDoS 보호
<a name="waf-anti-ddos-advanced"></a>

`AWSManagedRulesAntiDDoSRuleSet` 관리형 규칙 그룹은에서 사용할 수 있는 Anti-DDoS 보호의 가장 고급 티어입니다 AWS WAF.

**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

## AWS WAF DDoS 방지 구성 요소
<a name="waf-anti-ddos-components"></a>

에서 고급 DDoS 방지 보호를 구현하기 위한 주요 구성 요소는 다음과 AWS WAF 같습니다.

**`AWSManagedRulesAntiDDoSRuleSet`** - DDoS 공격에 참여할 가능성이 있는 요청을 탐지, 레이블 지정 및 챌린지합니다. 또한 이벤트 중에 보호된 리소스에 대한 모든 요청에 레이블을 지정합니다. 이 규칙 그룹의 규칙 및 레이블에 대한 자세한 내용은 [AWS WAF 분산 서비스 거부(DDoS) 방지 규칙 그룹](aws-managed-rule-groups-anti-ddos.md) 섹션을 참조하세요. 이 규칙 그룹을 사용하려면 관리형 규칙 그룹 참조 문을 사용하여 보호 팩(웹 ACL)에 이 규칙 그룹을 포함시킵니다. 자세한 내용은 [보호 팩(웹 ACL)에 DDoS 방지 관리형 규칙 그룹 추가](waf-anti-ddos-rg-using.md) 단원을 참조하세요.
+ **웹 ACL 트래픽 개요 대시보드** - 콘솔에서 DDoS 활동 및 DDoS 방지 응답에 대한 모니터링을 제공합니다. 자세한 내용은 [보호 팩(웹 ACL)용 트래픽 개요 대시보드](web-acl-dashboards.md) 단원을 참조하십시오.
+ **로깅 및 지표** - 트래픽을 모니터링하고 DDoS 방지 보호 효과를 이해할 수 있습니다. 보호 팩(웹 ACL)에 대한 로그, Amazon Security Lake 데이터 수집 및 Amazon CloudWatch 지표를 구성합니다. 이러한 옵션에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md), [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 및 [Amazon Security Lake란 무엇입니까?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)를 참조하세요.
+ **레이블 및 레이블 일치 규칙** - DDoS 방지 관리형 규칙 그룹으로 식별되는 웹 요청 처리를 사용자 지정할 수 있습니다. `AWSManagedRulesAntiDDoSRuleSet`의 모든 규칙에 대해 개수 모드로 전환하고 추가된 레이블과 일치시킬 수 있습니다. 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 및 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.
+ **사용자 지정 요청 및 응답** - 허용된 요청에 사용자 지정 헤더를 추가하고 차단된 요청에 대해 사용자 지정 응답을 보낼 수 있습니다. 레이블 일치를 AWS WAF 사용자 지정 요청 및 응답 기능과 페어링합니다. 자세한 내용은 [의 사용자 지정 웹 요청 및 응답 AWS WAF](waf-custom-request-response.md) 단원을 참조하십시오.

# 보호 팩(웹 ACL)에 DDoS 방지 관리형 규칙 그룹 추가
<a name="waf-anti-ddos-rg-using"></a>

이 섹션에서는 `AWSManagedRulesAntiDDoSRuleSet` 규칙 그룹을 추가하고 구성하는 방법을 설명합니다.

DDoS 방지 관리형 규칙 그룹을 구성하려면 규칙 그룹의 DDoS 공격 관련 민감도와 공격에 참여 중 또는 참여 가능성이 있는 요청에 대해 수행할 작업을 포함하는 설정을 제공해야 합니다. 이 구성은 관리형 규칙 그룹의 일반 구성에 추가됩니다.

규칙 그룹 설명과 규칙 및 레이블 목록은 [AWS WAF 분산 서비스 거부(DDoS) 방지 규칙 그룹](aws-managed-rule-groups-anti-ddos.md) 섹션을 참조하세요.

이 지침은 AWS WAF 보호 팩(웹 ACL), 규칙 및 규칙 그룹을 만들고 관리하는 방법을 일반적으로 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다. 보호 팩(웹 ACL)에 관리형 규칙 그룹을 추가하는 방법에 대한 기본 정보는 [콘솔을 통해 보호 팩(웹 ACL)에 관리형 규칙 그룹 추가](waf-using-managed-rule-group.md) 섹션을 참조하세요.

**모범 사례 따르기**  
[의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md)의 모범 사례에 따라 DDoS 방지 규칙 그룹을 사용합니다.

**보호 팩(웹 ACL)에서 `AWSManagedRulesAntiDDoSRuleSet` 규칙 그룹 사용**

1.  AWS 관리형 규칙 그룹을 보호 팩(웹 ACL)`AWSManagedRulesAntiDDoSRuleSet`에 추가하고 규칙 그룹 설정을 **편집**한 후 저장합니다.
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

1. **규칙 그룹 구성** 창에서 `AWSManagedRulesAntiDDoSRuleSet` 규칙 그룹에 대한 사용자 지정 구성을 제공합니다.

   1. **블록 민감도 수준**에서 규칙 그룹의 DDoS 의심 레이블 지정과 일치할 때 `DDoSRequests` 규칙이 얼마나 민감한지 지정합니다. 민감도가 높을수록 규칙이 일치하는 레이블 지정 수준이 낮아집니다.
      + 민감도가 낮으면 덜 민감하기 때문에 공격에서 의심 레이블 `awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request`가 높은 가장 명백한 참가자에게만 규칙이 일치합니다.
      + 중간 민감도는 규칙이 중간 및 높음 의심 레이블과 일치합니다.
      + 민감도가 높으면 규칙이 낮음, 중간, 높음 등 모든 의심 레이블에서 일치합니다.

      이 규칙은 DDoS 공격에 참여한 것으로 의심되는 웹 요청을 가장 심각하게 처리합니다.

   1. **챌린지 활성화**에서 기본적으로 일치하는 요청에 Challenge 작업을 적용하는 규칙 `ChallengeDDoSRequests` 및 `ChallengeAllDuringEvent`를 활성화할지 여부를 선택합니다.

      이러한 규칙은 합법적인 사용자가 DDoS 공격의 참가자를 차단하면서 요청을 진행할 수 있도록 허용하기 위한 요청 처리를 제공합니다. 작업 설정을 Allow 또는 Count로 재정의하거나 사용을 완전히 비활성화할 수 있습니다.

      이러한 규칙을 활성화하는 경우 원하는 추가 구성을 제공합니다.
      + **챌린지 민감도 수준**에서 `ChallengeDDoSRequests` 규칙의 민감도를 지정합니다.

        민감도가 높을수록 규칙이 일치하는 레이블 지정 수준이 낮아집니다.
        + 민감도가 낮으면 덜 민감하기 때문에 공격에서 의심 레이블 `awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request`가 높은 가장 명백한 참가자에게만 규칙이 일치합니다.
        + 중간 민감도는 규칙이 중간 및 높음 의심 레이블과 일치합니다.
        + 민감도가 높으면 규칙이 낮음, 중간, 높음 등 모든 의심 레이블에서 일치합니다.
      + **Exempt URI 정규식**의 경우 자동 브라우저 챌린지를 처리할 수 없는 웹 요청URI와 일치하는 정규식을 제공합니다. Challenge 작업은 자동 브라우저 챌린지를 처리할 수 없는 한, 챌린지 토큰이 누락된 URI의 요청을 효과적으로 차단합니다.

        Challenge 작업은 HTML 콘텐츠가 필요한 클라이언트만 올바르게 처리할 수 있습니다. 작업 작동 방식에 대한 자세한 내용은 [CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md) 섹션을 참조하세요.

        기본 정규식을 검토하고 필요에 따라 업데이트합니다. 규칙은 지정된 정규식을 사용하여 Challenge 작업을 처리할 수 없고 규칙이 챌린지를 다시 보내지 못하게 하는 요청 URI를 식별합니다. 이러한 방식으로 제외하는 요청은 `DDoSRequests` 규칙이 있는 규칙 그룹에서만 차단할 수 있습니다.

        콘솔에서 제공되는 기본 표현식은 대부분의 사용 사례를 커버하지만 애플리케이션에 맞게 검토하고 조정해야 합니다.

        AWS WAF 는 일부 예외를 `libpcre` 제외하고 PCRE 라이브러리에서 사용하는 패턴 구문을 지원합니다. 이 라이브러리는 [PCRE - Perl 호환 정규식](http://www.pcre.org/)에 문서화되어 있습니다. AWS WAF 지원에 대한 자세한 내용은 섹션을 참조하세요[에서 지원되는 정규식 구문 AWS WAF](waf-regex-pattern-support.md).

1. 규칙 그룹에 사용할 추가 구성을 모두 제공하고 규칙을 저장합니다.
**참고**  
AWS 는이 관리형 규칙 그룹에서 범위 축소 문을 사용하지 않도록 권장합니다. 범위 축소 문은 규칙 그룹이 준수하는 요청을 제한하므로 트래픽 기준이 부정확하고 DDoS 이벤트 감지가 감소할 수 있습니다. 범위 축소 문 옵션은 모든 관리형 규칙 그룹 문에 사용할 수 있지만 이 문에는 사용하면 안 됩니다. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요.

1. **규칙 우선순위 설정** 페이지에서 보유한 Allow 작업 규칙 및 다른 규칙보다 먼저 실행되도록 새 DDoS 방지 관리형 규칙 그룹의 규칙을 위로 이동합니다. 이를 통해 규칙 그룹은 DDoS 방지 보호를 위해 대부분의 트래픽을 추적할 수 있습니다.

1. 변경 사항을 보호 팩(웹 ACL)에 저장합니다.

프로덕션 트래픽용 DDoS 방지 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다. 지침은 다음 섹션을 참조하세요.

# DDoS 방지 테스트 및 배포
<a name="waf-anti-ddos-deploying"></a>

기능을 배포하기 전에 AWS WAF 분산 서비스 거부(DDoS) 방지를 구성하고 테스트해야 합니다. 이 섹션에서는 구성 및 테스트에 대한 일반적인 지침을 제공하지만, 따르기로 선택한 구체적인 단계는 요구 사항, 리소스 및 수신하는 웹 요청에 따라 달라집니다.

이 정보는 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)에 제공된 테스트 및 조정에 대한 일반 정보 외의 정보입니다.

**참고**  
AWS 관리형 규칙은 일반적인 웹 위협으로부터 사용자를 보호하도록 설계되었습니다. 설명서에 따라 사용하는 경우 AWS 관리형 규칙 규칙 그룹은 애플리케이션에 또 다른 보안 계층을 추가합니다. 그러나 AWS 관리형 규칙 규칙 그룹은 보안 책임을 대체하기 위한 것이 아니며, 이는 선택한 AWS 리소스에 따라 결정됩니다. 의 리소스가 AWS 제대로 보호되는지 확인하려면 [공동 책임 모델을](https://aws.amazon.com/compliance/shared-responsibility-model/) 참조하세요.

**프로덕션 트래픽 위험**  
트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 DDoS 방지 구현을 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다.

이 지침은 AWS WAF 보호 팩(웹 ACL), 규칙 및 규칙 그룹을 만들고 관리하는 방법을 일반적으로 알고 있는 사용자를 대상으로 합니다. 이러한 주제는 이 안내서의 이전 섹션에 설명되어 있습니다.

**AWS WAF 분산 서비스 거부(DDoS) 방지 구현을 구성하고 테스트하려면**

이러한 단계를 먼저 테스트 환경에서 수행한 다음, 프로덕션 환경에서 수행합니다.

1. 

**개수 모드에서 AWS WAF 분산 서비스 거부(DDoS) 방지 관리형 규칙 그룹 추가**
**참고**  
이 관리형 규칙 그룹은 사용 시 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

   새 보호 팩 또는 기존 보호 팩(웹 ACL)`AWSManagedRulesAntiDDoSRuleSet`에 AWS 관리형 규칙 그룹을 추가하고 현재 보호 팩(웹 ACL) 동작을 변경하지 않도록 구성합니다. 이 규칙 그룹의 규칙 및 레이블에 대한 자세한 내용은 [AWS WAF 분산 서비스 거부(DDoS) 방지 규칙 그룹](aws-managed-rule-groups-anti-ddos.md) 섹션을 참조하세요.
   + 관리형 규칙 그룹을 추가할 때는 해당 규칙 그룹을 편집하고 다음을 수행합니다.
     + **규칙 그룹 구성** 창에서 웹 트래픽에 대한 DDoS 방지 활동을 수행하는 데 필요한 세부 정보를 제공합니다. 자세한 내용은 [보호 팩(웹 ACL)에 DDoS 방지 관리형 규칙 그룹 추가](waf-anti-ddos-rg-using.md) 단원을 참조하십시오.
     + **규칙** 창에서 모든 규칙 **모든 규칙 작업 재정의** 드롭다운을 열고 **Count**를 선택합니다. 이 구성을 사용하면 AWS WAF 는 요청에 레이블을 여전히 추가하면서 규칙 그룹의 모든 규칙과 비교하여 요청을 평가한 후 일치하는 항목 수만 계산합니다. 자세한 내용은 [규칙 그룹에 대한 규칙 작업 재정의](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override) 단원을 참조하십시오.

       이 재정의를 사용하면 DDoS 방지 관리형 규칙의 잠재적 영향을 모니터링하여 자동 브라우저 챌린지를 처리할 수 없는 URI의 정규식 확장 등 수정을 수행할지 여부를 결정할 수 있습니다.
   + 트래픽을 허용하는 규칙이 있는 즉시 가능한 한 빨리 평가되도록 규칙 그룹을 배치합니다. 규칙은 오름차순 숫자 우선순위로 평가됩니다. 콘솔은 규칙 목록 맨 위에서 시작하여 순서를 설정합니다. 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 단원을 참조하십시오.

1. 

**보호 팩(웹 ACL)의 로깅 및 지표 활성화**

   필요에 따라 보호 팩(웹 ACL)에 대한 로깅, Amazon Security Lake 데이터 수집, 요청 샘플링 및 Amazon CloudWatch 지표를 구성합니다. 이러한 가시성 도구를 사용하여 DDoS 방지 관리형 규칙 그룹과 트래픽 간의 상호 작용을 모니터링할 수 있습니다.
   + 로깅 구성 및 사용에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.
   + Amazon Security Lake에 대한 자세한 내용은 [Amazon Security Lake 사용 설명서의 Amazon Security Lake란 무엇인가요?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) 및 [AWS 서비스에서 데이터 수집](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)을 참조하세요. ** 
   + Amazon CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.
   + 웹 요청 샘플링에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요.

1. 

**보호 팩(웹 ACL)을 리소스와 연결**

   보호 팩(웹 ACL)이 아직 테스트 리소스와 연결되지 않은 경우 해당 리소스를 연결합니다. 자세한 내용은 [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md) 단원을 참조하세요.

1. 

**트래픽과 DDoS 방지 규칙 일치 모니터링**

   트래픽이 정상적으로 흐르고 있고 DDoS 방지 관리형 규칙의 그룹 규칙이 일치하는 웹 요청에 레이블을 추가하고 있는지 확인합니다. 로그에서 레이블을 볼 수 있고 Amazon CloudWatch 지표에서 DDoS 방지 및 레이블 지표를 볼 수 있습니다. 로그에서 규칙 그룹에서 개수하도록 재정의한 규칙은 계수로 설정된 `action`과 재정의한 구성된 규칙 작업을 나타내는 `overriddenAction`을 포함하는 `ruleGroupList`로 표시됩니다.

1. 

**DDoS 방지 웹 요청 처리 사용자 지정**

   필요에 따라 요청을 명시적으로 허용하거나 차단하는 자체 규칙을 추가하여 DDoS 방지 규칙이 요청을 처리하는 방식을 변경합니다.

   예를 들어 DDoS 방지 레이블을 사용하여 요청을 허용 또는 차단하거나 요청 처리를 사용자 지정할 수 있습니다. DDoS 방지 관리형 규칙 그룹 뒤에 레이블 일치 규칙을 추가하여 적용할 처리에 대해 레이블이 지정된 요청을 필터링할 수 있습니다. 테스트 후에는 관련 DDoS 방지 규칙을 개수 모드로 유지하고 요청 처리 결정을 사용자 지정 규칙에서 유지합니다.

1. 

**테스트 규칙 제거 및 DDoS 방지 설정 구성**

   테스트 결과를 검토하여 모니터링 전용으로 개수 모드로 유지할 DDoS 방지 규칙을 결정합니다. 활성 보호로 실행하려는 규칙의 경우 보호 팩(웹 ACL) 규칙 그룹 구성에서 개수 모드를 비활성화하여 구성된 작업을 수행할 수 있도록 허용합니다. 이러한 설정을 완료했으면 프로덕션용으로 생성한 사용자 지정 규칙을 유지하면서 임시 테스트 레이블 일치 규칙을 모두 제거합니다. 추가 DDoS 방지 구성 고려 사항은 [의 지능형 위협 완화 모범 사례 AWS WAF](waf-managed-protections-best-practices.md) 섹션을 참조하세요.

1. 

**모니터링 및 조정**

   웹 요청이 원하는 대로 처리되도록 하려면 사용하려는 DDoS 방지 기능을 활성화한 후 트래픽을 면밀히 모니터링합니다. 규칙 그룹의 규칙 수 재정의 및 자체 규칙을 사용하여 필요에 따라 동작을 조정합니다.

# DDoS 방지 모범 사례
<a name="waf-anti-ddos-best-practices"></a>
+ **정상적인 트래픽 기간 동안 보호 활성화** - 이를 통해 보호 동작은 공격에 대응하기 전에 기준 트래픽 패턴을 설정할 수 있습니다. 공격이 발생하지 않을 때 보호를 추가하고 기준 설정 시간을 허용합니다.
+ **지표를 정기적으로 모니터링** - CloudWatch 지표를 검토하여 트래픽 패턴과 보호 효과를 이해합니다.
+ **중요한 애플리케이션에 대한 사전 예방 모드 고려** - 대부분의 사용 사례에서는 사후 대응 모드를 사용하는 것이 좋지만 알려진 위협으로부터 지속적으로 보호해야 하는 애플리케이션에는 사전 예방 모드를 사용하는 것이 좋습니다.
+ **스테이징 환경에서 테스트** - 프로덕션 환경에서 보호를 활성화하기 전에 스테이징 환경에서 설정을 테스트하고 조정하여 합법적인 트래픽에 미치는 영향을 파악합니다.

# 의 클라이언트 애플리케이션 통합 AWS WAF
<a name="waf-application-integration"></a>

이 섹션에서는 지능형 위협 통합 APIs 및 JavaScript CAPTCHA 통합 API를 AWS WAF 기능과 함께 사용하는 방법을 설명합니다.

 AWS WAF 클라이언트 애플리케이션 통합 APIs 사용하여 클라이언트 측 보호와 AWS 서버 측 보호 팩(웹 ACL) 보호를 결합하여 보호된 리소스에 웹 요청을 보내는 클라이언트 애플리케이션이 의도한 클라이언트이고 최종 사용자가 인간인지 확인할 수 있습니다.

클라이언트 통합을 사용하여 자동 브라우저 챌린지와 CAPTCHA 퍼즐을 관리하고, 성공적인 브라우저 및 최종 사용자 응답에 대한 증거가 있는 토큰을 확보하고, 보호된 엔드포인트에 대한 요청에 이러한 토큰을 포함할 수 있습니다. AWS WAF 토큰에 대한 일반적인 정보는 단원을 참조하십시오[AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md).

리소스에 액세스하기 위해 유효한 토큰을 필요로 하는 보호 팩(웹 ACL) 보호와 클라이언트 통합을 결합합니다. 다음 섹션인 [지능형 위협 통합 및 AWS 관리형 규칙](waf-application-integration-with-AMRs.md)에 나열된 것과 같이 챌린지 토큰을 확인하고 모니터링하는 규칙 그룹을 사용할 수 있으며 [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md)에 설명된 대로 CAPTCHA 및 Challenge 규칙 작업을 사용하여 검사할 수 있습니다.

AWS WAF 는 JavaScript 애플리케이션을 위한 두 가지 수준의 통합과 모바일 애플리케이션을 위한 통합을 제공합니다.
+ **지능형 위협 통합** - 클라이언트 애플리케이션을 확인하고 AWS 토큰 획득 및 관리를 제공합니다. 이는 규칙 작업에서 제공하는 기능과 유사합니다 AWS WAF Challenge. 이 기능은 클라이언트 애플리케이션을 `AWSManagedRulesACFPRuleSet` 관리형 규칙 그룹, `AWSManagedRulesATPRuleSet` 관리형 규칙 그룹 및 `AWSManagedRulesBotControlRuleSet` 관리형 규칙 그룹의 대상 보호 수준과 완벽하게 통합합니다.

  지능형 위협 통합 APIs는 AWS WAF 자동 브라우저 챌린지를 사용하여 클라이언트가 유효한 토큰을 획득한 후에만 보호된 리소스에 대한 로그인 시도 및 기타 호출이 허용되도록 합니다. API는 클라이언트 애플리케이션 세션의 토큰 인증을 관리하고 클라이언트에 대한 정보를 수집하여 클라이언트가 봇에 의해 운영되는지 아니면 사람에 의해 운영되는지 여부를 결정합니다.
**참고**  
이 기능은 JavaScript와 Android 및 iOS 모바일 애플리케이션에 사용할 수 있습니다.
+ **CAPTCHA 통합** - 애플리케이션에서 관리하는 사용자 지정 CAPTCHA 퍼즐로 최종 사용자를 확인합니다. 이는 규칙 작업에서 AWS WAF CAPTCHA 제공하는 기능과 유사하지만 퍼즐 배치 및 동작에 대한 제어 기능이 추가되었습니다.

  이 통합은 JavaScript 지능형 위협 통합을 활용하여 자동 챌린지를 실행하고 고객 페이지에 AWS WAF 토큰을 제공합니다.
**참고**  
이 기능은 JavaScript 애플리케이션에 사용할 수 있습니다.

**Topics**
+ [지능형 위협 통합 및 AWS 관리형 규칙](waf-application-integration-with-AMRs.md)
+ [AWS WAF 클라이언트 애플리케이션 통합 APIs에 액세스](waf-application-integration-location-in-console.md)
+ [AWS WAF JavaScript 통합](waf-javascript-api.md)
+ [AWS WAF 모바일 애플리케이션 통합](waf-mobile-sdk.md)

# 지능형 위협 통합 및 AWS 관리형 규칙
<a name="waf-application-integration-with-AMRs"></a>

이 섹션에서는 지능형 위협 통합 APIs AWS 관리형 규칙 규칙 그룹과 작동하는 방법을 설명합니다.

지능형 위협 통합 API는 지능형 위협 규칙 그룹을 사용하여 이러한 고급 관리형 규칙 그룹의 모든 기능을 활성화하는 보호 팩(웹 ACL)과 함께 작동합니다.
+ AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 관리형 규칙 그룹 `AWSManagedRulesACFPRuleSet`.

  계정 생성 사기는 공격자가 가입 보너스를 받거나 누군가를 사칭하는 등의 목적으로 애플리케이션에 유효하지 않은 계정을 생성하는 온라인 불법 활동입니다. ACFP 관리형 규칙 그룹은 악의적인 계정 생성 시도의 일부일 수 있는 요청을 차단하고, 여기에 레이블을 지정하고, 이를 관리하기 위한 규칙을 제공합니다. API를 통해 ACFP 규칙이 유효한 클라이언트 트래픽을 악성 트래픽과 구분하는 데 사용하는 미세 조정된 클라이언트 브라우저 확인 및 사용자 상호 작용 정보를 사용할 수 있습니다.

  자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 및 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)](waf-acfp.md) 섹션을 참조하세요.
+ AWS WAF 사기 제어 계정 탈취 방지(ATP) 관리형 규칙 그룹 `AWSManagedRulesATPRuleSet`.

  계정 탈취는 공격자가 개인 계정에 무단으로 액세스하는 온라인 불법 활동입니다. ATP 관리형 규칙 그룹은 악의적인 계정 탈취 시도의 일부일 수 있는 요청을 차단, 레이블 지정 및 관리하는 규칙을 제공합니다. API에서는 ATP 규칙이 유효한 클라이언트 트래픽을 악성 트래픽과 구분하는 데 사용하는 미세 조정된 클라이언트 확인 및 동작 집계를 사용할 수 있습니다.

  자세한 내용은 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 및 [AWS WAF 사기 제어 계정 탈취 방지(ATP)](waf-atp.md) 섹션을 참조하세요.
+  AWS WAF Bot Control 관리형 규칙 그룹의 대상 보호 수준입니다`AWSManagedRulesBotControlRuleSet`.

  봇은 대부분의 검색 엔진 및 크롤러와 같이 자체 식별이 가능하고 유용한 봇부터 웹 사이트를 공격하고 자체 식별이 불가능한 악성 봇에 이르기까지 다양합니다. 봇 컨트롤 관리형 규칙 그룹은 웹 트래픽의 봇 활동을 모니터링하고 레이블을 지정하며 관리하는 규칙을 제공합니다. 이 규칙 그룹의 대상 보호 수준을 사용하면 대상 규칙이 API가 제공하는 클라이언트 세션 정보를 사용하여 악성 봇을 더 잘 탐지합니다.

  자세한 내용은 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 및 [AWS WAF 봇 제어](waf-bot-control.md) 섹션을 참조하세요.

이러한 관리형 규칙 그룹 중 하나를 보호 팩(웹 ACL)에 추가하려면 [ACFP 관리형 규칙 그룹을 웹 ACL에 추가](waf-acfp-rg-using.md), [ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가](waf-atp-rg-using.md) 및 [웹 ACL에 AWS WAF Bot Control 관리형 규칙 그룹 추가](waf-bot-control-rg-using.md) 절차를 참조하세요.

**참고**  
관리형 규칙 그룹은 현재 토큰이 누락된 요청을 차단하지 않습니다. 토큰이 누락된 요청을 차단하려면 애플리케이션 통합 API를 구현한 후 [유효한 AWS WAF 토큰이 없는 요청 차단](waf-tokens-block-missing-tokens.md)의 지침을 따르십시오.

# AWS WAF 클라이언트 애플리케이션 통합 APIs에 액세스
<a name="waf-application-integration-location-in-console"></a>

이 섹션에서는 AWS WAF 콘솔에서 애플리케이션 통합 APIs를 찾을 수 있는 위치를 설명합니다.

JavaScript 통합 API는 일반적으로 사용할 수 있으며 JavaScript를 실행하는 브라우저 및 기타 디바이스에 사용할 수 있습니다.

AWS WAF 는 Android 및 iOS 모바일 앱용 사용자 지정 지능형 위협 통합 SDKs 제공합니다.
+ Android 모바일 및 TV 앱의 경우 SDK는 Android API 버전 23(Android 버전 6) 이상에서 작동합니다. Android 버전에 대한 자세한 내용은 [SDK 플랫폼 릴리스 노트](https://developer.android.com/tools/releases/platforms)를 참조하세요.
+ iOS 모바일 앱의 경우 SDK는 iOS 버전 13 이상에서 작동합니다. iOS 버전에 대한 자세한 내용은 [iOS 및 iPadOS 릴리스 노트](https://developer.apple.com/documentation/ios-ipados-release-notes)를 참조하세요.
+ Apple TV 앱의 경우 SDK는 tvOS 버전 14 이상에서 작동합니다. tvOS 버전에 대한 자세한 내용은 [tvOS 릴리스 정보](https://developer.apple.com/documentation/tvos-release-notes)를 참조하세요.

**콘솔을 통해 통합 API에 액세스하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **애플리케이션 통합**을 선택하고 원하는 탭을 선택합니다.
   + JavaScript 및 모바일 애플리케이션에 **지능형 위협 통합**을 사용할 수 있습니다.

     해당 탭에는 다음이 포함되어 있습니다.
     + 지능형 위협 애플리케이션 통합에 사용할 수 있는 보호 팩(웹 ACL)의 목록입니다. 이 목록에는 `AWSManagedRulesACFPRuleSet` 관리형 규칙 그룹, `AWSManagedRulesATPRuleSet` 관리형 규칙 그룹 또는 `AWSManagedRulesBotControlRuleSet` 관리형 규칙 그룹의 대상 보호 수준을 사용하는 각 보호 팩(웹 ACL)이 포함됩니다. 지능형 위협 API를 구현할 때는 통합하려는 보호 팩(웹 ACL)의 통합 URL을 사용합니다.
     + 액세스 권한이 있는 API. JavaScript API는 항상 사용할 수 있습니다. 모바일 SDK에 액세스하려면 [AWS에 문의](https://aws.amazon.com/contact-us)를 통해 지원 팀을 문의하십시오.
   + **CAPTCHA 통합**은 JavaScript 애플리케이션에 사용할 수 있습니다.

     해당 탭에는 다음이 포함되어 있습니다.
     + 통합에 사용할 통합 URL.
     + 클라이언트 애플리케이션 도메인용으로 생성한 API 키. CAPTCHA API를 사용하려면 클라이언트가 도메인에서 AWS WAF CAPTCHA에 액세스할 수 있는 권한을 부여하는 암호화된 API 키가 필요합니다. 통합하는 각 클라이언트마다 클라이언트 도메인이 포함된 API 키를 사용합니다. 이러한 요구 사항 및 이러한 키 관리에 대한 자세한 내용은 [JS CAPTCHA API의 API 키 관리](waf-js-captcha-api-key.md) 섹션을 참조하세요.

# AWS WAF JavaScript 통합
<a name="waf-javascript-api"></a>

이 섹션에서는 AWS WAF JavaScript 통합을 사용하는 방법을 설명합니다.

JavaScript 통합 APIs를 사용하여 브라우저 및 JavaScript를 실행하는 기타 디바이스에서 AWS WAF 애플리케이션 통합을 구현할 수 있습니다.

CAPTCHA 퍼즐 및 자동 문제는 브라우저가 HTTPS 엔드포인트에 액세스하는 경우에만 실행할 수 있습니다. 토큰을 획득하려면 브라우저 클라이언트가 안전한 컨텍스트에서 실행되어야 합니다.
+ 지능형 위협 API를 사용하면 클라이언트 측 자동 브라우저 챌린지를 통해 토큰 인증을 관리하고 보호된 리소스로 보내는 요청에 토큰을 포함할 수 있습니다.
+ CAPTCHA 통합 API가 지능형 위협 API에 추가되므로 클라이언트 애플리케이션에서 CAPTCHA 퍼즐의 배치와 특성을 사용자 지정할 수 있습니다. 이 API는 지능형 위협 API를 활용하여 최종 사용자가 CAPTCHA 퍼즐을 성공적으로 완료한 후 해당 페이지에서 사용할 AWS WAF 토큰을 획득합니다.

이러한 통합을 사용하면 클라이언트의 원격 프로시저 호출에 유효한 토큰이 포함되도록 할 수 있습니다. 애플리케이션 페이지에 이러한 통합 API가 있으면 유효한 토큰을 포함하지 않은 요청을 차단하는 등 완화 규칙을 보호 팩(웹 ACL)에 구현할 수 있습니다. 규칙의 Challenge 또는 CAPTCHA 작업을 사용하여 클라이언트 애플리케이션이 획득한 토큰을 강제로 사용하도록 하는 규칙을 구현할 수도 있습니다.

**지능형 위협 API 구현 예제**  
다음 목록은 웹 애플리케이션 페이지의 지능형 위협 API의 일반적인 구현의 기본 구성 요소를 보여줍니다.

```
<head>
<script type="text/javascript" src="protection pack (web ACL) integration URL/challenge.js" defer></script>
</head>
<script>
const login_response = await AwsWafIntegration.fetch(login_url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: login_body
  });
</script>
```

**CAPTCHA JavaScript API 구현 예제**  
CAPTCHA 통합 API를 사용하면 최종 사용자의 CAPTCHA 퍼즐 환경을 사용자 지정할 수 있습니다. CAPTCHA 통합은 브라우저 확인 및 토큰 관리를 위해 JavaScript 지능형 위협 통합을 활용하고 CAPTCHA 퍼즐을 구성 및 렌더링하는 기능을 추가합니다.

다음 목록은 웹 애플리케이션 페이지에서 CAPTCHA JavaScript API를 일반적으로 구현하는 기본 구성 요소를 보여줍니다.

```
<head>
    <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script>
</head>

<script type="text/javascript">
    function showMyCaptcha() {
        var container = document.querySelector("#my-captcha-container");
        
        AwsWafCaptcha.renderCaptcha(container, {
            apiKey: "...API key goes here...",
            onSuccess: captchaExampleSuccessFunction,
            onError: captchaExampleErrorFunction,
            ...other configuration parameters as needed...
        });
    }
    
    function captchaExampleSuccessFunction(wafToken) {
        // Use WAF token to access protected resources
        AwsWafIntegration.fetch("...WAF-protected URL...", {
            method: "POST",
            ...
        });
    }
    
    function captchaExampleErrorFunction(error) {
        /* Do something with the error */
    }
</script>

<div id="my-captcha-container">
    <!-- The contents of this container will be replaced by the captcha widget -->
</div>
```

**Topics**
+ [토큰에 사용할 도메인 제공](waf-js-challenge-api-set-token-domain.md)
+ [콘텐츠 보안 정책과 함께 JavaScript API 사용](waf-javascript-api-csp.md)
+ [지능형 위협 JavaScript API 사용](waf-js-challenge-api.md)
+ [CAPTCHA JavaScript API 사용](waf-js-captcha-api.md)

# 토큰에 사용할 도메인 제공
<a name="waf-js-challenge-api-set-token-domain"></a>

이 섹션에서는 토큰에 추가 도메인을 제공하는 방법을 설명합니다.

기본적으로는 토큰을 AWS WAF 생성할 때 보호 팩(웹 ACL)과 연결된 리소스의 호스트 도메인을 사용합니다. AWS WAF 가 JavaScript API용으로 생성하는 토큰에 추가 도메인을 제공할 수 있습니다. 이렇게 하려면 하나 이상의 토큰 도메인으로 글로벌 변수`window.awsWafCookieDomainList`를 구성합니다.

가 토큰을 AWS WAF 생성하면의 도메인`window.awsWafCookieDomainList`과 보호 팩과 연결된 리소스의 호스트 도메인(웹 ACL)의 조합 중에서 가장 적절하고 가장 짧은 도메인을 사용합니다.

예제 설정: 

```
window.awsWafCookieDomainList = ['.aws.amazon.com']
```

```
window.awsWafCookieDomainList = ['.aws.amazon.com', 'abc.aws.amazon.com']
```

이 목록에는 공개 접미사를 사용할 수 없습니다. 예를 들면 `gov.au` 또는 `co.uk`를 목록의 토큰 도메인으로 사용할 수 없습니다.

이 목록에서 지정하는 도메인은 다른 도메인 및 도메인 구성과 호환되어야 합니다.
+ 도메인은 보호된 호스트 도메인과 보호 팩에 대해 구성된 토큰 도메인 목록(웹 ACL)을 기반으로 AWS WAF 수락할 도메인이어야 합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성](waf-tokens-domains.md#waf-tokens-domain-lists) 단원을 참조하십시오.
+ JavaScript CAPTCHA API를 사용하는 경우 CAPTCHA API 키에 있는 하나 이상의 도메인이 `window.awsWafCookieDomainList`의 토큰 도메인 중 하나와 정확히 일치하거나 이러한 토큰 도메인 중 하나의 apex 도메인이어야 합니다.

  예를 들어 토큰 도메인 `mySubdomain.myApex.com`의 경우 API 키 `mySubdomain.myApex.com`은 정확히 일치하고 API 키 `myApex.com`은 apex 도메인입니다. 두 키 중 하나가 토큰 도메인과 일치합니다.

  API 키에 대한 자세한 내용은 [JS CAPTCHA API의 API 키 관리](waf-js-captcha-api-key.md) 섹션을 참조하세요.

`AWSManagedRulesACFPRuleSet` 관리형 규칙 그룹을 사용하는 경우 규칙 그룹 구성에 제공한 계정 생성 경로의 도메인과 일치하는 도메인을 구성할 수 있습니다. 이 구성에 대한 자세한 정보는 [ACFP 관리형 규칙 그룹을 웹 ACL에 추가](waf-acfp-rg-using.md) 섹션을 참조하세요.

`AWSManagedRulesATPRuleSet` 관리형 규칙 그룹을 사용하는 경우 규칙 그룹 구성에 제공한 로그인 경로의 도메인과 일치하는 도메인을 구성할 수 있습니다. 이 구성에 대한 자세한 정보는 [ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가](waf-atp-rg-using.md) 섹션을 참조하세요.

# 콘텐츠 보안 정책과 함께 JavaScript API 사용
<a name="waf-javascript-api-csp"></a>

이 섹션에서는 AWS WAF apex 도메인을 허용 목록에 추가하기 위한 구성 예제를 제공합니다.

리소스에 콘텐츠 보안 정책(CSP)을 적용하는 경우 JavaScript 구현이 작동하려면 AWS WAF apex 도메인를 허용 목록에 추가해야 합니다`awswaf.com`. JavaScript SDK는 다양한 AWS WAF 엔드포인트를 호출하므로 이 도메인을 허용하면 SDK가 작동하는 데 필요한 권한이 제공됩니다.

다음은 AWS WAF apex 도메인을 허용 목록에 추가하기 위한 구성의 예입니다.

```
connect-src 'self' https://*.awswaf.com;
script-src 'self' https://*.awswaf.com;
script-src-elem 'self' https://*.awswaf.com;
```

CSP를 사용하는 리소스와 함께 JavaScript SDKs를 사용하려고 하는데 AWS WAF 도메인을 허용 목록에 추가하지 않은 경우 다음과 같은 오류가 발생합니다.

```
Refused to load the script ...awswaf.com/<> because it violates the following Content Security Policy directive: “script-src ‘self’
```

# 지능형 위협 JavaScript API 사용
<a name="waf-js-challenge-api"></a>

이 섹션에서는 클라이언트 애플리케이션에서 지능형 위협 JavaScript API를 사용하는 방법에 대한 지침을 제공합니다.

지능형 위협 APIs는 사용자의 브라우저에 대해 자동 챌린지를 실행하고 성공적인 챌린지 및 CAPTCHA 응답의 증거를 제공하는 AWS WAF 토큰을 처리하기 위한 작업을 제공합니다.

먼저 테스트 환경에서 JavaScript 통합을 구현한 다음 프로덕션 환경에서 구현합니다. 추가 코딩 지침은 다음 섹션을 참조하세요 

 

**지능형 위협 API를 사용하려면**

1. **API 설치** 

   CAPTCHA API를 사용할 경우 이 단계를 건너뛸 수 있습니다. CAPTCHA API를 설치하면 스크립트가 지능형 위협 API를 자동으로 설치합니다.

   1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

   1. 탐색 창에서 **애플리케이션 통합**을 선택합니다. **애플리케이션 통합** 페이지에서 탭으로 구분된 옵션을 볼 수 있습니다.

   1. **지능형 위협 통합**을 선택합니다.

   1. 탭에서 통합할 보호 팩(웹 ACL)을 선택합니다. 보호 팩(웹 ACL) 목록에는 `AWSManagedRulesACFPRuleSet` 관리형 규칙 그룹, `AWSManagedRulesATPRuleSet` 관리형 규칙 그룹 또는 `AWSManagedRulesBotControlRuleSet` 관리형 규칙 그룹의 대상 보호 수준을 사용하는 보호 팩(웹 ACL)만 포함됩니다.

   1. **JavaScript SDK** 창을 열고 통합에 사용할 스크립트 태그를 복사합니다.

   1. 애플리케이션 페이지 코드의 `<head>` 섹션에 보호 팩(웹 ACL)용으로 복사한 스크립트 태그를 삽입합니다. 이 포함으로 인해 클라이언트 애플리케이션은 페이지 로드 시 백그라운드에서 토큰을 자동으로 검색합니다.

      ```
      <head>
          <script type="text/javascript" src="protection pack (web ACL) integration URL/challenge.js” defer></script>
      <head>
      ```

      이 `<script>` 목록은 `defer` 속성으로 구성되지만 페이지에 다른 동작을 적용하려는 경우 설정을 `async`로 변경할 수 있습니다.

1. **(선택 사항) 클라이언트 토큰에 대한 도메인 구성 추가** - 기본적으로가 토큰을 AWS WAF 생성할 때 보호 팩(웹 ACL)과 연결된 리소스의 호스트 도메인을 사용합니다. JavaScript API에 추가 도메인을 제공하려면 [토큰에 사용할 도메인 제공](waf-js-challenge-api-set-token-domain.md)의 지침을 따르십시오.

1. **지능형 위협 통합 코딩** - 클라이언트가 보호되는 엔드포인트로 요청을 보내기 전에 토큰 검색이 완료되도록 코드를 작성합니다. 이미 `fetch` API를 사용하여 호출하고 있는 경우 AWS WAF 통합 `fetch` 래퍼를 대체할 수 있습니다. `fetch` API를 사용하지 않는 경우 대신 AWS WAF 통합 `getToken` 작업을 사용할 수 있습니다. 코딩 지침은 다음 섹션을 참조하세요.

1. **보호 팩(웹 ACL)에 토큰 확인 추가** - 클라이언트가 보내는 웹 요청에서 유효한 챌린지 토큰이 있는지 확인하는 하나 이상의 규칙을 보호 팩(웹 ACL)에 추가합니다. 봇 컨트롤 관리형 규칙 그룹의 대상 수준과 같이 챌린지 토큰을 확인하고 모니터링하는 규칙 그룹을 사용할 수 있으며, [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md)에 설명된 대로 Challenge 규칙 작업을 사용하여 확인할 수 있습니다.

   보호 팩(웹 ACL)에 추가된 규칙은 보호된 엔드포인트에 대한 요청에 클라이언트 통합에서 획득한 토큰이 포함되어 있는지 확인합니다. 유효하고 만료되지 않은 토큰이 포함된 요청은 Challenge 검사를 통과하므로 클라이언트에게 자동 챌린지를 다시 보내지 않습니다.

1. **(선택 사항) 토큰이 누락된 요청 차단** - ACFP 관리형 규칙 그룹, ATP 관리형 규칙 그룹 또는 봇 컨트롤 규칙 그룹의 대상 규칙과 함께 API를 사용하는 경우 이러한 규칙은 누락된 토큰이 있는 요청을 차단하지 않습니다. 토큰이 누락된 요청을 차단하려면 [유효한 AWS WAF 토큰이 없는 요청 차단](waf-tokens-block-missing-tokens.md)의 지침을 따르십시오.

**Topics**
+ [지능형 위협 API 사양](waf-js-challenge-api-specification.md)
+ [통합 `fetch` 래퍼 사용 방법](waf-js-challenge-api-fetch-wrapper.md)
+ [`getToken` 통합의 사용 방법](waf-js-challenge-api-get-token.md)

# 지능형 위협 API 사양
<a name="waf-js-challenge-api-specification"></a>

이 섹션에는 지능형 위협 완화 JavaScript API의 메서드 및 속성에 대한 사양이 나열되어 있습니다. 지능형 위협 및 CAPTCHA 통합에 이러한 API를 사용합니다.

**`AwsWafIntegration.fetch()`**  
 AWS WAF 통합 구현을 사용하여 HTTP `fetch` 요청을 서버로 보냅니다.

**`AwsWafIntegration.getToken()`**  
저장된 AWS WAF 토큰을 검색하여 이름이 `aws-waf-token`이고 값이 토큰 값으로 설정된 현재 페이지의 쿠키에 저장합니다.

**`AwsWafIntegration.hasToken()`**  
`aws-waf-token` 쿠키가 현재 만료되지 않은 토큰을 보유하고 있는지 여부를 나타내는 부울을 반환합니다.

CAPTCHA 통합도 사용하는 경우 [CAPTCHA JavaScript API 사양](waf-js-captcha-api-specification.md)에서 해당 사양을 참조하세요.

# 통합 `fetch` 래퍼 사용 방법
<a name="waf-js-challenge-api-fetch-wrapper"></a>

이 섹션에서는 통합 `fetch` 래퍼 사용에 대한 지침을 제공합니다.

`AwsWafIntegration` 네임스페이스에서 AWS WAF `fetch` `fetch` API에 대한 일반 `fetch` 호출을 변경하여 래퍼를 사용할 수 있습니다. AWS WAF 래퍼는 표준 JavaScript `fetch` API 호출과 동일한 모든 옵션을 지원하고 통합에 대한 토큰 처리를 추가합니다. 이 접근 방식은 일반적으로 애플리케이션을 통합하는 가장 간단한 방법입니다.

**래퍼를 구현하기 전**  
다음 예제 목록은 `AwsWafIntegration` `fetch` 래퍼를 구현하기 전의 표준 코드를 보여줍니다.

```
const login_response = await fetch(login_url, {
	    method: 'POST',
	    headers: {
	      'Content-Type': 'application/json'
	    },
	    body: login_body
	  });
```

**래퍼를 구현한 후**  
다음 목록은 `AwsWafIntegration` `fetch` 래퍼 구현과 동일한 코드를 보여줍니다.

```
const login_response = await AwsWafIntegration.fetch(login_url, {
	    method: 'POST',
	    headers: {
	      'Content-Type': 'application/json'
	    },
	    body: login_body
	  });
```

# `getToken` 통합의 사용 방법
<a name="waf-js-challenge-api-get-token"></a>

이 섹션에서는 `getToken` 작업을 사용하는 방법을 설명합니다.

AWS WAF 는 현재 토큰의 값과 `aws-waf-token` 함께 라는 쿠키를 포함하도록 보호된 엔드포인트에 대한 요청을 요구합니다.

`getToken` 작업은 저장된 AWS WAF 토큰을 검색하여 이름이 `aws-waf-token`인 현재 페이지의 쿠키에 저장하는 비동기식 API 직접 호출이며, 해당 값은 토큰 값으로 설정됩니다. 필요에 따라 페이지에서 이 토큰 쿠키를 사용할 수 있습니다.

`getToken`를 을 호출하면 다음과 같은 작업을 수행합니다.
+ 만료되지 않은 토큰을 이미 사용할 수 있는 경우 호출 시 해당 토큰이 즉시 반환됩니다.
+ 그렇지 않으면 호출 시 토큰 공급자로부터 새 토큰을 검색하고 토큰 획득 워크플로가 제한 시간 초과 전에 완료될 때까지 최대 2초간 기다립니다. 작업 제한 시간이 초과되면 오류가 발생하며, 호출 코드에서 이를 처리해야 합니다.

`getToken` 작업에는 `aws-waf-token` 쿠키가 현재 만료되지 않은 토큰을 보유하고 있는지 여부를 나타내는 `hasToken` 작업이 함께 제공됩니다.

`AwsWafIntegration.getToken()`은 유효한 토큰을 검색하여 쿠키로 저장합니다. 대부분의 클라이언트 호출은 이 쿠키를 자동으로 연결하지만 일부는 연결하지 않습니다. 예를 들어, 호스트 도메인 간에 이루어진 호출은 쿠키를 연결하지 않습니다. 다음 구현 세부 정보에서는 두 유형의 클라이언트 호출을 모두 사용하는 방법을 보여줍니다.

**`aws-waf-token` 쿠키를 연결하는 호출에 대한 기본 `getToken` 구현**  
다음 예제 목록은 로그인 요청으로 `getToken` 작업을 구현하기 위한 표준 코드를 보여줍니다.

```
const login_response = await AwsWafIntegration.getToken()
	    .catch(e => {
	        // Implement error handling logic for your use case
	    })
	    // The getToken call returns the token, and doesn't typically require special handling
	    .then(token => {
	        return loginToMyPage()
	    })
	
	async function loginToMyPage() {
	    // Your existing login code
	}
```

**`getToken`에서 토큰을 사용할 수 있게 된 후에만 양식을 제출하십시오.**  
다음 목록은 유효한 토큰을 사용할 수 있을 때까지 양식 제출을 가로채는 이벤트 리스너를 등록하는 방법을 보여줍니다.

```
<body>
	  <h1>Login</h1>
	  <p></p>
	  <form id="login-form" action="/web/login" method="POST" enctype="application/x-www-form-urlencoded">
	    <label for="input_username">USERNAME</label>
	    <input type="text" name="input_username" id="input_username"><br>
	    <label for="input_password">PASSWORD</label>
	    <input type="password" name="input_password" id="input_password"><br>
	    <button type="submit">Submit<button>
	  </form>
	
	<script>
	  const form = document.querySelector("#login-form");
	
	  // Register an event listener to intercept form submissions
	  form.addEventListener("submit", (e) => {
	      // Submit the form only after a token is available 
	      if (!AwsWafIntegration.hasToken()) {
	          e.preventDefault();
	          AwsWafIntegration.getToken().then(() => {
	              e.target.submit();
	          }, (reason) => { console.log("Error:"+reason) });
	        }
	    });
	</script>
	</body>
```

**클라이언트가 기본적으로 `aws-waf-token` 쿠키를 연결하지 않을 때 토큰 연결**  
`AwsWafIntegration.getToken()`은 유효한 토큰을 검색하여 쿠키로 저장하지만 모든 클라이언트 호출이 기본적으로 이 쿠키를 연결하는 것은 아닙니다. 예를 들어, 호스트 도메인 간에 이루어진 호출은 쿠키를 연결하지 않습니다.

`fetch` 래퍼는 이러한 사례를 자동으로 처리하지만 `fetch` 래퍼를 사용할 수 없는 경우 `aws-waf-token` 사용자 지정 `x-aws-waf-token` 헤더를 사용하여 처리할 수 있습니다. AWS WAF 는 쿠키에서 토큰을 읽는 것 외에도이 헤더에서 토큰을 읽습니다. 다음 코드는 헤더를 설정하는 예제를 보여줍니다.

```
const token = await AwsWafIntegration.getToken();
const result = await fetch('/url', {
    headers: {
        'x-aws-waf-token': token,
    },
});
```

기본적으로는 요청된 호스트 도메인과 동일한 도메인을 포함하는 토큰 AWS WAF 만 허용합니다. 모든 도메인 간 토큰에는 보호 팩(웹 ACL) 토큰 도메인 목록에 해당 항목이 필요합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성](waf-tokens-domains.md#waf-tokens-domain-lists) 단원을 참조하십시오.

도메인 간 토큰 사용에 대한 추가 내용은 [aws-samples/aws-waf-bot-control-api-protection-with-captcha](https://github.com/aws-samples/aws-waf-bot-control-api-protection-with-captcha)를 참조하세요.

# CAPTCHA JavaScript API 사용
<a name="waf-js-captcha-api"></a>

이 섹션에서는 CAPTCHA 통합 API 사용에 대한 지침을 제공합니다.

CAPTCHA JavaScript API를 사용하면 CAPTCHA 퍼즐을 구성하고 클라이언트 애플리케이션에서 원하는 위치에 배치할 수 있습니다. 이 API는 지능형 위협 JavaScript APIs의 기능을 활용하여 최종 사용자가 CAPTCHA 퍼즐을 성공적으로 완료한 후 AWS WAF 토큰을 획득하고 사용합니다.

먼저 테스트 환경에서 JavaScript 통합을 구현한 다음 프로덕션 환경에서 구현합니다. 추가 코딩 지침은 다음 섹션을 참조하세요 

**CAPTCHA 통합 API를 사용하려면**

1. **API 설치**

   1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

   1. 탐색 창에서 **애플리케이션 통합**을 선택합니다. **애플리케이션 통합** 페이지에서 탭으로 구분된 옵션을 볼 수 있습니다.

   1. **CAPTCHA 통합**을 선택합니다.

   1. 통합에 사용할 나열된 JavaScript 통합 스크립트 태그를 복사합니다.

   1. 애플리케이션 페이지 코드의 `<head>` 섹션에 복사한 스크립트 태그를 삽입합니다. 이 포함으로 CAPTCHA 퍼즐을 구성 및 사용할 수 있게 됩니다.

      ```
      <head>
          <script type="text/javascript" src="integrationURL/jsapi.js" defer></script>
      </head>
      ```

      이 `<script>` 목록은 `defer` 속성으로 구성되지만 페이지에 다른 동작을 적용하려는 경우 설정을 `async`로 변경할 수 있습니다.

      또한 CAPTCHA 스크립트는 지능형 위협 통합 스크립트가 아직 없는 경우 자동으로 로드합니다. 지능형 위협 통합 스크립트는 클라이언트 애플리케이션이 페이지 로드 시 백그라운드에서 토큰을 자동으로 검색하도록 하고 CAPTCHA API 사용에 필요한 기타 토큰 관리 기능을 제공합니다.

1. **(선택 사항) 클라이언트 토큰에 대한 도메인 구성 추가** - 기본적으로가 토큰을 AWS WAF 생성할 때 보호 팩(웹 ACL)과 연결된 리소스의 호스트 도메인을 사용합니다. JavaScript API에 추가 도메인을 제공하려면 [토큰에 사용할 도메인 제공](waf-js-challenge-api-set-token-domain.md)의 지침을 따르십시오.

1. **클라이언트에 대해 암호화된 API 키 가져오기** - CAPTCHA API에는 유효한 클라이언트 도메인 목록이 포함된 암호화된 API 키가 필요합니다.는이 키를 AWS WAF 사용하여 통합과 함께 사용 중인 클라이언트 도메인이 AWS WAF CAPTCHA를 사용하도록 승인되었는지 확인합니다. API 키를 생성하려면 [JS CAPTCHA API의 API 키 관리](waf-js-captcha-api-key.md)의 지침을 따르십시오.

1. **CAPTCHA 위젯 구현 코딩** - 페이지 내 `renderCaptcha()` API 호출을 사용할 위치에서 호출을 구현합니다. 이 함수의 구성 및 사용에 대한 자세한 내용은 [CAPTCHA JavaScript API 사양](waf-js-captcha-api-specification.md) 및 [CAPTCHA 퍼즐을 렌더링하는 방법](waf-js-captcha-api-render.md) 섹션을 참조하세요.

   CAPTCHA 구현은 토큰 관리 및 토큰을 사용하는 가져오기 호출 실행을 위해 지능형 위협 통합 APIs와 통합 AWS WAF 됩니다. 이러한 API 사용에 대한 지침은 [지능형 위협 JavaScript API 사용](waf-js-challenge-api.md) 섹션을 참조하세요.

1. **보호 팩(웹 ACL)에 토큰 확인 추가** - 클라이언트가 보내는 웹 요청에서 유효한 CAPTCHA 토큰이 있는지 확인하는 하나 이상의 규칙을 보호 팩(웹 ACL)에 추가합니다. [CAPTCHA Challenge의 및 AWS WAF](waf-captcha-and-challenge.md)에 설명된 대로 CAPTCHA 규칙 작업을 사용하여 확인할 수 있습니다.

   보호 팩(웹 ACL)에 추가된 규칙은 보호된 엔드포인트에 대한 요청에 클라이언트 통합에서 획득한 토큰이 포함되어 있는지 확인합니다. 유효하고 만료되지 않은 CAPTCHA 토큰을 포함하는 요청은 CAPTCHA 규칙 작업 검사를 통과하므로 최종 사용자에게 또 다른 CAPTCHA 퍼즐을 제시하지 않습니다.

JavaScript API를 구현한 후 CAPTCHA 퍼즐 시도 및 솔루션에 대한 CloudWatch 지표를 검토할 수 있습니다. 지표 및 차원 세부 정보는 [계정 지표 및 차원](waf-metrics.md#waf-metrics-account) 섹션을 참조하세요.

**Topics**
+ [CAPTCHA JavaScript API 사양](waf-js-captcha-api-specification.md)
+ [CAPTCHA 퍼즐을 렌더링하는 방법](waf-js-captcha-api-render.md)
+ [에서 CAPTCHA 응답 처리 AWS WAF](waf-js-captcha-api-conditional.md)
+ [JS CAPTCHA API의 API 키 관리](waf-js-captcha-api-key.md)

# CAPTCHA JavaScript API 사양
<a name="waf-js-captcha-api-specification"></a>

이 섹션에는 CAPTCHA JavaScript API의 메서드 및 속성에 대한 사양이 나열되어 있습니다. CAPTCHA JavaScript API를 사용하여 클라이언트 애플리케이션에서 사용자 지정 CAPTCHA 퍼즐을 실행합니다.

이 API는 AWS WAF 토큰 획득 및 사용을 구성하고 관리하는 데 사용하는 지능형 위협 APIs를 기반으로 합니다. [지능형 위협 API 사양](waf-js-challenge-api-specification.md) 섹션을 참조하세요.

**`AwsWafCaptcha.renderCaptcha(container, configuration)`**  
최종 사용자에게 AWS WAF CAPTCHA 퍼즐을 제공하고 성공하면 CAPTCHA 검증으로 클라이언트 토큰을 업데이트합니다. 이 방법은 CAPTCHA 통합에서만 사용할 수 있습니다. 이 호출을 지능형 위협 API와 함께 사용하여 토큰 검색을 관리하고 `fetch` 호출에 토큰을 제공합니다. [지능형 위협 API 사양](waf-js-challenge-api-specification.md)에서 지능형 위협 API를 참조하세요.  
가 AWS WAF 전송하는 CAPTCHA 중간 광고와 달리이 방법으로 렌더링된 CAPTCHA 퍼즐은 초기 제목 화면 없이 즉시 퍼즐을 표시합니다.    
**`container`**  
페이지에 있는 대상 컨테이너 요소의 `Element` 객체입니다. 이는 일반적으로 `document.getElementById()` 또는 `document.querySelector()` 호출을 통해 검색됩니다.  
필수 항목 여부: 예  
유형: `Element`  
**구성**  
다음과 같은 CAPTCHA 구성 설정이 포함된 객체입니다.****    
**`apiKey`**   
클라이언트 도메인에 대한 권한을 활성화하는 암호화된 API 키입니다. AWS WAF 콘솔을 사용하여 클라이언트 도메인용 API 키를 생성합니다. 최대 5개의 도메인에 대해 1개 키를 사용할 수 있습니다. 자세한 내용은 [JS CAPTCHA API의 API 키 관리](waf-js-captcha-api-key.md) 단원을 참조하세요.  
필수 항목 여부: 예  
유형: `string`  
**`onSuccess: (wafToken: string) => void;`**   
최종 사용자가 CAPTCHA 퍼즐을 성공적으로 완료하면 유효한 AWS WAF 토큰으로 호출됩니다. AWS WAF 보호 팩(웹 ACL)으로 보호하는 엔드포인트로 보내는 요청에서 토큰을 사용합니다. 토큰은 가장 최근에 퍼즐을 성공적으로 완료했다는 증거와 타임스탬프를 제공합니다.  
필수 항목 여부: 예  
**`onError?: (error: CaptchaError) => void;`**   
CAPTCHA 작업 중에 오류가 발생하면 오류 객체와 함께 호출됩니다.  
필수 여부: 아니요  
**`CaptchaError` 클래스 정의** - `onError` 핸들러는 다음 클래스 정의와함께 오류 유형을 제공합니다.  

```
CaptchaError extends Error {
    kind: "internal_error" | "network_error" | "token_error" | "client_error";
    statusCode?: number;
}
```
+ `kind` - 반환된 오류의 종류.
+ `statusCode` - HTTP 상태 코드(있는 경우). 이러한 클래스는 HTTP 오류로 인해 오류가 발생한 `network_error`에서 사용됩니다.  
**`onLoad?: () => void;`**   
새 CAPTCHA 퍼즐이 로드될 때 호출됩니다.  
필수 여부: 아니요  
**`onPuzzleTimeout?: () => void;`**   
CAPTCHA 퍼즐이 만료되기 전에 완료되지 않을 때 호출됩니다.  
필수 여부: 아니요  
**`onPuzzleCorrect?: () => void;`**   
CAPTCHA 퍼즐에 정답이 제공될 때 호출됩니다.  
필수 여부: 아니요  
**`onPuzzleIncorrect?: () => void;`**   
CAPTCHA 퍼즐에 오답이 제공될 때 호출됩니다.  
필수 여부: 아니요  
**`defaultLocale`**   
CAPTCHA 퍼즐에 사용할 기본 로케일입니다. CAPTCHA 퍼즐에 대한 서면 지침이 아랍어(ar-SA), 중국어 간체(zH-CN), 네덜란드어(nl-NL), 영어(en-US), 프랑스어(fr-FR), 독일어(de-DE), 이탈리아어(it-IT), 일본어(Ja-JP), 포르투갈어(Pt-Br), 스페인어(es-ES) 및 터키어(tr-TR)로 제공됩니다. 오디오 지침은 기본적으로 영어로 설정된 중국어와 일본어를 제외한 모든 서면 언어에 사용할 수 있습니다. 기본 언어를 변경하려면 국제 언어 및 로케일 코드를 입력합니다(예: `ar-SA`).  
기본값: 최종 사용자의 브라우저에서 현재 사용 중인 언어  
필수 여부: 아니요  
유형: `string`  
**`disableLanguageSelector`**   
`true`로 설정하면 CAPTCHA 퍼즐이 언어 선택기를 숨깁니다.  
기본값: `false`  
필수 여부: 아니요  
유형: `boolean`  
**`dynamicWidth`**   
`true`로 설정하면 CAPTCHA 퍼즐의 너비가 브라우저 창 너비와 호환되도록 너비가 변경됩니다.  
기본값: `false`  
필수 여부: 아니요  
유형: `boolean`  
**`skipTitle`**   
`true`로 설정하면 CAPTCHA 퍼즐에 **퍼즐 풀기**라는 제목이 표시되지 않습니다.  
기본값: `false`  
필수 여부: 아니요  
유형: `boolean`

# CAPTCHA 퍼즐을 렌더링하는 방법
<a name="waf-js-captcha-api-render"></a>

이 섹션에서는 `renderCaptcha` 구현 예제를 제공합니다.

클라이언트 인터페이스에서 AWS WAF `renderCaptcha` 원하는 위치에서 호출을 사용할 수 있습니다. 호출은 CAPTCHA 퍼즐을 검색하고 AWS WAF렌더링한 다음 확인을 AWS WAF 위해에 결과를 전송합니다. 전화를 걸 때 퍼즐 렌더링 구성과 최종 사용자가 퍼즐을 완료했을 때 실행할 콜백을 제공합니다. 옵션에 대한 자세한 내용은 앞 섹션인 [CAPTCHA JavaScript API 사양](waf-js-captcha-api-specification.md) 섹션을 참조하세요.

이 호출을 지능형 위협 통합 API의 토큰 관리 기능과 함께 사용하십시오. 이 호출은 CAPTCHA 퍼즐의 성공적인 완료를 확인하는 토큰을 클라이언트에게 제공합니다. 지능형 위협 통합 APIs를 사용하여 토큰을 관리하고 AWS WAF 보호 팩(웹 ACLs)으로 보호되는 엔드포인트에 대한 클라이언트의 호출에 토큰을 제공합니다. 지능형 위협 API에 대한 자세한 내용은 [지능형 위협 JavaScript API 사용](waf-js-challenge-api.md) 섹션을 참조하세요.

**예제 구현**  
다음 예제 목록은 `<head>` 섹션에 AWS WAF 통합 URL을 배치하는 것을 포함하여 표준 CAPTCHA 구현을 보여줍니다.

이 목록은 지능형 위협 통합 API의 `AwsWafIntegration.fetch` 래퍼를 사용하는 성공 콜백으로 `renderCaptcha` 함수를 구성합니다. 이 함수에 대한 자세한 내용은 [통합 `fetch` 래퍼 사용 방법](waf-js-challenge-api-fetch-wrapper.md) 섹션을 참조하세요.

```
<head>
    <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script>
</head>

<script type="text/javascript">
    function showMyCaptcha() {
        var container = document.querySelector("#my-captcha-container");
        
        AwsWafCaptcha.renderCaptcha(container, {
            apiKey: "...API key goes here...",
            onSuccess: captchaExampleSuccessFunction,
            onError: captchaExampleErrorFunction,
            ...other configuration parameters as needed...
        });
    }
    
    function captchaExampleSuccessFunction(wafToken) {
        // Captcha completed. wafToken contains a valid WAF token. Store it for
        // use later or call AwsWafIntegration.fetch() to use it easily.
        // It will expire after a time, so calling AwsWafIntegration.getToken()
        // again is advised if the token is needed later on, outside of using the
        // fetch wrapper.
        
        // Use WAF token to access protected resources
        AwsWafIntegration.fetch("...WAF-protected URL...", {
            method: "POST",
            headers: {
                "Content-Type": "application/json",
            },
            body: "{ ... }" /* body content */
        });
    }
    
    function captchaExampleErrorFunction(error) {
        /* Do something with the error */
    }
</script>

<div id="my-captcha-container">
    <!-- The contents of this container will be replaced by the captcha widget -->
</div>
```

**예제 구성 설정**  
다음 예제 목록은 너비 및 제목 옵션이 기본값이 아닌 값으로 설정된 `renderCaptcha`를 보여줍니다.

```
        AwsWafCaptcha.renderCaptcha(container, {
            apiKey: "...API key goes here...",
            onSuccess: captchaExampleSuccessFunction,
            onError: captchaExampleErrorFunction,
            dynamicWidth: true, 
            skipTitle: true
        });
```

구성 옵션에 대한 전체 정보는 [CAPTCHA JavaScript API 사양](waf-js-captcha-api-specification.md) 섹션을 참조하세요.

# 에서 CAPTCHA 응답 처리 AWS WAF
<a name="waf-js-captcha-api-conditional"></a>

이 섹션에서는 CAPTCHA 응답을 처리하는 예제를 제공합니다.

요청에 유효한 CAPTCHA 타임스탬프가 있는 토큰이 없는 경우 CAPTCHA 작업이 있는 AWS WAF 규칙은 일치하는 웹 요청의 평가를 종료합니다. 요청이 `GET` text/html 호출인 경우 CAPTCHA 작업은 CAPTCHA 퍼즐이 포함된 중간 광고를 클라이언트에게 제공합니다. CAPTCHA JavaScript API를 통합하지 않을 경우 중간 광고에서 퍼즐이 실행되고 최종 사용자가 문제를 성공적으로 풀면 자동으로 요청이 다시 제출됩니다.

CAPTCHA JavaScript API를 통합하고 CAPTCHA 처리를 사용자 지정하면 종료되는 CAPTCHA 응답을 감지하여 사용자 지정 CAPTCHA를 제공하고 나서, 최종 사용자가 문제를 성공적으로 해결하면 클라이언트의 웹 요청을 다시 제출해야 합니다.

다음 코드 예제에서는 이를 수행하는 방법을 보여줍니다.

**참고**  
작업 응답에는 AWS WAF CAPTCHA HTTP 405 상태 코드가 있으며,이 코드는이 코드의 CAPTCHA 응답을 인식하는 데 사용됩니다. 보호된 엔드포인트가 HTTP 405 상태 코드를 사용하여 동일한 호출에 대해 다른 유형의 응답을 전달하는 경우 이 예제 코드는 이러한 응답에 대해 CAPTCHA 퍼즐도 랜더링합니다.

```
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script>
</head>
<body>
    <div id="my-captcha-box"></div>
    <div id="my-output-box"></div>

    <script type="text/javascript">
    async function loadData() {
        // Attempt to fetch a resource that's configured to trigger a CAPTCHA
        // action if the rule matches. The CAPTCHA response has status=HTTP 405.
        const result = await AwsWafIntegration.fetch("/protected-resource");

        // If the action was CAPTCHA, render the CAPTCHA and return

        // NOTE: If the endpoint you're calling in the fetch call responds with HTTP 405
        // as an expected response status code, then this check won't be able to tell the
        // difference between that and the CAPTCHA rule action response.

        if (result.status === 405) {
            const container = document.querySelector("#my-captcha-box");
            AwsWafCaptcha.renderCaptcha(container, {
                apiKey: "...API key goes here...",
                onSuccess() {
                    // Try loading again, now that there is a valid CAPTCHA token
                    loadData();
                },
            });
            return;
        }

        const container = document.querySelector("#my-output-box");
        const response = await result.text();
        container.innerHTML = response;
    }

    window.addEventListener("load", () => {
        loadData();
    });
    </script>
</body>
</html>
```

# JS CAPTCHA API의 API 키 관리
<a name="waf-js-captcha-api-key"></a>

이 섹션에서는 API 키 생성 및 삭제에 대한 지침을 제공합니다.

JavaScript API를 사용하여 AWS WAF CAPTCHA를 클라이언트 애플리케이션에 통합하려면 CAPTCHA 퍼즐을 실행하려는 클라이언트 도메인에 대한 JavaScript API 통합 태그와 암호화된 API 키가 필요합니다.

JavaScript용 CAPTCHA 애플리케이션 통합은 암호화된 API 키를 사용하여 클라이언트 애플리케이션 도메인에 AWS WAF CAPTCHA API를 사용할 권한이 있는지 확인합니다. JavaScript 클라이언트에서 CAPTCHA API를 호출하면 현재 클라이언트의 도메인을 포함하는 도메인 목록이 API 키에 제공됩니다. 암호화된 키 하나에 도메인을 최대 5개까지 나열할 수 있습니다.

**API 키 요구 사항**  
CAPTCHA 통합에 사용하는 API 키에는 키를 사용하는 클라이언트에 적용되는 도메인이 포함되어야 합니다.
+ 클라이언트의 지능형 위협 통합에서 `window.awsWafCookieDomainList`를 지정하는 경우 API 키의 하나 이상의 도메인이 `window.awsWafCookieDomainList`의 해당 토큰 도메인 중 하나와 정확히 일치하거나 해당 토큰 도메인 중 하나의 apex 도메인이어야 합니다.

  예를 들어 토큰 도메인 `mySubdomain.myApex.com`의 경우 API 키 `mySubdomain.myApex.com`은 정확히 일치하고 API 키 `myApex.com`은 apex 도메인입니다. 두 키 중 하나가 토큰 도메인과 일치합니다.

  토큰 도메인 목록 설정에 대한 자세한 내용은 [토큰에 사용할 도메인 제공](waf-js-challenge-api-set-token-domain.md) 섹션을 참조하세요.
+ 그렇지 않으면 현재 도메인이 API 키에 포함되어야 합니다. 현재 도메인은 브라우저 주소 표시줄에서 볼 수 있는 도메인입니다.

사용하는 도메인은 웹 ACL에 대해 구성된 보호된 호스트 도메인 및 토큰 도메인 목록에 따라가 AWS WAF 수락할 도메인이어야 합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성](waf-tokens-domains.md#waf-tokens-domain-lists) 단원을 참조하십시오.

**API 키의 리전을 선택하는 방법**  
AWS WAF 는를 사용할 수 있는 모든 리전에서 CAPTCHA API 키를 생성할 AWS WAF 수 있습니다.

일반적으로 보호 팩(웹 ACL)에 사용하는 리전과 동일한 리전을 CAPTCHA API 키에 사용해야 합니다. 그러나 리전 보호 팩(웹 ACL)의 글로벌 대상을 예상하는 경우 CloudFront로 범위가 지정된 CAPTCHA JavaScript 통합 태그와 CloudFront로 범위가 지정된 API 키를 가져와 리전 보호 팩(웹 ACL)과 함께 사용할 수 있습니다. 이 접근 방식을 사용하면 클라이언트가 가장 가까운 리전에서 CAPTCHA 퍼즐을 로드할 수 있으므로 지연 시간이 줄어듭니다.

CloudFront 이외의 리전으로 범위가 지정된 CAPTCHA API 키는 여러 리전에서 사용할 수 없습니다. 범위가 지정된 리전에서만 사용할 수 있습니다.

**클라이언트 도메인용 API 키 생성하려면**  
통합 URL을 가져오고 콘솔을 통해 API 키를 생성하고 검색합니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **애플리케이션 통합**을 선택합니다.

1. **애플리케이션 통합에 활성화된 보호 팩(웹 ACL)** 창에서 API 키에 사용할 리전을 선택합니다. 또한 **CAPTCHA 통합** 탭의 **API 키** 창에서 리전을 선택할 수도 있습니다.

1. **CAPTCHA 통합** 탭을 선택합니다. 이 탭은 통합에서 사용할 수 있는 CAPTCHA JavaScript 통합 태그와 API 키 목록을 제공합니다. 둘 다 선택한 리전으로 범위가 지정됩니다.

1. **API 키** 창에서 **키 생성**을 선택합니다. 키 생성 대화 상자가 나타납니다.

1. 키에 포함할 클라이언트 도메인을 입력합니다. 최대 5개를 입력할 수 있습니다. 작업을 마쳤으면 **키 생성**을 선택합니다. 인터페이스가 새 키가 나열된 CAPTCHA 통합 탭으로 돌아갑니다.

   API 키는 생성하고 나면 변경할 수 없습니다. 키를 변경해야 하는 경우 새 키를 생성하여 대신 사용하십시오.

1. (선택 사항) 통합에 사용할 수 있도록 새로 생성된 키를 복사합니다.

이 작업에 REST APIs 또는 언어별 AWS SDKs 있습니다. REST API 호출은 [CreateAPIKey](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateAPIKey.html) 및 [ListAPIKeys](https://docs.aws.amazon.com/waf/latest/APIReference/API_ListAPIKeys.html).

**API 키를 삭제하는 방법**  
API 키를 삭제하려면 REST API 또는 언어별 AWS SDKs 중 하나를 사용해야 합니다. REST API 호출은 [DeleteAPIKey](https://docs.aws.amazon.com/waf/latest/APIReference/API_DeleteAPIKey.html)입니다. 콘솔을 사용하여 키를 삭제할 수 없습니다.

키를 삭제한 후가 모든 리전에서 키 사용을 허용하지 않는 AWS WAF 데 최대 24시간이 걸릴 수 있습니다.

# AWS WAF 모바일 애플리케이션 통합
<a name="waf-mobile-sdk"></a>

이 섹션에서는 AWS WAF 모바일 SDKs를 사용하여 Android 및 iOS 모바일 및 TV 앱용 AWS WAF 지능형 위협 통합 SDKs 구현하는 주제를 소개합니다. TV 앱의 경우 SDK는 Android TV 및 Apple TV를 포함한 주요 스마트 TV 플랫폼과 호환됩니다.
+ Android 모바일 및 TV 앱의 경우 SDK는 Android API 버전 23(Android 버전 6) 이상에서 작동합니다. Android 버전에 대한 자세한 내용은 [SDK 플랫폼 릴리스 노트](https://developer.android.com/tools/releases/platforms)를 참조하세요.
+ iOS 모바일 앱의 경우 SDK는 iOS 버전 13 이상에서 작동합니다. iOS 버전에 대한 자세한 내용은 [iOS 및 iPadOS 릴리스 노트](https://developer.apple.com/documentation/ios-ipados-release-notes)를 참조하세요.
+ Apple TV 앱의 경우 SDK는 tvOS 버전 14 이상에서 작동합니다. tvOS 버전에 대한 자세한 내용은 [tvOS 릴리스 노트](https://developer.apple.com/documentation/tvos-release-notes)를 참조하세요.

모바일 AWS WAF SDK를 사용하면 토큰 인증을 관리하고 보호된 리소스로 보내는 요청에 토큰을 포함할 수 있습니다. SDK를 사용하면 클라이언트의 원격 프로시저 호출에 유효한 토큰이 포함되도록 할 수 있습니다. 또한 애플리케이션 페이지에 이러한 통합이 있으면 유효한 토큰을 포함하지 않는 요청을 차단하는 등 완화 규칙을 보호 팩(웹 ACL)에 구현할 수 있습니다.

모바일 SDK에 액세스하려면 [AWS에 문의](https://aws.amazon.com/contact-us)를 통해 지원 팀을 문의하십시오.

**참고**  
 AWS WAF 모바일 SDKs는 CAPTCHA 사용자 지정에 사용할 수 없습니다.

SDK를 사용하는 기본 접근 방식은 구성 객체를 사용하여 토큰 공급자를 생성한 다음 토큰 공급자를 사용하여 토큰을 검색하는 것입니다 AWS WAF. 기본적으로 토큰 공급자는 검색된 토큰을 보호된 리소스에 대한 웹 요청에 포함합니다.

다음은 주요 구성 요소를 보여주는 SDK 구현의 부분 목록입니다. 더 많은 예제를 보려면 [AWS WAF 모바일 SDK의 코드 예제](waf-mobile-sdk-coding-examples.md) 섹션을 참조하세요.

------
#### [ iOS ]

```
let url: URL = URL(string: "protection pack (web ACL) integration URL")!
	let configuration = WAFConfiguration(applicationIntegrationUrl: url, domainName: "Domain name")
	let tokenProvider = WAFTokenProvider(configuration)
	let token = tokenProvider.getToken()
```

------
#### [ Android ]

```
URL applicationIntegrationURL = new URL("protection pack (web ACL) integration URL");
	String domainName = "Domain name";
	WAFConfiguration configuration = WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL).domainName(domainName).build();
	WAFTokenProvider tokenProvider = new WAFTokenProvider(Application context, configuration);
	WAFToken token = tokenProvider.getToken();
```

------

# AWS WAF 모바일 SDK 설치
<a name="waf-mobile-sdk-installing"></a>

이 섹션에서는 AWS WAF 모바일 SDK 설치 지침을 제공합니다.

모바일 SDK에 액세스하려면 [AWS에 문의](https://aws.amazon.com/contact-us)를 통해 지원 팀을 문의하십시오.

먼저 테스트 환경에서 모바일 SDK를 구현한 다음 프로덕션 환경에서 구현합니다.

**AWS WAF 모바일 SDK를 설치하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **애플리케이션 통합**을 선택합니다.

1. **지능형 위협 통합** 탭에서 다음을 수행합니다.

   1. **애플리케이션 통합용으로 활성화되는 보호 팩(웹 ACL)** 창에서 통합하려는 보호 팩(웹 ACL)을 찾습니다. 구현에 사용할 보호 팩(웹 ACL) 통합 URL을 복사하여 저장합니다. API 호출 `GetWebACL`을 통해 이 URL을 얻을 수도 있습니다.

   1. 모바일 장치 유형과 버전을 선택한 다음 **다운로드**를 선택합니다. 원하는 버전을 선택할 수 있지만 최신 버전을 사용하는 것이 좋습니다. AWS WAF 는 디바이스의 `zip` 파일을 표준 다운로드 위치로 다운로드합니다.

1. 앱 개발 환경에서 선택한 작업 위치로 파일의 압축을 풉니다. zip 파일의 최상위 디렉터리에서 `README`을 찾아 엽니다. `README` 파일의 지침에 따라 AWS WAF 모바일 앱 코드에 사용할 모바일 SDK를 설치합니다.

1. 다음 섹션의 지침에 따라 앱을 프로그래밍합니다.

# AWS WAF 모바일 SDK 사양
<a name="waf-mobile-sdk-specification"></a>

이 섹션에는 사용 가능한 최신 버전의 AWS WAF 모바일 SDK에 대한 SDK 객체, 작업 및 구성 설정이 나열되어 있습니다. 다양한 구성 설정 조합에 적합한 토큰 공급자 및 작업의 작동 방식에 대한 자세한 내용은 [AWS WAF 모바일 SDK 작동 방식](waf-mobile-sdk-how-it-works.md) 섹션을 참조하세요.

**`WAFToken`**  
 AWS WAF 토큰을 보관합니다.    
**`getValue()`**  
`WAFToken`의 `String` 표현을 가져옵니다.

**`WAFTokenProvider`**  
모바일 앱에서 토큰을 관리합니다. `WAFConfiguration` 객체를 사용하여 이를 구현합니다.    
**`getToken()`**  
백그라운드 새로 고침이 활성화된 경우 캐시된 토큰이 반환됩니다. 백그라운드 새로 고침이 비활성화되면에 대한 호출을 차단 AWS WAF 하여 새 토큰을 검색합니다.  
**`loadTokenIntoProvider(WAFToken)`**  
지정된 토큰을 `WAFTokenProvider`에 로드하여 공급자가 관리하는 모든 토큰을 대체합니다. 토큰 공급자는 새 토큰의 소유권을 가져와서 향후 새로 고침을 처리합니다. 이 작업은 `WAFConfiguration`에서 `setTokenCookie`가 활성화된 경우 쿠키 스토어의 토큰도 업데이트합니다.  
**`onTokenReady(WAFTokenResultCallback)`**  
활성 토큰이 준비되면 토큰 공급자에게 토큰을 새로 고치고 제공된 콜백을 호출하도록 지시합니다. 토큰이 캐시되고 준비되면 토큰 공급자는 백그라운드 스레드에서 콜백을 호출합니다. 이 콜백은 앱을 처음 로드할 때와 활성 상태로 복원될 때호출합니다. 활성 상태로 복원하는 방법에 대한 자세한 내용은 [앱 비활성 이후 토큰 검색](waf-mobile-sdk-how-it-works.md#waf-mobile-sdk-how-back-from-inactive) 섹션을 참조하세요.  
Android 또는 iOS 앱의 경우 요청된 토큰이 준비되었을 때 토큰 공급자가 호출할 작업을 `WAFTokenResultCallback`으로 설정할 수 있습니다. `WAFTokenResultCallback`의 구현에는 `WAFToken`, `SdkError` 파라미터를 사용해야 합니다. iOS 앱의 경우 인라인 함수를 번갈아 생성할 수 있습니다.  
**`storeTokenInCookieStorage(WAFToken)`**  
에 지정된 AWS WAF 토큰을 SDK의 쿠키 관리자에 저장`WAFTokenProvider`하도록 지시합니다. 기본적으로 토큰은 처음 획득했을 때와 새로 고칠 때만 쿠키 저장소에 추가됩니다. 애플리케이션이 어떤 이유로든 공유 쿠키 스토어를 지우면 SDK는 다음 새로 고침까지 AWS WAF 토큰을 자동으로 다시 추가하지 않습니다.

**`WAFConfiguration`**  
`WAFTokenProvider`의 구현을 위해 구성을 보관합니다. 이를 구현할 때는 보호 팩(웹 ACL)의 통합 URL, 토큰에 사용할 도메인 이름, 토큰 공급자가 사용할 기본 설정 이외의 모든 설정을 제공합니다.  
다음 목록은 `WAFConfiguration` 객체에서 관리할 수 있는 구성 설정을 지정합니다.    
**`applicationIntegrationUrl`**   
애플리케이션 통합 URL. AWS WAF 콘솔에서 또는 `getWebACL` API 호출을 통해 이를 가져옵니다.  
필수 항목 여부: 예  
유형: 앱별 URL. iOS의 경우 [iOS URL](https://developer.apple.com/documentation/foundation/url)을 참조하세요. Android의 경우 [java.net URL](https://docs.oracle.com/javase/7/docs/api/java/net/URL.html)을 참조하세요.  
**`backgroundRefreshEnabled`**   
토큰 공급자가 백그라운드에서 토큰을 새로 고치도록 할지 여부를 나타냅니다. 이를 설정하면 토큰 공급자가 자동 토큰 새로 고침 활동을 제어하는 구성 설정에 따라 백그라운드에서 토큰을 새로 고칩니다.  
필수 여부: 아니요  
유형: `Boolean`  
기본값: `TRUE`  
**`domainName`**   
토큰에 사용할 도메인으로, 토큰 획득 및 쿠키 저장에 사용됩니다. 예: `example.com` 또는 `aws.amazon.com`. 일반적으로 이 도메인은 웹 요청을 보내는 보호 팩(웹 ACL)과 연결된 리소스의 호스트 도메인입니다. ACFP 관리형 규칙 그룹 `AWSManagedRulesACFPRuleSet`의 경우 이는 일반적으로 규칙 그룹 구성에 제공한 계정 생성 경로의 도메인과 일치하는 단일 도메인입니다. ATP 관리형 규칙 그룹 `AWSManagedRulesATPRuleSet`의 경우 이는 일반적으로 규칙 그룹 구성에 제공한 로그인 경로의 도메인과 일치하는 단일 도메인입니다.  
공개 접미사는 허용되지 않습니다. 예를 들어 `gov.au` 또는 `co.uk`를 토큰 도메인으로 사용할 수 없습니다.  
도메인은 보호된 호스트 도메인과 보호 팩(웹 ACL)의 토큰 도메인 목록에 따라 수락 AWS WAF 할 도메인이어야 합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 토큰 도메인 목록 구성](waf-tokens-domains.md#waf-tokens-domain-lists) 단원을 참조하십시오.  
필수 항목 여부: 예  
유형: `String`   
**`maxErrorTokenRefreshDelayMsec`**   
시도 실패 후 토큰 새로 고침을 반복할 때까지 대기하는 최대 시간 (밀리초) 입니다. 실패한 시도에 대한 각 자동 재시도에 대해 지정된 입력 지연 시간까지 지수 백오프가 추가됩니다. 이 값은 토큰 검색이 실패하고 `maxRetryCount`회 재시도된 후에 사용됩니다.  
필수 여부: 아니요  
유형: `Integer`  
기본값: `5000`(5초)  
허용된 최소값: `1`(1밀리초)  
허용된 최대값: `30000`(30초)  
**`maxRetryCount`**   
토큰 요청 시 지수 백오프를 사용하여 수행할 최대 재시도 횟수입니다.  
필수 여부: 아니요  
유형: `Integer`  
기본값: `Infinity`  
허용된 최소값: `0`  
허용되는 최대값: `100`  
**`setTokenCookie`**   
SDK의 쿠키 관리자를 통해 요청 및 기타 영역에 토큰 쿠키를 추가할지 여부를 나타냅니다.  
`TRUE` 값이 있는 경우:   
+ 쿠키 관리자는 `tokenCookiePath`에 지정된 경로 아래에 경로가 있는 모든 요청에 토큰 쿠키를 추가합니다.
+ `WAFTokenProvider` 작업 `loadTokenIntoProvider()`는 토큰을 토큰 공급자에 로드하는 작업 외에도 쿠키 스토어의 토큰을 업데이트합니다.
필수 여부: 아니요  
유형: `Boolean`  
기본값: `TRUE`  
**`tokenCookiePath`**   
`setTokenCookie`가 `TRUE`일 때 사용됩니다. SDK의 쿠키 관리자를 통해 토큰 쿠키를 추가하려는 최상위 경로를 나타냅니다. 관리자는 이 경로와 모든 하위 경로로 보내는 모든 요청에 토큰 쿠키를 추가합니다.  
예를 들어, 이 값을 `/web/login`로 설정하면 관리자는 받는 모든 항목 `/web/login` 및 하위 경로(예: `/web/login/help`)로 전송된 모든 것에 대한 토큰 쿠키를 포함합니다. `/`, `/web` 또는 `/web/order`와 같은 다른 경로로 전송된 요청에 대한 토큰은 포함하지 않습니다.  
필수 여부: 아니요  
유형: `String`  
기본값: `/`  
**`tokenRefreshDelaySec`**   
백그라운드 새로 고침에 사용됩니다. 백그라운드 토큰 새로 고침 최대 시간 간격(초).  
필수 여부: 아니요  
유형: `Integer`  
기본값: `88`  
허용된 최소값: `88`  
허용된 최대값: `300`(5분)

## AWS WAF 모바일 SDK 오류
<a name="waf-mobile-sdk-errors"></a>

이 섹션에서는 현재 AWS WAF 모바일 SDK 버전에 발생할 수 있는 오류를 나열합니다.

**`SdkError`**  
토큰을 검색하지 못할 때 반환되는 오류 유형입니다. Android 및 iOS SDK에는 동일한 오류 유형이 있습니다.  
 AWS WAF 모바일 SDK에는 다음과 같은 오류 유형이 있습니다.    
**`invalidChallenge`**  
이 오류는 토큰 서버가 잘못된 챌린지 데이터를 반환하거나 공격자에 의해 응답 blob이 변형된 경우에 반환됩니다.  
**`errorInvokingGetChallengeEndpoint`**  
이 오류는 토큰 서버가 성공하지 못한 응답 코드를 클라이언트로 다시 보내거나 네트워크 오류가 발생하는 경우에 반환됩니다.  
**`invalidVerifyChallengeResponse`**  
이 오류는 AWS WAF 서버의 확인 응답`aws-waf-token`에서를 검색하는 동안 오류가 발생하거나 서버 응답이 변조된 경우 반환됩니다.  
**`errorInvokingVerifyEndpoint`**  
이 오류는 클라이언트가 AWS WAF 서버로부터 잘못된 응답을 수신하거나 해결된 문제를 확인할 때 네트워크 오류를 수신할 때 반환됩니다.  
**`internalError`**  
이 오류는 SDK 자체 내에서 발생할 수 있는 다른 모든 오류에 대해 반환됩니다.

**`socketTimeoutException`**  
이 오류는 토큰 검색 중에 네트워크 오류가 발생하는 경우에 자주 반환됩니다.  
이 오류는 다음으로 인해 발생할 수 있습니다.  
+ 낮은 네트워크 대역폭: 네트워크 연결 설정 확인
+ 변형 애플리케이션 통합 URL: 통합 URL이 AWS WAF 콘솔에 표시되는 URL에서 수정되지 않았는지 확인합니다.

# AWS WAF 모바일 SDK 작동 방식
<a name="waf-mobile-sdk-how-it-works"></a>

이 섹션에서는 AWS WAF 모바일 SDK 클래스, 속성 및 작업이 함께 작동하는 방법을 설명합니다.

모바일 SDK는 토큰 검색 및 사용에 사용할 수 있는 구성 가능한 토큰 공급자를 제공합니다. 토큰 공급자는 허용한 요청이 합법적인 고객의 요청인지 확인합니다. 로 보호하는 리소스에 AWS 요청을 보낼 때 토큰을 쿠키에 AWS WAF포함하여 요청을 검증합니다. 토큰 쿠키는 수동으로 처리하거나 토큰 공급자에게 대신 처리하도록 할 수 있습니다.

이 섹션에서는 모바일 SDK에 포함된 클래스, 속성 및 메서드 간의 상호 작용을 다룹니다. SDK 사양에 대한 내용은 [AWS WAF 모바일 SDK 사양](waf-mobile-sdk-specification.md) 섹션을 참조하세요.

## 토큰 검색 및 캐싱
<a name="waf-mobile-sdk-how-token-basics"></a>

모바일 앱에서 토큰 공급자 인스턴스를 생성할 때 토큰 및 토큰 검색을 관리하는 방법을 구성합니다. 앱의 웹 요청에 사용할 수 있도록 유효하고 만료되지 않은 토큰을 유지하는 방법을 선택하는 것이 가장 좋습니다.
+ **백그라운드 새로 고침이 활성화됨** – 기본값입니다. 토큰 공급자는 백그라운드에서 토큰을 자동으로 새로 고쳐 캐시합니다. 백그라운드 새로 고침이 활성화된 상태에서 `getToken()`을 호출하면 캐시된 토큰이 검색됩니다.

  토큰 공급자는 구성 가능한 간격으로 토큰 새로 고침을 수행하므로 애플리케이션이 활성 상태인 동안 만료되지 않은 토큰을 캐시에서 항상 사용할 수 있습니다. 애플리케이션이 비활성 상태인 동안에는 백그라운드 새로 고침이 일시 중지됩니다. 이에 대한 자세한 내용은 [앱 비활성 이후 토큰 검색](#waf-mobile-sdk-how-back-from-inactive) 섹션을 참조하세요.
+ **백그라운드 새로 고침 비활성화** - 백그라운드 토큰 새로 고침을 비활성화하고 나서, 온디맨드로만 토큰을 검색할 수 있습니다. 온디멘드 검색 토큰은 캐시되지 않으며 원하는 경우 두 개 이상을 검색할 수 있습니다. 각 토큰은 검색하는 다른 토큰과 독립적이며 각 토큰에는 만료를 계산하는 데 사용되는 고유한 타임스탬프가 있습니다.

  백그라운드 새로 고침이 비활성화된 경우 다음과 같은 토큰 검색 옵션을 선택할 수 있습니다.
  + **`getToken()`** - 백그라운드 새로 고침이 비활성화`getToken()`된 상태에서를 호출하면 호출이 새 토큰을 동기적으로 검색합니다 AWS WAF. 이 호출은 메인 스레드에서 호출할 경우 앱 응답성에 영향을 줄 수 있는 잠재적으로 차단된 호출입니다.
  + **`onTokenReady(WAFTokenResultCallback)`** - 이 호출은 새 토큰을 비동기적으로 검색한 다음 토큰이 준비되면 백그라운드 스레드에서 제공된 결과 콜백을 호출합니다.

### 토큰 공급자가 실패한 토큰 검색을 재시도하는 방법
<a name="waf-mobile-sdk-how-token-retrieval-retries"></a>

토큰 공급자는 검색에 실패하면 자동으로 토큰 검색을 다시 시도합니다. 재시도는 처음에 지수 백오프를 사용하여 수행되며 시작 재시도 대기 시간은 100ms입니다. 지수 재시도에 대한 자세한 내용은 [AWS의 오류 재시도 및 지수 백오프](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) 섹션을 참조하세요.

재시도 횟수가 구성된 `maxRetryCount`회에 도달하면 토큰 공급자는 토큰 검색 유형에 따라 시도를 중단하거나 `maxErrorTokenRefreshDelayMsec`밀리초마다 시도하도록 전환합니다.
+ **`onTokenReady()`** - 토큰 공급자는 각 시도 사이 대기(`maxErrorTokenRefreshDelayMsec`밀리초)로 전환하고 토큰 검색을 계속 시도합니다.
+ **백그라운드 새로 고침** - 토큰 공급자는 각 시도 사이 대기(`maxErrorTokenRefreshDelayMsec`밀리초)로 전환하고 토큰 검색을 계속 시도합니다.
+ **백그라운드 새로 고침이 비활성화되었을 때 온디맨드 `getToken()` 호출** - 토큰 공급자가 토큰 검색 시도를 중단하고 이전 토큰 값을 반환하거나, 이전 토큰이 없는 경우 null 값을 반환합니다.

## 토큰 검색 재시도 시나리오
<a name="waf-mobile-sdk-how-token-retrieval-retry-scenarios"></a>

토큰 공급자가 토큰을 검색하려고 하면 토큰 획득 흐름에서 토큰 검색이 실패하는 위치에 따라 자동 재시도가 발생할 수 있습니다. 이 섹션에는 자동 재시도가 표시될 수 있는 가능한 위치가 나열되어 있습니다.
+ **/inputs 또는 /verify를 통해 AWS WAF 챌린지 획득 또는 확인:**
  +  AWS WAF 챌린지를 가져오고 확인하는 요청이 이루어지고 실패하면 자동 재시도가 발생할 수 있습니다.
  + 여기서 `socketTimeoutException` 오류와 함께 자동 재시도가 발생하는 것을 관찰할 수 있습니다. 여기에는 다음과 같은 여러 원인이 있을 수 있습니다.
    + 낮은 네트워크 대역폭: 네트워크 연결 설정 확인
    + 변형 애플리케이션 통합 URL: 통합 URL이 AWS WAF 콘솔에 표시되는 URL에서 수정되지 않았는지 확인합니다.
  + 자동 재시도 횟수는 `maxRetryCount()` 함수로 구성할 수 있습니다.
+ **토큰 새로 고침:**
  + 토큰 핸들러를 통해 토큰 새로 고침을 요청하면 자동 재시도가 발생할 수 있습니다.
  + 여기서 자동 재시도 횟수는 `maxRetryCount()` 함수로 구성할 수 있습니다.

자동 재시도가 없는 구성은 `maxRetryCount(0)`를 설정하여 구성할 수 있습니다.

## 토큰 면제 시간 및 백그라운드 새로 고침
<a name="waf-mobile-sdk-how-token-immunity"></a>

웹 ACL에서 구성하는 토큰 면제 시간은 AWS WAF 모바일 SDK에서 설정한 토큰 새로 고침 간격과 독립적입니다. 백그라운드 새로 고침을 활성화하면 SDK는 `tokenRefreshDelaySec()`를 사용하여 지정한 간격으로 토큰을 새로 고칩니다. 이로 인해 구성된 면제 시간에 따라 여러 개의 유효한 토큰이 동시에 존재할 수 있습니다.

여러 유효한 토큰을 방지하기 위해 백그라운드 새로 고침을 비활성화하고 `getToken()` 함수를 사용하여 모바일 앱에서 토큰 수명 주기를 관리할 수 있습니다.

## 앱 비활성 이후 토큰 검색
<a name="waf-mobile-sdk-how-back-from-inactive"></a>

앱이 해당 앱 유형에 맞게 활성화된 것으로 간주되는 경우에만 백그라운드 새로 고침이 수행됩니다.
+ **iOS** - 앱이 포그라운드에 있을 때 백그라운드 새로 고침이 수행됩니다.
+ **Android** - 앱이 포그라운드 또는 백그라운드에 있는지 여부와 관계없이 앱이 닫히지 않은 경우 백그라운드 새로 고침이 수행됩니다.

앱이 구성된 `tokenRefreshDelaySec`초보다 더 긴 시간 동안 백그라운드 새로 고침을 지원하지 않는 상태로 유지되는 경우 토큰 공급자는 백그라운드 새로 고침을 일시 중지합니다. 예를 들어 iOS 앱의 경우 `tokenRefreshDelaySec`는 300이고 앱이 종료되거나 300초 넘게 백그라운드에 있으면 토큰 공급자는 토큰 새로 고침을 중단합니다. 앱이 활성 상태로 돌아오면 토큰 공급자는 백그라운드 새로 고침을 자동으로 다시 시작합니다.

앱이 다시 활성 상태로 복원되면 토큰 공급자가 새 토큰을 검색하고 캐시했을 때 알림을 받을 수 있도록 `onTokenReady()`을 호출합니다. 캐시에 현재 유효한 토큰이 아직 포함되어 있지 않을 수 있으므로 무작정 `getToken()`을 호출해서는 안 됩니다.

## 애플리케이션 통합 URL
<a name="waf-mobile-sdk-application-integration-url"></a>

 AWS WAF 모바일 SDK 애플리케이션 통합 URL은 애플리케이션 통합을 위해 활성화한 웹 ACL을 가리킵니다. 이 URL은 요청을 올바른 백엔드 서버로 라우팅하고 고객과 연결합니다. 하드 보안 제어 역할을 하지 않으므로 통합 URL을 노출해도 보안 위험이 발생하지 않습니다.

제공된 통합 URL을 기술적으로 수정해도 토큰을 얻을 수 있습니다. 그러나 챌린지 해결 속도에 대한 가시성을 잃거나 `socketTimeoutException` 오류와 함께 토큰 검색에 실패할 수 있으므로 이는 권장되지 않습니다.

## 종속성
<a name="waf-mobile-sdk-dependencies"></a>

다운로드 가능한 각 AWS WAF 모바일 SDK에는 특정 버전의 SDK에 대한 종속성을 나열하는 README 파일이 포함되어 있습니다. 모바일 SDK 버전의 종속성은 README를 참조하세요.

## 난독화/ProGuard(Android SDK만 해당)
<a name="waf-mobile-sdk-obfuscation"></a>

ProGuard와 같은 난독화 또는 축소 제품을 사용하는 경우 모바일 SDK가 올바르게 작동하도록 특정 네임스페이스를 제외해야 할 수 있습니다. 네임스페이스 및 제외 규칙 목록을 찾으려면 모바일 SDK 버전의 README를 확인하세요.

# AWS WAF 모바일 SDK의 코드 예제
<a name="waf-mobile-sdk-coding-examples"></a>

이 섹션에서는 모바일 SDK를 사용한 코드 예제를 제공합니다.

## 토큰 공급자 초기화 및 토큰 가져오기
<a name="waf-mobile-sdk-coding-basic"></a>

구성 객체를 사용하여 토큰 공급자 인스턴스를 시작합니다. 그러고 나면 사용 가능한 작업을 사용하여 토큰을 검색할 수 있습니다. 다음은 필요한 코드의 기본 구성 요소입니다.

------
#### [ iOS ]

```
let url: URL = URL(string: "protection pack (web ACL) integration URL")!
let configuration = WAFConfiguration(applicationIntegrationUrl: url, domainName: "Domain name")
let tokenProvider = WAFTokenProvider(configuration)

//onTokenReady can be add as an observer for UIApplication.willEnterForegroundNotification
self.tokenProvider.onTokenReady() { token, error in
	if let token = token {
	//token available
	}

	if let error = error {
	//error occurred after exhausting all retries
	}
}

//getToken()
let token = tokenProvider.getToken()
```

------
#### [ Android ]

Java 예제:

```
String applicationIntegrationURL = "protection pack (web ACL) integration URL";
//Or
URL applicationIntegrationURL = new URL("protection pack (web ACL) integration URL");

String domainName = "Domain name";

WAFConfiguration configuration = WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL).domainName(domainName).build();
WAFTokenProvider tokenProvider = new WAFTokenProvider(Application context, configuration);

// implement a token result callback
WAFTokenResultCallback callback = (wafToken, error) -> {
	if (wafToken != null) {
	// token available
	} else {  
	// error occurred in token refresh  
	}
};

// Add this callback to application creation or activity creation where token will be used
tokenProvider.onTokenReady(callback);

// Once you have token in token result callback
// if background refresh is enabled you can call getToken() from same tokenprovider object
// if background refresh is disabled you can directly call getToken()(blocking call) for new token
WAFToken token = tokenProvider.getToken();
```

Kotlin 예제:

```
import com.amazonaws.waf.mobilesdk.token.WAFConfiguration
import com.amazonaws.waf.mobilesdk.token.WAFTokenProvider

private lateinit var wafConfiguration: WAFConfiguration
private lateinit var wafTokenProvider: WAFTokenProvider

private val WAF_INTEGRATION_URL = "protection pack (web ACL) integration URL"
private val WAF_DOMAIN_NAME = "Domain name"

fun initWaf() {
	// Initialize the tokenprovider instance
	val applicationIntegrationURL = URL(WAF_INTEGRATION_URL)
	wafConfiguration =
		WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL)
			.domainName(WAF_DOMAIN_NAME).backgroundRefreshEnabled(true).build()
	wafTokenProvider = WAFTokenProvider(getApplication(), wafConfiguration)
	
		// getToken from tokenprovider object
		println("WAF: "+ wafTokenProvider.token.value)
	
		// implement callback for where token will be used
		wafTokenProvider.onTokenReady {
			wafToken, sdkError ->
		run {
			println("WAF Token:" + wafToken.value)
		}
	}
}
```

------

## SDK가 HTTP 요청에서 토큰 쿠키를 제공하도록 허용
<a name="waf-mobile-sdk-coding-auto-token-cookie"></a>

`setTokenCookie`가 `TRUE`이면 토큰 공급자는 `tokenCookiePath`에 지정된 경로 아래의 모든 위치에 대한 웹 요청에 토큰 쿠키를 포함합니다. 기본적으로 `setTokenCookie`는 `TRUE`이고 `tokenCookiePath`은 `/`입니다.

토큰 쿠키 경로를 지정하여 토큰 쿠키가 포함된 요청의 범위를 좁힐 수 있습니다(예: `/web/login`). 이렇게 하면 AWS WAF 규칙이 다른 경로로 보내는 요청의 토큰을 검사하지 않는지 확인합니다. `AWSManagedRulesACFPRuleSet` 규칙 그룹을 사용할 때 계정 등록 및 생성 경로를 구성하면 규칙 그룹이 해당 경로로 전송되는 요청의 토큰을 확인합니다. 자세한 내용은 [ACFP 관리형 규칙 그룹을 웹 ACL에 추가](waf-acfp-rg-using.md) 단원을 참조하십시오. 마찬가지로 `AWSManagedRulesATPRuleSet` 규칙 그룹을 사용할 때 로그인 경로를 구성하면 규칙 그룹이 해당 경로로 전송되는 요청의 토큰을 확인합니다. 자세한 내용은 [ATP 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가](waf-atp-rg-using.md) 단원을 참조하십시오.

------
#### [ iOS ]

이 `setTokenCookie`이면 `TRUE`토큰 공급자는 AWS WAF 토큰을에 저장`HTTPCookieStorage.shared`하고에서 지정한 도메인에 대한 요청에 쿠키를 자동으로 포함합니다`WAFConfiguration`.

```
let request = URLRequest(url: URL(string: domainEndpointUrl)!)
//The token cookie is set automatically as cookie header
let task = URLSession.shared.dataTask(with: request) { data, urlResponse, error  in
}.resume()
```

------
#### [ Android ]

`setTokenCookie`가 이면 `TRUE`토큰 공급자는 공유 애플리케이션 전체의 `CookieHandler` 인스턴스에 AWS WAF 토큰을 저장합니다. 토큰 공급자는 `WAFConfiguration`에 지정한 도메인에 대한 요청에 쿠키를 자동으로 포함합니다.

Java 예제:

```
URL url = new URL("Domain name");
//The token cookie is set automatically as cookie header
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.getResponseCode();
```

Kotlin 예제:

```
val url = URL("Domain name")
//The token cookie is set automatically as cookie header
val connection = (url.openConnection() as HttpsURLConnection)
connection.responseCode
```

`CookieHandler` 기본 인스턴스를 이미 초기화한 경우 토큰 공급자는 이를 사용하여 쿠키를 관리합니다. 그렇지 않은 경우 토큰 공급자는 AWS WAF 토큰으로 새 `CookieManager` 인스턴스를 초기화`CookiePolicy.ACCEPT_ORIGINAL_SERVER`한 다음이 새 인스턴스를의 기본 인스턴스로 설정합니다`CookieHandler`.

다음 코드는 앱에서 쿠키 관리자 및 쿠키 핸들러를 사용할 수 없을 때 SDK가 쿠키 관리자와 쿠키 핸들러를 초기화하는 방법을 보여줍니다.

Java 예제:

```
CookieManager cookieManager = (CookieManager) CookieHandler.getDefault();
if (cookieManager == null) {
	// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
	cookieManager = new CookieManager();
	CookieHandler.setDefault(cookieManager);
}
```

Kotlin 예제:

```
var cookieManager = CookieHandler.getDefault() as? CookieManager
if (cookieManager == null) {
	// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
	cookieManager = CookieManager()
	CookieHandler.setDefault(cookieManager)
}
```

------

## HTTP 요청에서 토큰 쿠키를 수동으로 제공
<a name="waf-mobile-sdk-coding-manual-token-cookie"></a>

`setTokenCookie`를 `FALSE`로 설정하면 보호된 엔드포인트에 대한 요청에 토큰 쿠키를 수동으로 쿠키 HTTP 요청 헤더로서 제공해야 합니다. 다음 코드에서는 이를 수행하는 방법을 보여줍니다.

------
#### [ iOS ]

```
var request = URLRequest(url: wafProtectedEndpoint)
request.setValue("aws-waf-token=token from token provider", forHTTPHeaderField: "Cookie")
request.httpShouldHandleCookies = true
URLSession.shared.dataTask(with: request) { data, response, error in }
```

------
#### [ Android ]

Java 예제:

```
URL url = new URL("Domain name");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
String wafTokenCookie = "aws-waf-token=token from token provider";
connection.setRequestProperty("Cookie", wafTokenCookie);
connection.getInputStream();
```

Kotlin 예제:

```
val url = URL("Domain name")
val connection = (url.openConnection() as HttpsURLConnection)
val wafTokenCookie = "aws-waf-token=token from token provider"
connection.setRequestProperty("Cookie", wafTokenCookie)
connection.inputStream
```

------

# CAPTCHA Challenge의 및 AWS WAF
<a name="waf-captcha-and-challenge"></a>

이 섹션에서는 CAPTCHA 및 Challenge를 사용하는 방법을 설명합니다 AWS WAF.

 AWS WAF 규칙의 검사 기준과 일치하는 웹 요청에 대해 CAPTCHA 또는 Challenge 작업을 실행하도록 규칙을 구성할 수 있습니다. 또한 CAPTCHA 퍼즐 및 브라우저 챌린지를 로컬에서 실행하도록 JavaScript 클라이언트 애플리케이션을 프로그래밍할 수 있습니다.

CAPTCHA 퍼즐 및 자동 문제는 브라우저가 HTTPS 엔드포인트에 액세스하는 경우에만 실행할 수 있습니다. 토큰을 획득하려면 브라우저 클라이언트가 안전한 컨텍스트에서 실행되어야 합니다.
+ **CAPTCHA** 최종 사용자에게 CAPTCHA 퍼즐을 풀어서 사람이 요청을 보내고 있다는 것을 증명하도록 요청합니다. CAPTCHA 퍼즐은 사람이 비교적 쉽고 빠르게 완료할 수 있는 반면, 컴퓨터는 성공적으로 완료하거나 무작위 방식을 통해 유의미한 성공률로 완료하기가 어렵습니다.

  보호 팩(웹 ACL) 규칙에서 CAPTCHA는 Block 작업으로 합법적인 요청이 너무 많이 중단될 때 일반적으로 사용되지만 모든 트래픽을 허용할 경우 봇 등으로부터의 원치 않는 요청이 용납할 수 없을 정도로 많아질 때 사용됩니다. 규칙 작업 동작에 관한 내용은 [AWS WAF 및 CAPTCHA 규칙 작업의 작동 방식](waf-captcha-and-challenge-how-it-works.md) 섹션을 참조하세요.

  클라이언트 애플리케이션 통합 API에서 CAPTCHA 퍼즐 이행을 프로그래밍할 수도 있습니다. 이렇게 할 때 클라이언트 애플리케이션에 퍼즐의 동작과 위치를 사용자 지정할 수 있습니다. 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 단원을 참조하십시오.
+ **Challenge** - 클라이언트 세션에서 봇이 아니라 브라우저인지 확인하도록 요구하는 자동 챌린지를 실행합니다. 이 확인은 최종 사용자의 개입 없이 백그라운드에서 실행됩니다. 이 옵션은 CAPTCHA 퍼즐로 최종 사용자 환경에 부정적인 영향을 주지 않으면서 유효하지 않다고 의심되는 클라이언트를 확인할 수 있는 좋은 옵션입니다. 규칙 작업 동작에 관한 내용은 [AWS WAF 및 CAPTCHA 규칙 작업의 작동 방식](waf-captcha-and-challenge-how-it-works.md) 섹션을 참조하세요.

  Challenge 규칙 작업은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md)에서 설명한 클라이언트 지능형 위협 통합 API에서 실행되는 챌린지와 유사합니다.

**참고**  
규칙 중 하나에서 또는 규칙 그룹 내 규칙 작업 재정의로서 CAPTCHA 또는 Challenge 규칙 작업을 사용하는 경우 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

모든 규칙 작업 옵션에 대한 설명은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

**Topics**
+ [AWS WAF CAPTCHA 퍼즐](waf-captcha-puzzle.md)
+ [AWS WAF 및 CAPTCHA 규칙 작업의 작동 방식](waf-captcha-and-challenge-how-it-works.md)
+ [CAPTCHA 및 Challenge 작업 사용 모범 사례](waf-captcha-and-challenge-best-practices.md)

# AWS WAF CAPTCHA 퍼즐
<a name="waf-captcha-puzzle"></a>

이 섹션에서는 AWS WAF CAPTCHA 퍼즐의 기능을 설명합니다.

AWS WAF 는 사용자가 인간인지 확인하도록 하는 표준 CAPTCHA 기능을 제공합니다. CAPTCHA는 완전 자동화된 컴퓨터와 사람 판별 공개 튜링 테스트(Completely Automated Public Turing test to tell Computers and Humans Apart)의 약자입니다. CAPTCHA 퍼즐은 사람이 요청을 보내고 있는지 확인하고 웹 스크레이핑, 보안 인증 정보 스터핑 및 스팸과 같은 활동을 방지하도록 고안되었습니다. CAPTCHA 퍼즐로 원치 않는 요청을 모두 차단할 수는 없습니다. 많은 퍼즐이 기계 학습과 인공 지능을 사용하여 해결되었습니다. CAPTCHA를 우회하기 위해 일부 조직에서는 사람의 개입을 통해 자동화 기술을 보완하기도 합니다. 그럼에도 불구하고 CAPTCHA는 덜 정교한 봇 트래픽을 방지하고 대규모 운영에 필요한 리소스를 늘리는 데 계속 유용한 도구로 사용되고 있습니다.

AWS WAF 는 CAPTCHA 퍼즐을 무작위로 생성하고 순환하여 사용자에게 고유한 챌린지가 제시되도록 합니다.는 자동화 기법에 효과적인 새로운 유형과 스타일의 퍼즐을 AWS WAF 정기적으로 추가합니다. 퍼즐 외에도 AWS WAF CAPTCHA 스크립트는 클라이언트에 대한 데이터를 수집하여 사람이 작업을 완료하고 재생 공격을 방지합니다.

각 CAPTCHA 퍼즐에는 최종 사용자가 새 퍼즐을 요청하고, 시청각 퍼즐을 전환하고, 추가 지침에 액세스하고, 퍼즐 솔루션을 제출할 수 있는 표준 컨트롤 집합이 포함되어 있습니다. 모든 퍼즐에는 스크린 리더, 키보드 컨트롤 및 색상 대비 지원이 포함됩니다.

 AWS WAF CAPTCHA 퍼즐은 웹 콘텐츠 접근성 지침(WCAG)의 요구 사항을 충족합니다. 자세한 내용은 World Wide Web Consortium 웹 사이트의 [웹 콘텐츠 접근성 지침 (WCAG) 개요](https://www.w3.org/WAI/standards-guidelines/wcag/)를 참조하세요.

**Topics**
+ [CAPTCHA 퍼즐 언어 지원](waf-captcha-puzzle-language-support.md)
+ [CAPTCHA 퍼즐 예제](waf-captcha-puzzle-examples.md)

# CAPTCHA 퍼즐 언어 지원
<a name="waf-captcha-puzzle-language-support"></a>

이 섹션에서는 AWS WAF CAPTCHA 퍼즐에서 지원되는 언어를 나열합니다.

CAPTCHA 퍼즐은 클라이언트 브라우저 언어로 작성된 지침으로 시작하거나 브라우저 언어가 지원되지 않는 경우 영어로 시작됩니다. 퍼즐은 드롭다운 메뉴를 통해 대체 언어 옵션을 제공합니다.

사용자는 페이지 하단의 헤드폰 아이콘을 선택하여 오디오 지침으로 전환할 수 있습니다. 퍼즐의 오디오 버전은 배경 소음과 함께 사용자가 텍스트 상자에 입력해야 하는 텍스트에 관한 음성 지침을 제공합니다.

다음 표에는 CAPTCHA 퍼즐의 서면 지침에 대해 선택할 수 있는 언어와 각 선택에 대한 오디오 지원이 나열되어 있습니다.


**AWS WAF CAPTCHA 퍼즐 지원 언어**  

| 서면 지침 지원 | 로케일 코드 | 오디오 지침 지원 | 
| --- | --- | --- | 
|  아랍어  |  아랍어-사우디아라비아  |  아랍어  | 
|  중국어 간체  |  zh-CN  |  영어 오디오  | 
|  네덜란드어  |  nl-NL  |  네덜란드어  | 
|  영어  |  en-US  |  영어  | 
|  프랑스어  |  fr-FR  |  프랑스어  | 
|  독일어  |  de-DE  |  독일어  | 
|  이탈리아어  |  it-IT  |  이탈리아어  | 
|  일본어  |  ja-JP  |  영어 오디오  | 
|  브라질 포르투갈어  |  pt-BR  |  브라질 포르투갈어  | 
|  스페인 요리  |  es-ES  |  스페인 요리  | 
|  터키어  |  tr-TR  |  터키어  | 

# CAPTCHA 퍼즐 예제
<a name="waf-captcha-puzzle-examples"></a>

일반적인 시각적 CAPTCHA 퍼즐은 사용자가 하나 이상의 이미지를 이해하고 상호 작용할 수 있음을 보여주는 상호 작용이 필요합니다.

다음 스크린샷은 그림 그리드 퍼즐의 예를 보여줍니다. 이 퍼즐을 사용하려면 그리드에서 특정 유형의 객체가 포함된 모든 사진을 선택해야 합니다.

![\[화면에는 "사용자가 인간임을 확인하겠습니다"라는 제목과 "모든 의자 선택"이라는 텍스트가 포함되어 있습니다. 텍스트 아래에는 3x3 이미지 그리드가 있으며, 그 중 일부는 의자를 포함하고 다른 일부는 침대 및 창과 같은 의자 이외의 객체를 포함합니다. 화면 하단에는 다른 퍼즐을 불러오고, 정보 상자를 표시하거나 숨기며, 오디오 퍼즐로 전환하고, 언어를 변경하는 옵션이 있습니다. 또한 하단에는 "제출" 버튼이 있습니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/CAPTCHAPuzzleGrid.png)


오디오 퍼즐은 배경 소음과 함께 사용자가 텍스트 상자에 입력해야 하는 텍스트에 관한 음성 지침을 제공합니다.

다음 스크린샷은 오디오 퍼즐 선택 화면을 보여줍니다.

![\[화면에는 “퍼즐 풀기”라는 제목과 “설명을 들으려면 재생을 클릭하세요”라는 텍스트가 표시됩니다. 텍스트 아래에는 재생 버튼이 표시된 이미지가 있습니다. 이미지 아래에는 “키보드 오디오 토글: Alt+space”라는 텍스트가 있습니다. 그 아래에는 “답변 입력”이라는 제목이 있고 그 아래에 텍스트 입력 상자가 있습니다. 열린 정보 상자에는 “녹음을 듣고 텍스트 상자에 답을 입력하여 풀기”라는 텍스트가 있습니다. 화면 하단에는 다른 퍼즐을 불러오고, 정보 상자를 표시하거나 숨기며, 시각적 퍼즐로 전환하는 옵션이 있습니다. 또한 하단에는 “제출” 버튼이 있습니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/CAPTCHAPuzzleAudio.png)




# AWS WAF 및 CAPTCHA 규칙 작업의 작동 방식
<a name="waf-captcha-and-challenge-how-it-works"></a>

이 섹션에서는 CAPTCHA와 Challenge의 작동 방법을 설명합니다.

AWS WAF CAPTCHA 및 Challenge는 표준 규칙 작업이므로 비교적 쉽게 구현할 수 있습니다. 둘 중 하나를 사용하려면 검사할 요청을 식별하는 규칙에 대한 검사 기준을 만든 다음 두 규칙 작업 중 하나를 지정합니다. 각 작업의 옵션에 대한 일반적인 정보는 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

서버 측에서 자동 챌린지와 CAPTCHA 퍼즐을 구현하는 것 외에도 JavaScript, iOS 및 Android 클라이언트 애플리케이션에 자동 챌린지를 통합하고 JavaScript 클라이언트에서 CAPTCHA 퍼즐을 렌더링할 수 있습니다. 이러한 통합을 통해 최종 사용자에게 더 나은 성능과 CAPTCHA 퍼즐 경험을 제공할 수 있으므로, 최종 사용자는 규칙 조치 및 지능형 위협 완화 규칙 그룹 사용과 관련된 비용을 줄일 수 있습니다. 이러한 옵션에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요. 요금 정보는 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**Topics**
+ [CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md)
+ [로그 및 지표의 CAPTCHA 및 Challenge 작업](waf-captcha-and-challenge-logs-metrics.md)

# CAPTCHA 및 Challenge 작업 동작
<a name="waf-captcha-and-challenge-actions"></a>

이 섹션에서는 CAPTCHA 및 Challenge 작업이 수행하는 작업을 설명합니다.

웹 요청이 CAPTCHA 또는 Challenge 작업이 있는 규칙의 검사 기준과 일치하면는 토큰 및 면제 시간 구성의 상태에 따라 요청을 처리하는 방법을 AWS WAF 결정합니다. AWS WAF 또한는 요청이 CAPTCHA 퍼즐 또는 챌린지 스크립트 중간 광고를 처리할 수 있는지 여부를 고려합니다. 스크립트는 HTML 콘텐츠로 처리되도록 설계되었으며 HTML 콘텐츠를 필요로 하는 클라이언트만 올바르게 처리할 수 있습니다.

**참고**  
규칙 중 하나에서 또는 규칙 그룹 내 규칙 작업 재정의로서 CAPTCHA 또는 Challenge 규칙 작업을 사용하는 경우 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**작업에서 웹 요청을 처리하는 방법**  
AWS WAF 는 다음과 같이 웹 요청에 CAPTCHA 또는 Challenge 작업을 적용합니다.
+ **유효한 토큰** -이 작업을 Count 작업과 유사하게 AWS WAF 처리합니다.는 규칙 작업에 대해 구성한 레이블과 요청 사용자 지정을 AWS WAF 적용한 다음 보호 팩(웹 ACL)의 나머지 규칙을 사용하여 요청을 계속 평가합니다.
+ **누락되거나 유효하지 않거나 만료된 토큰** - 요청에 대한 보호 팩(웹 ACL) 평가를 AWS WAF 중단하고 의도한 대상으로 이동하는 것을 차단합니다.

  AWS WAF 는 규칙 작업 유형에 따라 클라이언트로 다시 보내는 응답을 생성합니다.
  + **Challenge** – AWS WAF 에서는 응답에 다음 항목을 포함합니다.
    + `challenge` 값을 갖는 헤더 `x-amzn-waf-action`입니다.
**참고**  
클라이언트 브라우저에서 실행되는 Javascript 애플리케이션의 경우 이 헤더는 애플리케이션의 도메인 내에서만 사용할 수 있습니다. 헤더는 도메인 간 검색에 사용할 수 없습니다. 자세한 정보는 다음 섹션을 참조하세요.
    + HTTP 상태 코드 `202 Request Accepted`.
    + 요청에 값이 `text/html`인 `Accept` 헤더가 포함된 경우 응답에는 챌린지 스크립트가 포함된 JavaScript 페이지 전면 광고가 포함됩니다.
  + **CAPTCHA** - 응답에 다음을 AWS WAF 포함합니다.
    + `captcha` 값을 갖는 헤더 `x-amzn-waf-action`입니다.
**참고**  
클라이언트 브라우저에서 실행되는 Javascript 애플리케이션의 경우 이 헤더는 애플리케이션의 도메인 내에서만 사용할 수 있습니다. 헤더는 도메인 간 검색에 사용할 수 없습니다. 자세한 정보는 다음 섹션을 참조하세요.
    + HTTP 상태 코드 `405 Method Not Allowed`.
    + 요청에 값이 `text/html`인 `Accept` 헤더가 포함된 경우 응답에는 CAPTCHA 스크립트가 포함된 JavaScript 페이지 전면 광고가 포함됩니다.

보호 팩(웹 ACL) 또는 규칙 수준에서 토큰 만료 시기를 구성하려면 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md) 섹션을 참조하세요.

**헤더는 클라이언트 브라우저에서 실행되는 JavaScript 애플리케이션에서는 사용할 수 없습니다.**  
가 CAPTCHA 또는 챌린지 AWS WAF 응답으로 클라이언트 요청에 응답하는 경우 교차 오리진 리소스 공유(CORS) 헤더는 포함되지 않습니다. CORS 헤더는 JavaScript 애플리케이션에서 사용할 수 있는 도메인, HTTP 메서드 및 HTTP 헤더를 클라이언트 웹 브라우저에 알려주는 액세스 제어 헤더 집합입니다. CORS 헤더가 없으면 클라이언트 브라우저에서 실행 중인 JavaScript 애플리케이션에 HTTP 헤더에 대한 액세스 권한이 부여되지 않으므로 CAPTCHA 및 Challenge 응답에 제공된 `x-amzn-waf-action` 헤더를 읽을 수 없습니다.

**챌린지와 CAPTCHA 중간 광고의 기능**  
챌린지 중간 광고가 실행되면 클라이언트가 성공적으로 응답한 후, 아직 토큰이 없는 경우 중간 광고에서 토큰을 초기화합니다. 그런 다음 챌린지 풀기 타임스탬프로 토큰을 업데이트합니다.

CAPTCHA 중간 광고가 실행될 때 클라이언트에 아직 토큰이 없는 경우 CAPTCHA 전면 광고는 먼저 챌린지 스크립트를 호출하여 브라우저에서 챌린지를 실행하고 토큰을 초기화합니다. 그러면 중간 광고는 CAPTCHA 퍼즐을 실행합니다. 최종 사용자가 퍼즐을 성공적으로 완료하면 중간 광고는 CAPTCHA 풀기 타임스탬프로 토큰을 업데이트합니다.

어느 경우든 클라이언트가 성공적으로 응답하고 스크립트가 토큰을 업데이트하면 스크립트는 업데이트된 토큰을 사용하여 원래 웹 요청을 다시 제출합니다.

가 토큰을 AWS WAF 처리하는 방법을 구성할 수 있습니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 섹션을 참조하세요.

# 로그 및 지표의 CAPTCHA 및 Challenge 작업
<a name="waf-captcha-and-challenge-logs-metrics"></a>

이 섹션에서는가 및 Challenge 작업에 대한 로깅 CAPTCHA 및 지표를 AWS WAF 처리하는 방법을 설명합니다.

CAPTCHA 및 Challenge 작업은 비 종료형(예: Count)일 수도 있고 종료형일 수도 있습니다(예: Block). 결과는 작업 유형에 대해 만료되지 않은 타임스탬프가 있는 유효한 토큰이 요청에 있는지 여부에 따라 달라집니다.
+ **유효한 토큰** - 작업이 유효한 토큰을 찾고 요청을 차단하지 않으면 다음과 같이 지표와 로그를 AWS WAF 캡처합니다.
  + `CaptchaRequests` 및 `RequestsWithValidCaptchaToken` 또는 `ChallengeRequests` 및 `RequestsWithValidChallengeToken`에 대한 지표를 늘립니다.
  + 일치 항목을 CAPTCHA 또는 Challenge 작업이 있는 `nonTerminatingMatchingRules` 항목으로 로그에 기록합니다. 다음 목록은 CAPTCHA 작업이 있는 이 유형의 일치 항목에 대한 로그 섹션을 보여줍니다.

    ```
        "nonTerminatingMatchingRules": [
        {
          "ruleId": "captcha-rule",
          "action": "CAPTCHA",
          "ruleMatchDetails": [],
          "captchaResponse": {
            "responseCode": 0,
            "solveTimestamp": 1632420429
          }
        }
      ]
    ```
+ **누락, 유효하지 않음 또는 만료된 토큰** - 작업이 누락되거나 유효하지 않은 토큰으로 인해 요청을 차단하면는 다음과 같이 지표와 로그를 AWS WAF 캡처합니다.
  + 또는 `CaptchaRequests` 또는 `ChallengeRequests`에 대한 지표를 늘립니다.
  + 일치 항목을 HTTP `405` 상태 코드가 있는 `CaptchaResponse` 항목 또는 HTTP `202` 상태 코드가 있는 `ChallengeResponse` 항목으로 로그에 기록합니다. 로그는 요청에 토큰이 누락되었는지 아니면 타임스탬프가 만료되었는지 여부를 나타냅니다. 또한 로그는가 클라이언트에 CAPTCHA 중간 페이지 또는 클라이언트 브라우저에 자동 챌린지를 AWS WAF 보냈는지 여부를 나타냅니다. 다음 목록은 CAPTCHA 작업이 있는 이 유형의 일치 항목에 대한 로그 섹션을 보여줍니다.

    ```
        "terminatingRuleId": "captcha-rule",
        "terminatingRuleType": "REGULAR",
        "action": "CAPTCHA",
        "terminatingRuleMatchDetails": [],
        ...
        "responseCodeSent": 405,
        ...
        "captchaResponse": {
          "responseCode": 405,
          "solveTimestamp": 0,
          "failureReason": "TOKEN_MISSING"
        }
    ```

 AWS WAF 로그에 대한 자세한 내용은 섹션을 참조하세요[AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md).

 AWS WAF 지표에 대한 자세한 내용은 섹션을 참조하세요[AWS WAF 지표 및 차원](waf-metrics.md).

각 작업의 옵션에 대한 일반적인 정보는 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

**토큰이 없는 요청은 로그 및 지표에 두 번 표시되는 듯함**  
[CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md) 및 이 섹션에 설명된 로깅 및 지표를 기반으로 토큰이 없는 요청은 일반적으로 로그 및 지표에 두 번 표시됩니다. 이는 의도한 하나의 요청이 실제로 클라이언트에 의해 두 번 전송되기 때문입니다.
+ 토큰이 없는 첫 번째 요청은 누락, 무효 또는 만료된 토큰에 대해 위에서 설명한 로깅 및 지표 처리를 수신합니다. CAPTCHA 또는 Challenge 작업은 이 첫 번째 요청을 종료한 다음 자동 챌린지 또는 CAPTCHA 퍼즐을 사용하여 클라이언트에 다시 응답합니다.
+ 클라이언트는 챌린지 또는 퍼즐을 평가하고 클라이언트 브라우저 또는 최종 사용자가 성공적으로 응답하면 새로 획득한 토큰으로 요청을 다시 보냅니다. 이 두 번째 요청은 유효한 토큰이 있는 요청에 대해 위에 설명된 로깅 및 지표 처리를 수신합니다.

# CAPTCHA 및 Challenge 작업 사용 모범 사례
<a name="waf-captcha-and-challenge-best-practices"></a>

이 섹션의 지침에 따라 AWS WAF CAPTCHA 또는 챌린지를 계획하고 구현합니다.

**CAPTCHA 및 챌린지 구현 계획**  
웹사이트 사용량, 보호하려는 데이터의 민감도 및 요청 유형에 따라 CAPTCHA 퍼즐이나 자동 챌린지를 배치할 위치를 결정합니다. 필요에 따라 퍼즐을 제시하도록 CAPTCHA를 적용할 요청을 선택하되, 유용하지 않고 사용자 경험을 저하시킬 수 있는 경우에는 제시하지 마십시오. 이 Challenge 작업을 사용하여 최종 사용자에게 미치는 영향은 적지만 요청이 JavaScript 지원 브라우저에서 들어오는지 확인하는 데는 여전히 유용한 자동 챌린지를 실행할 수 있습니다.

CAPTCHA 퍼즐 및 자동 문제는 브라우저가 HTTPS 엔드포인트에 액세스하는 경우에만 실행할 수 있습니다. 토큰을 획득하려면 브라우저 클라이언트가 안전한 컨텍스트에서 실행되어야 합니다.

**클라이언트에서 CAPTCHA 퍼즐과 자동 챌린지를 실행할 위치 결정**  
CAPTCHA의 영향을 받지 않도록 할 요청(예: CSS 또는 이미지 요청)을 식별합니다. 필요한 경우에만 CAPTCHA를 사용하십시오. 예를 들어 로그인 시 CAPTCHA 검사를 실시할 계획이고 사용자가 항상 로그인 화면에서 다른 화면으로 직접 이동하는 경우 두 번째 화면에서 CAPTCHA 검사 요구는 아마도 필요하지 않을 것이며 최종 사용자 경험을 저하시킬 것입니다.

가 `GET` `text/html` 요청에 대한 응답으로 CAPTCHA 퍼즐과 자동 챌린지 AWS WAF 만 전송CAPTCHA하도록 Challenge 및를 구성합니다. `POST` 요청, 교차 오리진 리소스 공유(CORS) 프리플라이트 `OPTIONS` 요청 또는 기타 비 `GET` 요청 유형에 대한 응답으로는 퍼즐이나 챌린지를 실행할 수 없습니다. 다른 요청 유형의 브라우저 동작은 다를 수 있으며 중간 광고를 제대로 처리하지 못할 수 있습니다.

클라이언트가 HTML을 허용하지만 여전히 CAPTCHA 또는 챌린지 중간 광고를 처리하지 못할 수 있습니다. 예를 들어 작은 iFrame을 포함하는 웹 페이지의 위젯은 HTML은 허용하지만 CAPTCHA를 표시하거나 처리하지 못할 수 있습니다. HTML을 허용하지 않는 요청과 마찬가지로 이러한 유형의 요청에는 규칙 작업을 배치하지 마십시오.

**CAPTCHA또는 Challenge 를 사용하여 이전 토큰 획득을 확인합니다.**  
합법적인 사용자가 항상 토큰을 보유해야 하는 위치에서는 유효한 토큰의 존재 여부를 확인하는 용도로만 규칙 조치를 사용할 수 있습니다. 이러한 상황에서는 요청이 중간 광고를 처리할 수 있는지 여부는 중요하지 않습니다.

예를 들어 JavaScript 클라이언트 애플리케이션 CAPTCHA API를 구현하고 보호된 엔드포인트에 첫 번째 요청을 보내기 직전에 클라이언트에서 CAPTCHA 퍼즐을 실행하는 경우 첫 번째 요청에는 항상 챌린지와 CAPTCHA 모두에 유효한 토큰이 포함되어야 합니다. JavaScript 클라이언트 애플리케이션 통합에 대한 자세한 내용은 [AWS WAF JavaScript 통합](waf-javascript-api.md) 섹션을 참조하세요.

이 경우 보호 팩(웹 ACL)에서 이 첫 번째 호출과 일치하는 규칙을 추가하고 Challenge 또는 CAPTCHA 규칙 작업을 사용하여 해당 규칙을 구성할 수 있습니다. 규칙이 합법적인 최종 사용자와 브라우저에 대해 일치하는 경우 이 작업은 유효한 토큰을 찾게 되므로 요청을 차단하거나 이에 대한 응답으로 챌린지 또는 CAPTCHA 퍼즐을 보내지 않습니다. 규칙 작업 작동 방식에 대한 자세한 내용은 [CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md) 섹션을 참조하세요.

**CAPTCHA 및 Challenge를 사용하여 민감한 비 HTML 데이터 보호**  
다음 접근 방식을 통해 API와 같은 민감한 비 HTML 데이터에 CAPTCHA 및 Challenge 보호 기능을 사용할 수 있습니다.

1. 민감한 비 HTML 데이터에 대한 요청과 매우 근접한 곳에서 실행되는 요청과 HTML 응답을 받는 요청을 식별합니다.

1. HTML 요청과 일치하고 민감한 데이터에 대한 요청과 일치하는 CAPTCHA 또는 Challenge 규칙을 작성합니다.

1. 일반적인 사용자 상호 작용의 경우 클라이언트가 HTML 요청에서 획득한 토큰을 민감한 데이터에 대한 요청에서 사용할 수 있고 만료되지 않도록 하려면 CAPTCHA 및 Challenge 면제 시간 설정을 조정합니다. 조정 정보는 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md) 섹션을 참조하세요.

민감한 데이터에 대한 요청이 CAPTCHA 또는 Challenge 규칙과 일치하더라도 클라이언트가 이전 퍼즐 또는 챌린지의 유효한 토큰을 여전히 가지고 있다면 해당 요청은 차단되지 않습니다. 토큰을 사용할 수 없거나 타임스탬프가 만료되면 민감한 데이터에 대한 액세스 요청이 실패합니다. 규칙 작업 작동 방식에 대한 자세한 내용은 [CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md) 섹션을 참조하세요.

**CAPTCHA 및 Challenge를 사용하여 기존 규칙을 조정합니다.**  
기존 규칙을 검토하여 이들 규칙을 변경할지 아니면 이들 규칙에 추가할지 알아봅니다. 고려해야 할 몇 가지 일반 시나리오는 다음과 같습니다.
+ 트래픽을 차단하는 속도 기반 규칙이 있지만 합법적인 사용자를 차단하지 않기 위해 속도 제한을 비교적 높게 유지하는 경우 차단 규칙 다음에 두 번째 속도 기반 규칙을 추가하는 것을 고려해 보십시오. 두 번째 규칙에는 차단 규칙보다 낮은 제한을 지정하고 규칙 작업은 CAPTCHA 또는 Challenge로 설정합니다. 차단 규칙은 너무 높은 속도로 들어오는 요청을 여전히 차단하며, 새 규칙은 더 낮은 속도의 대부분의 자동화된 트래픽을 차단합니다. 속도 기반 규칙에 대한 자세한 내용은 [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md) 섹션을 참조하세요.
+ 요청을 차단하는 관리형 규칙 그룹이 있는 경우 일부 또는 모든 규칙의 동작을 Block에서 CAPTCHA 또는 Challenge로 전환할 있습니다. 이렇게 하려면 관리형 규칙 그룹 구성에서 규칙 작업 설정을 재정의합니다. 규칙 작업 재정의에 대한 자세한 내용은 [규칙 그룹 규칙 작업 재정의](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rules) 섹션을 참조하세요.

**배포하기 전에 CAPTCHA 및 챌린지 테스트**  
모든 새 기능에 대해서는 [AWS WAF 보호 기능 테스트 및 튜닝](web-acl-testing.md)의 지침을 따르십시오.

테스트 중에 토큰 타임스탬프 만료 요구 사항을 검토하고 웹 ACL 및 규칙 수준 면제 시간 구성을 설정하여 웹 사이트에 대한 액세스 제어와 우수한 고객 경험 사이에서 적절한 균형을 이룰 수 있습니다. 자세한 내용은 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md) 섹션을 참조하세요.

# 보호 팩(웹 ACL) 트래픽에 대한 데이터 AWS WAF 보호 및 로깅
<a name="waf-data-protection-and-logging"></a>

이 섹션에서는 사용할 수 있는 데이터 로깅, 수집 및 보호 옵션에 대해 설명합니다 AWS WAF. 다음과 같은 옵션이 있습니다.
+ **로깅** - 웹 요청 트래픽에 대한 로그를 원하는 로깅 대상으로 보내도록 보호 팩(웹 ACL)을 구성할 수 있습니다. 이 선택에 대해 필드 수정 및 필터링을 구성할 수 있습니다. 로깅은 데이터 보호 설정이 적용된 후 사용 가능한 데이터를 사용합니다.

  이 옵션에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.
+ **요청 샘플링** - 애플리케이션이 수신하는 트래픽 유형에 대한 아이디어를 얻기 위해 보호 팩(웹 ACL)이 평가하는 웹 요청을 샘플링하도록 보호 팩(웹 ACL)을 구성할 수 있습니다. 요청 샘플링은 데이터 보호 설정이 적용된 후 사용 가능한 데이터를 사용합니다.

  이 옵션에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요.
+ **Amazon Security Lake** - 보호 팩(웹 ACL) 데이터를 수집하도록 Security Lake를 구성할 수 있습니다. Security Lake는 정규화, 분석 및 관리를 위해 다양한 AWS 소스에서 로그 및 이벤트 데이터를 수집합니다. Security Lake는 데이터 보호 설정이 적용된 후 사용 가능한 데이터에서 수집합니다.

  이 옵션에 대한 자세한 내용은 [Amazon Security Lake 사용 설명서의 Amazon Security Lake란 무엇입니까?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) 및 [AWS 서비스에서 데이터 수집](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)을 참조하세요. ** 

  AWS WAF 는이 옵션 사용에 대해 요금을 부과하지 않습니다. 요금 정보는 *Amazon Security Lake 사용 설명서*의 [Security Lake 요금](https://aws.amazon.com/security-lake/pricing/) 및 [Security Lake 요금 결정 방법](https://docs.aws.amazon.com/security-lake/latest/userguide/estimating-costs.html)을 참조하세요.
+ **데이터 보호** - 두 가지 수준에서 웹 트래픽 데이터에 대한 데이터 보호를 구성할 수 있습니다.
  + **보호 팩(웹 ACL)에 대한 데이터 보호** - 각 보호 팩(웹 ACL)에 대한 데이터 보호를 구성할 수 있습니다. 이를 통해 특정 웹 트래픽 데이터를 정적 문자열 또는 암호화 해싱으로 대체할 수 있습니다. 이러한 데이터 보호 수준은 중앙에서 구성할 수 있으며 모든 로깅 및 데이터 수집 옵션에 적용됩니다.

    이 옵션에 대한 자세한 내용은 [데이터 보호](data-protection-masking.md) 섹션을 참조하세요.
  + **로깅 수정 및 필터링** - 로깅의 경우에만 로그에서 수정하도록 일부 웹 트래픽 데이터를 구성하고 로깅하는 데이터를 필터링할 수 있습니다. 이 옵션은 구성한 데이터 보호 설정에 추가되며가 구성된 로깅 대상으로 AWS WAF 보내는 데이터에만 영향을 줍니다.

**Topics**
+ [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md)
+ [데이터 보호](data-protection-masking.md)

# AWS WAF 보호 팩(웹 ACL) 트래픽 로깅
<a name="logging"></a>

이 섹션에서는 AWS WAF 보호 팩(웹 ACLs)의 로깅 옵션에 대해 설명합니다.

로깅을 활성화하여 웹 ACL에서 분석한 트래픽에 대한 자세한 정보를 기록할 수 있습니다. 로깅된 정보에는가 리소스로부터 AWS 웹 요청을 AWS WAF 받은 시간, 요청에 대한 세부 정보, 요청이 일치하는 규칙에 대한 세부 정보가 포함됩니다. Amazon CloudWatch Logs 로그 그룹, Amazon Simple Storage Service(AmazonS3) 버킷 또는 Amazon Data Firehose 전송 스트림에 보호 팩(웹 ACL) 로그를 전송할 수 있습니다.

보호 팩(웹 ACLs)에 대해 활성화할 수 있는 로그 외에도에서 처리하는 웹 사이트 또는 애플리케이션 트래픽의 서비스 로그를 AWS 사용하여 AWS 고객 및 서비스를 AWS WAF 지원하고 보호합니다.

**참고**  
보호 팩(웹 ACL) 로깅 구성은 AWS WAF 로그에만 영향을 줍니다. 특히 로깅을 위한 수정된 필드 구성은 요청 샘플링 또는 Security Lake 데이터 수집에 영향을 미치지 않습니다. 보호 팩(웹 ACL) 데이터 보호를 구성하여 수집 또는 샘플링에서 필드를 제외할 수 있습니다. 데이터 보호 외에도 Security Lake 데이터 수집은 Security Lake 서비스를 통해 완전히 구성됩니다.

**Topics**
+ [보호 팩(웹 ACL) 트래픽 정보 로깅 요금](logging-pricing.md)
+ [AWS WAF 로깅 대상](logging-destinations.md)
+ [보호 팩(웹 ACL)에 대한 로깅 구성](logging-management-configure.md)
+ [보호 팩(웹 ACL) 레코드 찾기](logging-management.md)
+ [보호 팩(웹 ACL) 트래픽에 대한 로그 필드](logging-fields.md)
+ [보호 팩(웹 ACL) 트래픽에 대한 로그 예제](logging-examples.md)

**기타 데이터 수집 및 분석 옵션**  
로깅 외에도 데이터 수집 및 분석을 위해 다음 옵션을 활성화할 수 있습니다.
+ **Amazon Security Lake** - 보호 팩(웹 ACL) 데이터를 수집하도록 Security Lake를 구성할 수 있습니다. Security Lake는 정규화, 분석 및 관리를 위해 다양한 소스에서 로그 및 이벤트 데이터를 수집합니다. 이 옵션에 대한 자세한 내용은 [Amazon Security Lake 사용 설명서의 Amazon Security Lake란 무엇입니까?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) 및 [AWS 서비스에서 데이터 수집](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)을 참조하세요. ** 

  AWS WAF 는이 옵션 사용에 대해 요금을 부과하지 않습니다. 요금 정보는 *Amazon Security Lake 사용 설명서*의 [Security Lake 요금](https://aws.amazon.com/security-lake/pricing/) 및 [Security Lake 요금 결정 방법](https://docs.aws.amazon.com/security-lake/latest/userguide/estimating-costs.html)을 참조하세요.
+ **요청 샘플링** - 애플리케이션이 수신하는 트래픽 유형에 대한 아이디어를 얻기 위해 보호 팩(웹 ACL)이 평가하는 웹 요청을 샘플링하도록 보호 팩(웹 ACL)을 구성할 수 있습니다. 이 옵션에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요.

# 보호 팩(웹 ACL) 트래픽 정보 로깅 요금
<a name="logging-pricing"></a>

이 섹션에서는 보호 팩(웹 ACL) 트래픽 로그 사용에 대한 요금 고려 사항에 대해 설명합니다.

보호 팩(웹 ACL) 트래픽 정보 로깅에는 각 로그 대상 유형과 관련된 비용에 따라 요금이 부과됩니다. 이러한 요금은 AWS WAF사용 요금에 추가로 부과됩니다. 비용은 선택하는 대상 유형이나 기록하는 데이터 양과 같은 요인에 따라 달라질 수 있습니다.

다음은 각 로깅 대상 유형에 대한 요금 정보의 링크를 제공합니다.
+ **CloudWatch Logs** - 요금은 벤더 로그 전송에 대한 요금입니다. [Amazon CloudWatch Logs 요금](https://aws.amazon.com/cloudwatch/pricing/)을 참조하세요. **유료 티어**에서 **로그** 탭을 선택한 다음 **판매 로그**에서 **CloudWatch Logs로 전송** 정보를 참조하세요.
+ **Amazon S3 버킷** - Amazon S3 요금에는 Amazon S3 버킷으로의 CloudWatch Logs 판매 로그 전송 요금과 Amazon S3 사용 요금이 합산됩니다.
  + Amazon S3은 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)을 참조하세요.
  + Amazon S3로의 CloudWatch Logs 판매 로그 전송은 [Amazon CloudWatch Logs 요금](https://aws.amazon.com/cloudwatch/pricing/)을 참조하세요. **유료 티어**에서 **로그** 탭을 선택한 다음 **판매 로그**에서 **S3로 전송**에 대한 정보를 참조하세요.
+ **Firehose** – [Amazon Data Firehose 요금](https://aws.amazon.com/kinesis/data-firehose/pricing/)을 참조하세요.

 AWS WAF 요금에 대한 자세한 내용은 [AWS WAF 요금을](https://aws.amazon.com/waf/pricing/) 참조하세요.

# AWS WAF 로깅 대상
<a name="logging-destinations"></a>

이 섹션에서는 AWS WAF 로그에 대해 선택할 수 있는 로깅 옵션에 대해 설명합니다. 각 섹션에서는 대상 유형에 특정된 동작에 대한 정보를 포함하여 로로깅을 구성하기 위한 지침을 제공합니다. 로깅 대상을 구성한 후 보호 팩(웹 ACL) 로깅 구성에 해당 사양을 제공하여 로깅을 시작할 수 있습니다.

**Topics**
+ [CloudWatch Logs](logging-cw-logs.md)
+ [Amazon S3](logging-s3.md)
+ [Firehose](logging-kinesis.md)

# Amazon CloudWatch Logs 로그 그룹에 보호 팩(웹 ACL) 트래픽 로그 전송
<a name="logging-cw-logs"></a>

이 주제에서는 CloudWatch Logs 로그 그룹에 보호 팩(웹 ACL) 트래픽 로그를 전송하는 방법에 대해 설명합니다.

**참고**  
 AWS WAF사용 요금 외에 로그인 요금이 부과됩니다. 자세한 내용은 [보호 팩(웹 ACL) 트래픽 정보 로깅 요금](logging-pricing.md) 단원을 참조하세요.

Amazon CloudWatch Logs로 로그를 전송하려면 CloudWatch Logs 로그 그룹을 생성합니다. 로그인을 활성화하면 로그 그룹 ARN을 AWS WAF제공합니다. 보호 팩(웹 ACL)에 대한 로깅을 활성화하면가 로그 스트림의 CloudWatch Logs 로그 그룹에 로그를 AWS WAF 전송합니다.

CloudWatch Logs를 사용하면 AWS WAF 콘솔에서 보호 팩(웹 ACL)에 대한 로그를 탐색할 수 있습니다. 보호 팩(웹 ACL) 페이지에서 **로깅 인사이트** 탭을 선택합니다. 이 옵션은 CloudWatch 콘솔을 통해 CloudWatch Logs에 대해 제공되는 로깅 인사이트에 추가됩니다.

 AWS WAF 보호 팩(웹 ACL)과 동일한 리전에서 보호 팩(웹 ACL)을 관리하는 데 사용하는 것과 동일한 계정을 사용하여 보호 팩(웹 ACL) 로그에 대한 로그 그룹을 구성합니다. CloudWatch Logs 로그 그룹의 구성에 대한 자세한 내용은 [로그 그룹 및 로그 스트림 작업](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)을 참조하세요.

## CloudWatch Logs 로그 그룹에 대한 할당량
<a name="logging-cw-logs-quotas"></a>

CloudWatch Logs에는 하나의 리전 내의 모든 로그 그룹 간에 공유되는 처리량에 대한 기본 최대 할당량이 있으며, 이를 늘리도록 요청할 수 있습니다. 로깅 요구 사항이 현재 처리량 설정에 비해 너무 높으면 계정에 대한 `PutLogEvents`의 스로틀링 지표가 표시됩니다. Service Quotas 콘솔에서 제한을 보고 증가를 요청하려면 [CloudWatch Logs PutLogEvents 할당량](https://console.aws.amazon.com/servicequotas/home/services/logs/quotas/L-7E1FAE88)을 참조하세요.

## 로그 그룹 이름 지정
<a name="logging-cw-logs-naming"></a>

로그 그룹 이름은 `aws-waf-logs-`로 시작해야 하며 예를 들어 `aws-waf-logs-testLogGroup2` 등 끝에는 원하는 접미사를 붙일 수 있습니다.

결과 ARN 형식은 다음과 같습니다.

```
arn:aws:logs:Region:account-id:log-group:aws-waf-logs-log-group-suffix
```

로그 스트림의 이름 지정 형식은 다음과 같습니다.

```
Region_web-acl-name_log-stream-number
```

다음은 리전 `us-east-1`의 보호 팩(웹 ACL) `TestWebACL`에 대한 예제 로그 스트림입니다.

```
us-east-1_TestWebACL_0
```

## 로그를 CloudWatch Logs에 게시하는 데 필요한 권한
<a name="logging-cw-logs-permissions"></a>

CloudWatch Logs 로그 그룹에 대한 보호 팩(웹 ACL) 트래픽 로깅을 구성하려면 이 섹션에 설명된 권한 설정이 필요합니다. 권한은 AWS WAF 전체 액세스 관리형 정책 또는 중 하나를 사용할 때 설정됩니다`AWSWAFConsoleFullAccess``AWSWAFFullAccess`. 로깅 및 AWS WAF 리소스에 대한 보다 세분화된 액세스를 관리하려면 권한을 직접 설정할 수 있습니다. 권한 관리에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS 리소스에 대한 액세스 관리를](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) 참조하세요. AWS WAF 관리형 정책에 대한 자세한 내용은 [AWS 에 대한 관리형 정책 AWS WAF](security-iam-awsmanpol.md)을 참조하세요.

이러한 권한을 통해 보호 팩(웹 ACL) 로깅 구성을 변경하고, CloudWatch Logs에 대한 로그 전송을 구성하며, 로그 그룹에 대한 정보를 검색할 수 있습니다. 이러한 권한은 AWS WAF를 관리하는 데 사용하는 사용자에게 연결되어야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "wafv2:PutLoggingConfiguration",
                "wafv2:DeleteLoggingConfiguration"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow",
            "Sid": "LoggingConfigurationAPI"
        },
        {
            "Sid": "WebACLLoggingCWL",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

모든 AWS 리소스에서 작업이 허용되면 정책에 `"Resource"` 설정이 로 표시됩니다`"*"`. 즉, 각 작업이 지원하는 모든 AWS 리소스에서 작업이 허용됩니다. ** 예를 들어 `wafv2:PutLoggingConfiguration` 작업은 `wafv2` 로깅 구성 리소스에서만 지원됩니다.

# Amazon Simple Storage Service 버킷으로 보호 팩(웹 ACL) 트래픽 로그 전송
<a name="logging-s3"></a>

이 주제에서는 Amazon S3 버킷으로 보호 팩(웹 ACL) 트래픽 로그를 전송하기 위한 정보를 제공합니다.

**참고**  
 AWS WAF사용 요금 외에 로그인 요금이 부과됩니다. 자세한 내용은 [보호 팩(웹 ACL) 트래픽 정보 로깅 요금](logging-pricing.md) 단원을 참조하세요.

보호 팩(웹 ACL) 트래픽 로그를 Amazon S3로 전송하려면 보호 팩(웹 ACL)을 관리하는 데 사용하는 계정과 동일한 계정에서 Amazon S3 버킷을 설정하고 버킷 이름을 `aws-waf-logs-`로 시작합니다. 로그인을 활성화하면 버킷 이름을 AWS WAF제공합니다. 로깅 버킷 생성에 대한 자세한 내용을 알아보려면 *Amazon Simple Storage Service 사용 설명서*의 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html)을 참조하세요.

Amazon Athena 대화형 쿼리 서비스를 사용하여 Amazon S3 로그에 액세스하고 분석할 수 있습니다. Athena에서 표준 SQL을 사용해 Amazon S3의 데이터를 손쉽게 직접 분석할 수 있습니다. 에서 몇 가지 작업을 수행 AWS Management Console하면 Athena가 Amazon S3에 저장된 데이터를 가리키고 표준 SQL을 사용하여 임시 쿼리를 실행하고 결과를 가져올 수 있습니다. 자세한 내용은 *Amazon Athena 사용 설명서*의 [AWS WAF 로그 쿼리](https://docs.aws.amazon.com/athena/latest/ug/waf-logs.html)를 참조하세요. 추가 Amazon Athena 쿼리 샘플은 GitHub 웹 사이트의 [aws-samples/waf-log-sample-athena-queries](https://github.com/aws-samples/waf-log-sample-athena-queries)를 참조하세요.

**참고**  
AWS WAF 는 키 유형 Amazon S3 키(SSE-S3) 및 for AWS Key Management Service (SSE-KMS)에 대해 Amazon S3 버킷을 사용한 암호화를 지원합니다 AWS KMS keys. AWS WAF 는에서 관리하는 AWS Key Management Service 키에 대한 암호화를 지원하지 않습니다 AWS.

보호 팩(웹 ACL)의 로그 파일은 5분 간격으로 Amazon S3 버킷에 게시됩니다. 각 로그 파일에는 이전 5분 동안 기록된 트래픽에 대한 로그 레코드가 포함됩니다.

로그 파일의 최대 크기는 75MB입니다. 로그 파일이 5분 내에 파일 크기 한도에 도달하는 경우, 로그는 레코드의 로그 파일로의 추가를 중단하고 Amazon S3 버킷에 게시한 다음 새로운 로그 파일을 생성합니다.

로그 파일은 압축된 상태입니다. Amazon S3 콘솔을 사용해 파일을 열면 Amazon S3에서 로그 레코드의 압축을 해제하고 이를 표시합니다. 로그 파일을 다운로드하는 경우, 압축을 해제해야 레코드를 볼 수 있습니다.

단일 로그 파일에는 여러 레코드와 함께 인터리브 항목이 포함되어 있습니다. 보호 팩(웹 ACL)의 모든 로그 파일을 보려면 보호 팩(웹 ACL) 이름, 리전 및 계정 ID별로 집계된 항목을 찾아봅니다.

## 요구 사항 및 구문 이름 지정
<a name="logging-s3-naming"></a>

 AWS WAF 로깅을 위한 버킷 이름은 로 시작해야 하며 원하는 접미사로 끝날 `aws-waf-logs-` 수 있습니다. 예를 들어 `aws-waf-logs-LOGGING-BUCKET-SUFFIX`입니다.

**버킷 위치**  
버킷 위치에서는 다음 구문이 사용됩니다.

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/
```

**버킷 ARN**  
Amazon 리소스 이름(ARN) 버킷의 형식은 다음과 같습니다.

```
arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
```

**접두사가 있는 버킷 위치**  
객체 키 이름에 접두사를 사용하여 버킷에 저장하는 데이터를 구성하는 경우 로깅 버킷 이름에 접두사를 제공할 수 있습니다.

**참고**  
콘솔에서는 이 옵션을 사용할 수 없습니다. AWS WAF APIs CLI 또는를 사용합니다 AWS CloudFormation.

Amazon S3에서 접두어 사용에 대한 자세한 내용을 알아보려면 *Amazon Simple Storage Service 사용 설명서*의 [접두어를 사용한 객체 구성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)을 참조하세요.

접두사가 있는 버킷 위치에는 다음 구문이 사용됩니다.

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/KEY-NAME-PREFIX/
```

**버킷 폴더 및 파일 이름**  
버킷 내에서 사용자가 제공한 접두사에 따라 계정 ID, 리전, 보호 팩(웹 ACL) 이름, 날짜 및 시간에 따라 결정되는 폴더 구조로 AWS WAF 로그가 작성됩니다.

```
AWSLogs/account-id/WAFLogs/Region/web-acl-name/YYYY/MM/dd/HH/mm
```

폴더 안에 있는 로그 파일 이름은 비슷한 형식을 따릅니다.

```
account-id_waflogs_Region_web-acl-name_timestamp_hash.log.gz
```

폴더 구조 및 로그 파일 이름에 사용되는 시간 지정은 타임스탬프 형식 사양인 `YYYYMMddTHHmmZ`를 준수합니다.

다음은 이름이 `aws-waf-logs-LOGGING-BUCKET-SUFFIX`인 Amazon S3 버킷의 로그 파일 예제를 보여줍니다. 는 AWS 계정 입니다`11111111111`. 보호 팩(웹 ACL)은 `TEST-WEBACL`이며 리전은 `us-east-1`입니다.

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/AWSLogs/11111111111/WAFLogs/us-east-1/TEST-WEBACL/2021/10/28/19/50/11111111111_waflogs_us-east-1_TEST-WEBACL_20211028T1950Z_e0ca43b5.log.gz
```

**참고**  
 AWS WAF 로깅을 위한 버킷 이름은 로 시작해야 하며 원하는 접미사로 끝날 `aws-waf-logs-` 수 있습니다.

## Amazon S3에 로그를 게시하는 데 필요한 권한
<a name="logging-s3-permissions"></a>

Amazon S3 버킷에 대한 보호 팩(웹 ACL) 트래픽 로깅을 구성하려면 다음과 같은 권한 설정이 필요합니다. 이러한 권한은 AWS WAF 전체 액세스 관리형 정책(`AWSWAFConsoleFullAccess` 또는 `AWSWAFFullAccess`) 중 하나를 사용할 때 자동으로 설정됩니다. 로깅 및 AWS WAF 리소스에 대한 액세스를 추가로 관리하려면 이러한 권한을 직접 설정할 수 있습니다. 권한 관리에 관한 자세한 내용은 *IAM 사용 설명서*의 [AWS 리소스에 대한 액세스 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)를 참조하세요. AWS WAF 관리형 정책에 대한 자세한 내용은 섹션을 참조하세요[AWS 에 대한 관리형 정책 AWS WAF](security-iam-awsmanpol.md).

다음 권한을 통해 보호 팩(웹 ACL) 로깅 구성을 변경하고 로그가 Amazon S3 버킷으로 전송되도록 구성할 수 있습니다. 이러한 권한은 AWS WAF를 관리하는 데 사용하는 사용자에게 연결되어야 합니다.

**참고**  
아래 나열된 권한을 설정하면 AWS CloudTrail 로그에 액세스가 거부되었음을 나타내는 오류가 표시될 수 있지만 AWS WAF 로깅에 대한 권한은 정확합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Action":[
            "wafv2:PutLoggingConfiguration",
            "wafv2:DeleteLoggingConfiguration"
         ],
         "Resource":[
            "*"
         ],
         "Effect":"Allow",
         "Sid":"LoggingConfigurationAPI"
      },
    {                                                                                                                                                                
       "Sid":"WebACLLogDelivery",                                                                                                                                    
       "Action":[                                                                                                                                                    
          "logs:CreateLogDelivery",                                                                                                                                  
          "logs:DeleteLogDelivery"                                                                                                                                   
       ],                                                                                                                                                            
       "Resource": "*",                                                                                                                                              
       "Effect":"Allow"                                                                                                                                              
    },  
      {
         "Sid":"WebACLLoggingS3",
         "Action":[
            "s3:PutBucketPolicy",
            "s3:GetBucketPolicy"
         ],
         "Resource": [
         "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix"
         ],
         "Effect":"Allow"
      }
   ]
}
```

------

모든 AWS 리소스에서 작업이 허용되면 정책에 `"Resource"` 설정이 로 표시됩니다`"*"`. 즉, 각 작업이 지원하는 모든 AWS 리소스에서 작업이 허용됩니다. ** 예를 들어 `wafv2:PutLoggingConfiguration` 작업은 `wafv2` 로깅 구성 리소스에서만 지원됩니다.

기본적으로 Amazon S3 버킷과 버킷에 포함된 객체는 비공개입니다. 버킷 소유자만이 버킷과 그 안에 저장된 객체에 액세스할 수 있습니다. 그러나 버킷 소유자는 액세스 정책을 작성하여 다른 리소스 및 사용자에게 액세스를 허용할 수 있습니다.

로그를 생성하는 사용자가 버킷을 소유한 경우, 해당 서비스에서는 다음 정책을 해당 버킷에 자동으로 연결하여 로그를 버킷에 게시할 로그 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AWSLogDeliveryWrite",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix/AWSLogs/123456789012/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control",
          "aws:SourceAccount": ["123456789012"]
        },
        "ArnLike": {
        "aws:SourceArn": ["arn:aws:logs:us-east-2:123456789012:*"]
        }
      }
    },
    {
      "Sid": "AWSLogDeliveryAclCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix",
      "Condition": {
        "StringEquals": {
        "aws:SourceAccount": ["123456789012"]
        },
        "ArnLike": {
        "aws:SourceArn": ["arn:aws:logs:us-east-2:123456789012:*"]
        }
      }
    }
  ]
}
```

------

**참고**  
 AWS WAF 로깅을 위한 버킷 이름은 로 시작해야 하며 원하는 접미사로 끝날 `aws-waf-logs-` 수 있습니다.

로그를 생성하는 사용자가 버킷을 소유하지 않거나 해당 버킷에 대한 `GetBucketPolicy`와 `PutBucketPolicy`가 없는 경우, 로그 생성이 실패합니다. 이 경우 버킷 소유자가 이전 정책을 수동으로 버킷에 추가하고 로그 생성자의 AWS 계정 ID를 지정해야 합니다. 자세한 내용은 *Amazon Simple Storage Service Console 사용 설명서*의 [S3 버킷 정책을 추가하려면 어떻게 해야 합니까?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)를 참조하세요. 버킷이 여러 계정으로부터 로그를 수신하는 경우, `Resource` 요소 입력 내용을 각 계정의 `AWSLogDeliveryWrite` 정책 설명에 추가합니다.

예를 들어 다음 버킷 정책은 `111122223333`가 라는 버킷에 로그를 게시하도록 허용합니다 AWS 계정 . `aws-waf-logs-LOGGING-BUCKET-SUFFIX` 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSLogDeliveryWrite20150319",
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix/AWSLogs/111122223333/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": ["111122223333"]
                },
                "ArnLike": {
                    "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"]
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryAclCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix",
            "Condition": {
                "StringEquals": {
                "aws:SourceAccount": ["111122223333"]
                },
                "ArnLike": {
                "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"]
                }
            }
        }
    ]
}
```

------

**참고**  
경우에 따라 `delivery.logs.amazonaws.com`에 `s3:ListBucket` 권한이 부여되지 않은 경우 AWS CloudTrail 에서 `AccessDenied` 오류가 표시될 수 있습니다. CloudTrail 로그에서 이러한 오류를 방지하려면 `delivery.logs.amazonaws.com`에 `s3:ListBucket` 권한을 부여하고 앞의 버킷 정책에서 설정한 `s3:GetBucketAcl ` 권한과 함께 표시된 `Condition` 파라미터를 포함해야 합니다. 이 작업을 보다 간단하게 수행하기 위해 새로운 `Statement`를 만드는 대신 `AWSLogDeliveryAclCheck`를 `“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]`으로 직접 업데이트할 수 있습니다.

## KMS 키와 AWS Key Management Service 함께를 사용하기 위한 권한
<a name="logging-s3-permissions-encrypt-kms"></a>

로깅 대상이 AWS Key Management Service (SSE-KMS)에 저장된 키로 서버 측 암호화를 사용하고 고객 관리형 키(KMS 키)를 사용하는 경우 KMS 키를 사용할 수 있는 AWS WAF 권한을 부여해야 합니다. 이렇게 하기 위해서는 선택한 대상의 KMS 키에 키 정책을 추가합니다. 이렇게 하면 AWS WAF 로깅을 통해 대상에 로그 파일을 쓸 수 있습니다.

가 Amazon S3 버킷에 AWS WAF 로그인할 수 있도록 KMS 키에 다음 키 정책을 추가합니다.

```
{
    "Sid": "Allow AWS WAF to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": [
            "delivery.logs.amazonaws.com"
        ]
    },
    "Action": "kms:GenerateDataKey*",
    "Resource": "*"
}
```

## Amazon S3 로그 파일에 액세스하는 데 필요한 권한
<a name="logging-s3-log-file-access"></a>

Amazon S3는 ACL(액세스 제어 목록)을 사용하여 AWS WAF 로그에서 생성한 로그 파일에 대한 액세스를 관리합니다. 기본적으로 버킷 소유자는 각 로그 파일에 대한 `FULL_CONTROL` 권한을 보유합니다. 로그 전송 소유자가 버킷 소유자와 다른 경우에는 권한이 없습니다. 로그 전송 계정에는 `READ` 및 `WRITE` 권한이 부여됩니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [액세스 제어 목록(ACL) 개요](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)를 참조하세요.

# Amazon Data Firehose 전송 스트림으로 보호 팩(웹 ACL) 트래픽 로그 전송
<a name="logging-kinesis"></a>

이 섹션에서는 Amazon Data Firehos 전송 스트림에 보호 팩(웹 ACL) 트래픽 로그를 전송하는 방법에 대한 정보를 제공합니다.

**참고**  
 AWS WAF사용 요금 외에 로그인 요금이 부과됩니다. 자세한 내용은 [보호 팩(웹 ACL) 트래픽 정보 로깅 요금](logging-pricing.md) 단원을 참조하세요.

AmazonData Firehose로 로그를 보내려면 보호 팩(웹 ACL)의 로그를 Firehose에 구성된 Amazon Data Firehose 전송 스트림으로 로그를 보냅니다. 로깅을 활성화하면는 Firehose의 HTTPS 엔드포인트를 통해 스토리지 대상으로 로그를 AWS WAF 전송합니다.

하나의 AWS WAF 로그는 하나의 Firehose 레코드와 동일합니다. 일반적으로 초당 10,000개의 요청을 받는데 전체 로그를 활성화하는 경우, Firehose에는 초당 10,000개의 레코드가 설정되어 있어야 합니다. Firehose를 올바르게 구성하지 않으면 모든 로그 AWS WAF 를 기록하지 않습니다. 자세한 내용은 [Amazon Kinesis Data Firehose 할당량](https://docs.aws.amazon.com/firehose/latest/dev/limits.html)을 참조하세요.

Amazon Data Firehose 전송 스트림을 생성하고 저장된 로그를 검토하는 방법에 대한 자세한 내용은 [Amazon Data Firehose란 무엇인가요?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) 섹션을 참조하세요.

전송 스트림 생성에 관한 자세한 내용은 [Amazon Data Firehose 전송 스트림 생성](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)을 참조하세요.

## 보호 팩(웹 ACL)에 대한 Amazon Data Firehose 전송 스트림 구성
<a name="logging-kinesis-configuration"></a>

다음과 같이 보호 팩(웹 ACL)에 대한 Amazon Data Firehose 전송 스트림을 구성합니다.
+ 보호 팩(웹 ACL)을 관리하는 데 사용하는 것과 동일한 계정을 사용하여 생성합니다.
+ 보호 팩(웹 ACL)과 동일한 리전에서 생성합니다. Amazon CloudFront에 대한 로그를 캡처하고 있는 경우, 미국 동부(버지니아 북부) 리전 `us-east-1`에서 Firehose를 생성합니다.
+ Data Firehose에 `aws-waf-logs-` 접두사로 시작하는 이름을 지정합니다. 예를 들어 `aws-waf-logs-us-east-2-analytics`입니다.
+ 직접 입력으로 구성하여 애플리케이션이 전송 스트림에 직접 액세스할 수 있도록 합니다. [Amazon Data Firehose 콘솔](https://console.aws.amazon.com/firehose)에서 전송 스트림 **소스** 설정으로 **Direct PUT 또는 기타 소스**를 선택합니다. API를 통해 전송 스트림 속성 `DeliveryStreamType`을 `DirectPut`로 설정합니다.
**참고**  
`Kinesis stream`을 소스로 사용하지 마십시오.

## Amazon Data Firehose 전송 스트림에 로그를 게시하는 데 필요한 권한
<a name="logging-kinesis-permissions"></a>

Kinesis Data Firehose 구성에 필요한 권한을 이해하려면 [Amazon Kinesis Data Firehose를 사용한 액세스 제어](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)를 참조하세요.

Amazon Data Firehose 전송 스트림으로 보호 팩(웹 ACL) 로깅을 성공적으로 활성화하려면 다음 권한이 있어야 합니다.
+ `iam:CreateServiceLinkedRole`
+ `firehose:ListDeliveryStreams`
+ `wafv2:PutLoggingConfiguration`

서비스 연결 역할 및 `iam:CreateServiceLinkedRole` 권한에 대한 자세한 내용은 [에 대한 서비스 연결 역할 사용 AWS WAF](using-service-linked-roles.md) 섹션을 참조하세요.

# 보호 팩(웹 ACL)에 대한 로깅 구성
<a name="logging-management-configure"></a>

이 섹션에서는 보호 팩(웹 ACL)에 대한 데이터 보호를 구성하는 지침을 제공합니다.

**참고**  
 AWS WAF사용 요금 외에 로그인 요금이 부과됩니다. 자세한 내용은 [보호 팩(웹 ACL) 트래픽 정보 로깅 요금](logging-pricing.md) 단원을 참조하세요.

보호 팩(웹 ACL)에 대한 로깅을 활성화하려면 사용 중인 로깅 대상을 이미 구성했어야 합니다. 대상 옵션 및 각 옵션의 요구 사항에 대한 자세한 내용은 [AWS WAF 로깅 대상](logging-destinations.md) 섹션을 참조하세요.

**보호 팩(웹 ACL)에 대한 로깅 구성**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **보호 팩(웹 ACL)**을 선택합니다.

1. 로깅을 활성화하려는 보호 팩(웹 ACL)의 이름을 선택합니다. 콘솔에서 보호 팩(웹 ACL)의 설명으로 이동하여 여기에서 설명을 편집할 수 있습니다.

1. **로깅 및 지표** 탭에서 **로깅 활성화**를 선택합니다.

1. 로깅 대상 유형을 선택한 다음 구성한 로깅 대상을 선택합니다. 이름이 `aws-waf-logs-`로 시작하는 로깅 대상을 선택해야 합니다.

1. (선택 사항) 일부 필드를 로그에 포함하지 않으려면 해당 필드를 수정합니다. 삭제할 필드를 선택한 후 **추가**를 선택합니다. 필요에 따라 이 작업을 반복하여 추가 필드를 삭제합니다. 삭제된 필드는 로그에서 `xxx`로 표시됩니다.
**참고**  
이 설정은 요청 샘플링에 영향을 미치지 않습니다. 보호 팩(웹 ACL) 데이터 보호를 구성하거나 보호 팩(웹 ACL)에 대한 샘플링을 비활성화하여 요청 샘플링에서 필드를 제외할 수 있습니다.

1. (선택 사항) 모든 요청을 로그로 전송하지 않으려면 필터링 기준과 동작을 추가합니다. **필터 로그**에서 적용하려는 각 필터에 대해 **필터 추가**를 선택한 다음 기준과 일치하는 요청을 유지할지 아니면 삭제할지 여부를 지정합니다. 필터 추가를 완료할 때 필요 시 **기본 로깅 동작**을 수정합니다.
**참고**  
필터를 여러 개 추가하는 경우는 위에서 시작하여 필터를 AWS WAF 평가합니다.

1. **로깅 활성화**를 선택합니다.
**참고**  
로깅을 성공적으로 활성화하면 AWS WAF 는 로깅 대상에 로그를 쓰는 데 필요한 권한이 있는 서비스 연결 역할을 생성합니다. 자세한 내용은 [에 대한 서비스 연결 역할 사용 AWS WAF](using-service-linked-roles.md) 단원을 참조하십시오.

# 보호 팩(웹 ACL) 레코드 찾기
<a name="logging-management"></a>

이 섹션에서는 보호 팩(웹 ACL) 레코드를 찾는 방법에 대해 설명합니다.

**참고**  
 AWS WAF사용 요금 외에 로그인 요금이 부과됩니다. 자세한 내용은 [보호 팩(웹 ACL) 트래픽 정보 로깅 요금](logging-pricing.md) 단원을 참조하세요.

**로그에서 로그 레코드를 찾을 수 없는 경우**  
드문 경우지만 AWS WAF 로그 전송이 100% 미만으로 떨어질 수 있으며, 로그는 최선을 다해 전송됩니다. AWS WAF 아키텍처는 다른 모든 고려 사항보다 애플리케이션의 보안을 우선시합니다. 로깅 흐름에 트래픽 제한이 발생하는 경우와 같은 일부 상황에서는 레코드가 삭제될 수 있습니다. 이는 몇 개 이상의 레코드에는 영향을 미치지 않아야 합니다. 누락된 로그 항목이 여러 개 발견되면 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)에 문의하세요.

보호 팩(웹 ACL)의 로깅 구성에서가 로그로 AWS WAF 전송하는 항목을 사용자 지정할 수 있습니다.
+ **필드 수정** – 해당하는 일치 설정을 사용하는 규칙에 대한 로그 레코드에서 **URI 경로**, **쿼리 문자열**, **단일 헤더** 및 **HTTP 메서드** 필드를 수정할 수 있습니다. 삭제된 필드는 로그에서 `REDACTED`로 표시됩니다. 예를 들어 **쿼리 문자열** 필드를 수정하면 로그에서 **쿼리 문자열** 일치 구성 요소 설정을 사용하는 모든 규칙에 대해 해당 필드가 `REDACTED`로 나열됩니다. 교정은 규칙에서 일치하도록 지정한 요청 구성 요소에만 적용되므로 **단일 헤더** 구성 요소의 수정은 **헤더**와 일치하는 규칙에는 적용되지 않습니다. 로그 필드 목록은 [보호 팩(웹 ACL) 트래픽에 대한 로그 필드](logging-fields.md) 섹션을 참조하세요.
**참고**  
이 설정은 요청 샘플링에 영향을 미치지 않습니다. 보호 팩(웹 ACL) 데이터 보호를 구성하거나 보호 팩(웹 ACL)에 대한 샘플링을 비활성화하여 요청 샘플링에서 필드를 제외할 수 있습니다.
+ **로그 필터링** - 필터링을추가하여 로그에 보관되는 웹 요청과 삭제되는 웹 요청을 지정할 수 있습니다. 웹 요청 평가 중에 AWS WAF 적용되는 설정을 기준으로 필터링합니다. 다음 설정을 기준으로 필터링할 수 있습니다.
  + **정규화된 레이블** – 정규화된 레이블에는 접두사, 선택적 네임스페이스 및 레이블 이름이 포함됩니다. 접두사는 레이블을 추가한 규칙의 규칙 그룹 또는 보호 팩(웹 ACL) 컨텍스트를 식별합니다. 레이블에 대한 자세한 내용은 [의 웹 요청 레이블 지정 AWS WAF](waf-labels.md) 섹션을 참조하세요.
  + **규칙 작업** - 규칙 그룹 규칙에 대해 모든 일반 규칙 작업 설정과 규칙 그룹 규칙의 레거시 `EXCLUDED_AS_COUNT` 재정의 옵션을 기준으로 필터링할 수 있습니다. 규칙 작업 설정에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요. 규칙 그룹 규칙의 현재 및 레거시 규칙 작업 재정의에 대한 자세한 내용은 [에서 규칙 그룹 작업 재정의 AWS WAF](web-acl-rule-group-override-options.md) 섹션을 참조하세요.
    + 일반 규칙 작업 필터는 규칙에 구성된 작업뿐만 아니라 현재의 규칙 그룹 규칙 작업 재정의 옵션을 사용하여 구성된 작업에도 적용됩니다.
    + `EXCLUDED_AS_COUNT` 로그 필터는 `Count` 작업 로그 필터와 중복됩니다. `EXCLUDED_AS_COUNT`는 규칙 그룹 규칙 작업을 Count로 재정의하기 위해 현재 옵션과 레거시 옵션을 모두 필터링합니다.

# 보호 팩(웹 ACL) 트래픽에 대한 로그 필드
<a name="logging-fields"></a>

다음 목록에서는 가능한 로그 필드에 대해 설명합니다.

**작업**  
요청에 AWS WAF 적용된 종료 작업입니다. 이는 허용, 차단, CAPTCHA 또는 챌린지를 나타냅니다. 웹 요청에 유효한 토큰이 없으면 CAPTCHA 및 Challenge 작업이 종료됩니다.

**args**  
쿼리 문자열.

**captchaResponse**  
요청에 CAPTCHA 작업이 적용될 때 채워지는 요청에 대한 CAPTCHA 작업 상태입니다. 이 필드는 종료든 종료되지 않든 모든 CAPTCHA 작업에 채워집니다. 요청에 CAPTCHA 작업이 여러 번 적용되는 경우 이 필드는 작업이 마지막으로 적용된 시점부터 채워집니다.  
요청에 토큰이 포함되지 않은 경우 또는 토큰이 유효하지 않거나 만료된 경우 CAPTCHA 작업에서 웹 요청 검사를 종료합니다. CAPTCHA 작업이 종료되는 경우 이 필드에는 응답 코드와 실패 이유가 포함됩니다. 작업이 종료되지 않는 경우 이 필드에는 해석 타임스탬프가 포함됩니다. 종료 작업과 비종료 작업을 구분하려면 이 필드에서 비어 있지 않은 `failureReason` 속성을 필터링할 수 있습니다.

**cfDistributionTenantId**  
웹 요청과 연결된 CloudFront 배포 테넌트의 식별자입니다. 이 필드는 선택 사항이며 CloudFront 배포 테넌트와 연결된 보호 팩(웹 ACL)에만 적용됩니다.

**challengeResponse**  
요청에 Challenge 작업이 적용될 때 채워지는 요청에 대한 챌린지 작업 상태입니다. 이 필드는 종료든 종료되지 않든 모든 Challenge 작업에 채워집니다. 요청에 Challenge 작업이 여러 번 적용되는 경우 이 필드는 작업이 마지막으로 적용된 시점부터 채워집니다.  
요청에 토큰이 포함되지 않은 경우 또는 토큰이 유효하지 않거나 만료된 경우 Challenge 작업에서 웹 요청 검사를 종료합니다. Challenge 작업이 종료되는 경우 이 필드에는 응답 코드와 실패 이유가 포함됩니다. 작업이 종료되지 않는 경우 이 필드에는 해석 타임스탬프가 포함됩니다. 종료 작업과 비종료 작업을 구분하려면 이 필드에서 비어 있지 않은 `failureReason` 속성을 필터링할 수 있습니다.

**clientAsn**  
웹 요청 오리진의 IP 주소와 연결된 Autonomous System Number(ASN)입니다.  
**clientAsn**은 ASN 일치 문이 사용되는 경우에만 AWS WAF 로그에 로깅됩니다. 그 외에는 이 필드가 로깅되는 경우가 없습니다.

**clientIp**  
클라이언트가 요청을 보내는 IP 주소.

**country**  
요청의 출처 국가. AWS WAF 가 오리진 국가를 확인할 수 없는 경우이 필드는 로 설정됩니다`-`.

**country**  
요청의 출처 국가. AWS WAF 가 오리진 국가를 확인할 수 없는 경우이 필드는 로 설정됩니다`-`.

**excludedRules**  
규칙 그룹 규칙에만 사용됩니다. 규칙 그룹에서 제외한 규칙의 목록입니다. 이 규칙에 대한 작업은 Count로 설정됩니다.  
규칙 재정의 작업 옵션을 사용하여 규칙을 개수로 재정의하는 경우 일치 항목이 여기에 나열되지 않습니다. 이들 항목은 작업 쌍인 `action` 및 `overriddenAction`으로 나열됩니다.    
exclusionType  
제외된 규칙에 Count 작업이 있음을 나타내는 유형입니다.  
ruleId  
규칙 그룹 내에서 제외된 규칙의 ID입니다.

**formatVersion**  
로그의 포맷 버전.

**forwardedAsn**  
웹 요청을 전달한 엔터티의 IP 주소와 연결된 Autonomous System Number(ASN)입니다.

**헤더**  
헤더 목록.

**httpMethod**  
요청의 HTTP 메서드.

**httpRequest**  
요청에 대한 메타데이터.

**httpSourceId**  
연결된 리소스의 ID입니다.  
+ Amazon CloudFront 배포의 경우 ARN 구문에서 ID는 `distribution-id`입니다.

  `arn:partitioncloudfront::account-id:distribution/distribution-id` 
+ Application Load Balancer의 경우 ARN 구문에서 ID는 `load-balancer-id`입니다.

  `arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id`
+ Amazon API Gateway REST API의 경우 ARN 구문에서 ID는 `api-id`입니다.

  `arn:partition:apigateway:region::/restapis/api-id/stages/stage-name`
+ an AWS AppSync GraphQL API의 경우 ID는 ARN 구문`GraphQLApiId`의 입니다.

  `arn:partition:appsync:region:account-id:apis/GraphQLApiId`
+ Amazon Cognito 사용자 풀의 경우 ARN 구문의 ID는 `user-pool-id`입니다.

  `arn:partition:cognito-idp:region:account-id:userpool/user-pool-id`
+  AWS App Runner 서비스의 경우 ID는 ARN 구문`apprunner-service-id`의 입니다.

  `arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id`

**httpSourceName**  
요청의 소스. 가능한 값: Amazon CloudFront`CF`의 경우 , Amazon API Gateway`APIGW`의 경우 , `ALB` Application Load Balancer`APPSYNC`의 경우 , Amazon Cognito`COGNITOIDP`의 경우 AWS AppSync, App Runner`APPRUNNER`의 경우 , Verified Access`VERIFIED_ACCESS`의 경우 .

**httpVersion**  
HTTP 버전.

**ja3Fingerprint**  
요청의 JA3 지문.  
JA3 지문 검사는 Amazon CloudFront 배포 및 Application Load Balancer에서만 사용할 수 있습니다.
JA3 자문은 수신 요청의 TLS 클라이언트 Hello에서 파생된 32자 해시입니다. 이 지문은 클라이언트의 TLS 구성에 대한 고유 식별자 역할을 합니다.는 AWS WAF 계산에 충분한 TLS 클라이언트 Hello 정보가 있는 각 요청에 대해이 지문을 계산하고 로깅합니다.  
보호 팩(웹 ACL) 규칙에서 JA3 지문 일치를 구성할 때 이 값을 제공합니다. JA3 지문과의 일치 생성에 대한 자세한 내용은 규칙 문에 대한 [에서 구성 요소 요청 AWS WAF](waf-rule-statement-fields-list.md)의 [JA3 지문](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint) 섹션을 참조하세요.

**ja4Fingerprint**  
요청의 JA4 지문입니다.  
JA4 지문 검사는 Amazon CloudFront 배포 및 Application Load Balancer에서만 사용할 수 있습니다.
JA4 지문은 수신 요청의 TLS 클라이언트 Hello에서 파생된 36자 해시입니다. 이 지문은 클라이언트의 TLS 구성에 대한 고유 식별자 역할을 합니다.는 AWS WAF 계산에 충분한 TLS 클라이언트 Hello 정보가 있는 각 요청에 대해이 지문을 계산하고 로깅합니다.  
보호 팩(웹 ACL) 규칙에서 JA4 지문 일치를 구성할 때 이 값을 제공합니다. JA4 지문에 대한 일치 생성에 대한 자세한 내용은 [JA4 지문](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint)의 규칙 문을 참조[에서 구성 요소 요청 AWS WAF](waf-rule-statement-fields-list.md)하세요.

**labels**  
웹 요청의 레이블 이러한 레이블은 request. AWS WAF logs에서 처음 100개의 레이블을 평가하는 데 사용된 규칙에 의해 적용되었습니다.

**nonTerminatingMatchingRules**  
요청과 일치한 비 종료 규칙 목록입니다. 목록의 각 항목에는 다음 정보가 포함되어 있습니다.    
작업  
요청에 AWS WAF 적용된 작업입니다. 이는 개수, CAPTCHA 또는 챌린지를 나타냅니다. 웹 요청에 유효한 토큰이 포함된 경우 CAPTCHA 및 Challenge가 종료되지 않습니다.  
ruleId  
요청에 부합되는 비 종료 규칙의 ID.  
ruleMatchDetails  
요청과 일치하는 규칙에 대한 자세한 정보입니다. 이 필드는 SQL 명령어 삽입 및 크로스 사이트 스크립팅(XSS) 일치 규칙 문에 대해서만 채워집니다. 일치 규칙에는 둘 이상의 검사 기준에 대한 일치가 필요할 수 있으므로 이러한 일치 세부 정보는 일치 기준 배열로 제공됩니다.
각 규칙에 대해 제공되는 추가 정보는 규칙 구성, 규칙 일치 유형, 일치 세부 정보 등의 요소에 따라 달라집니다. 예를 들어 CAPTCHA 또는 Challenge 작업이 있는 규칙의 경우 `captchaResponse` 또는 `challengeResponse`가 나열됩니다. 일치하는 규칙이 규칙 그룹에 있고 구성된 규칙 작업을 재정의한 경우 구성된 작업이 `overriddenAction`에 제공됩니다.

**oversizeFields**  
보호 팩(웹 ACL)에서 검사하고 AWS WAF 검사 한도를 초과하는 웹 요청의 필드 목록입니다. 필드 크기가 너무 크지만 보호 팩(웹 ACL)이 해당 필드를 검사하지 않는 경우 여기에 나열되지 않습니다.  
이 목록에는 `REQUEST_BODY`, `REQUEST_JSON_BODY`, `REQUEST_HEADERS` 및 `REQUEST_COOKIES` 값 중 0개 이상이 포함될 수 있습니다. 과대 필드에 대한 자세한 내용은 [에서 웹 요청 구성 요소 크기 초과 AWS WAF](waf-oversize-request-components.md) 섹션을 참조하세요.

**rateBasedRuleList**  
요청에 작용하는 속도 기반 규칙의 목록. 속도 기반 규칙에 대한 자세한 내용은 [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md) 섹션을 참조하세요.    
rateBasedRuleId  
요청에 작용하는 비율 기반 규칙의 ID입니다. 이 규칙이 요청을 종료한 경우 `rateBasedRuleId`의 ID는 `terminatingRuleId`의 ID와 동일합니다.  
rateBasedRuleName  
요청에 작용하는 비율 기반 규칙의 이름입니다.  
limitKey  
규칙이 사용하는 집계 유형. 사용 가능한 값은 웹 요청 오리진에는 `IP`, 요청의 헤더에 전달된 IP에는 `FORWARDED_IP`, 사용자 지정 집계 키 설정에는 `CUSTOMKEYS`, 그리고 집계 없이 모든 요청 수를 계산하려는 경우 `CONSTANT`입니다.  
리밋-밸류  
단일 IP 주소 유형에 의해 속도를 제한할 때만 사용됩니다. 요청에 유효하지 않은 IP 주소가 포함된 경우 `limitvalue`는 `INVALID`입니다.  
maxRateAllowed  
특정 집계 인스턴스에 대해 지정된 기간 동안 허용되는 최대 요청 수입니다. 집계 인스턴스는 속도 기반 규칙 구성에 제공된 `limitKey`에 추가 키 사양을 더해 정의됩니다.  
evaluationWindowSec  
요청에 AWS WAF 포함된 시간은 초 단위로 계산됩니다.  
customValues  
요청의 속도 기반 규칙에 의해 식별된 고유 값. 문자열 값의 경우 로그는 문자열 값의 처음 32자를 출력합니다. 키 유형에 따라 이러한 값은 HTTP 메서드 또는 쿼리 문자열과 같이 키에만 사용할 수 있는 값일 수도 있고 헤더 및 헤더 이름과 같은 키와 이름에 모두 사용할 수 있는 값일 수도 있습니다.

**요청 헤더가 삽입되었습니다.**  
사용자 지정 요청 처리를 위해 삽입된 헤더 목록.

**requestId**  
기본 호스트 서비스에 의해 생성되는 요청의 ID입니다. Application Load Balancer의 경우 추적 ID입니다. 다른 모든 경우 이것이 요청 ID입니다.

**responseCodeSent**  
사용자 지정 응답과 함께 전송된 응답 코드입니다.

**ruleGroupId**  
규칙 그룹의 ID. 규칙에서 요청을 차단한 경우 `ruleGroupID`의 ID는 `terminatingRuleId`의 ID와 동일합니다.

**ruleGroupList**  
일치 정보가 포함된 이 요청에 작용하는 규칙 그룹의 목록.

**terminatingRule**  
요청을 종료한 규칙. 이 정보가 있는 경우 다음 정보가 포함됩니다.    
작업  
요청에 AWS WAF 적용된 종료 작업입니다. 이는 허용, 차단, CAPTCHA 또는 챌린지를 나타냅니다. 웹 요청에 유효한 토큰이 없으면 CAPTCHA 및 Challenge 작업이 종료됩니다.  
ruleId  
요청과 일치하는 규칙의 ID입니다.  
ruleMatchDetails  
요청과 일치하는 규칙에 대한 자세한 정보입니다. 이 필드는 SQL 명령어 삽입 및 크로스 사이트 스크립팅(XSS) 일치 규칙 문에 대해서만 채워집니다. 일치 규칙에는 둘 이상의 검사 기준에 대한 일치가 필요할 수 있으므로 이러한 일치 세부 정보는 일치 기준 배열로 제공됩니다.
각 규칙에 대해 제공되는 추가 정보는 규칙 구성, 규칙 일치 유형, 일치 세부 정보 등의 요소에 따라 달라집니다. 예를 들어 CAPTCHA 또는 Challenge 작업이 있는 규칙의 경우 `captchaResponse` 또는 `challengeResponse`가 나열됩니다. 일치하는 규칙이 규칙 그룹에 있고 구성된 규칙 작업을 재정의한 경우 구성된 작업이 `overriddenAction`에 제공됩니다.

**terminatingRuleId**  
요청을 종료한 규칙의 ID. 요청을 종료하는 규칙이 없으면 이 값은 `Default_Action`입니다.

**terminatingRuleMatchDetails**  
요청과 일치하는 종료 규칙에 대한 자세한 정보입니다. 종료 규칙에는 웹 요청에 대한 검사 프로세스를 종료하는 작업이 포함되어 있습니다. 종료 규칙에 사용 가능한 작업으로는 Allow, Block, CAPTCHA 및 Challenge가 있습니다. 웹 요청을 검사하는 동안 요청과 일치하고 종료 작업이 있는 첫 번째 규칙에서는 검사를 AWS WAF 중지하고 작업을 적용합니다. 웹 요청에는 일치하는 종료 규칙에 대해 로그에 보고된 위협 외에도 다른 위협이 포함될 수 있습니다.  
이는 SQL 명령어 삽입 및 크로스 사이트 스크립팅(XSS) 일치 규칙 문에 대해서만 채워집니다. 일치 규칙에는 둘 이상의 검사 기준에 대한 일치가 필요할 수 있으므로 이러한 일치 세부 정보는 일치 기준 배열로 제공됩니다.

**terminatingRuleType**  
요청을 종료한 규칙의 유형. 가능한 값: RATE\$1BASED, REGULAR, GROUP 및 MANAGED\$1RULE\$1GROUP.

**timestamp**  
밀리초 단위의 타임스탬프.

**uri**  
요청의 URI.

**fragment**  
‘\$1’ 기호 뒤에 오는 URL의 부분으로, \$1section2처럼 리소스에 대한 추가 정보를 제공합니다.

**webaclId**  
보호 팩(웹 ACL)의 GUID.

# 보호 팩(웹 ACL) 트래픽에 대한 로그 예제
<a name="logging-examples"></a>

이 섹션에서는 보호 팩(웹 ACL) 트래픽을 로깅하는 예제를 제공합니다.

**Example 속도 기반 규칙 1: `Header:dogname`으로 설정된 키 하나를 포함하는 규칙 구성**  

```
    {
      "Name": "RateBasedRule",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "Header": {
                "Name": "dogname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RateBasedRule"
      }
    }
```

**Example 속도 기반 규칙 1: 속도 기반 규칙에 의해 차단된 요청의 로그 입력**  

```
{
   "timestamp":1683355579981,
   "formatVersion":1,
   "webaclId": ...,
   "terminatingRuleId":"RateBasedRule",
   "terminatingRuleType":"RATE_BASED",
   "action":"BLOCK",
   "terminatingRuleMatchDetails":[
      
   ],
   "httpSourceName":"APIGW",
   "httpSourceId":"EXAMPLE11:rjvegx5guh:CanaryTest",
   "ruleGroupList":[
      
   ],
   "rateBasedRuleList":[
      {
         "rateBasedRuleId": ...,
         "rateBasedRuleName":"RateBasedRule",
         "limitKey":"CUSTOMKEYS",
         "maxRateAllowed":100,
         "evaluationWindowSec":"120",
         "customValues":[
            {
               "key":"HEADER",
               "name":"dogname",
               "value":"ella"
            }
         ]
      }
   ],
   "nonTerminatingMatchingRules":[
      
   ],
   "requestHeadersInserted":null,
   "responseCodeSent":null,
   "httpRequest":{
      "clientIp":"52.46.82.45",
      "country":"FR",
      "headers":[
         {
            "name":"X-Forwarded-For",
            "value":"52.46.82.45"
         },
         {
            "name":"X-Forwarded-Proto",
            "value":"https"
         },
         {
            "name":"X-Forwarded-Port",
            "value":"443"
         },
         {
            "name":"Host",
            "value":"rjvegx5guh.execute-api.eu-west-3.amazonaws.com"
         },
         {
            "name":"X-Amzn-Trace-Id",
            "value":"Root=1-645566cf-7cb058b04d9bb3ee01dc4036"
         },
         {
            "name":"dogname",
            "value":"ella"
         },
         {
            "name":"User-Agent",
            "value":"RateBasedRuleTestKoipOneKeyModulePV2"
         },
         {
            "name":"Accept-Encoding",
            "value":"gzip,deflate"
         }
      ],
      "uri":"/CanaryTest",
      "args":"",
      "httpVersion":"HTTP/1.1",
      "httpMethod":"GET",
      "requestId":"Ed0AiHF_CGYF-DA="
   }
}
```

**Example 속도 기반 규칙 2: `Header:dogname` 및 `Header:catname`으로 설정된 두 키를 포함하는 규칙 구성**  

```
    {
      "Name": "RateBasedRule",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "Header": {
                "Name": "dogname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            },
            {
              "Header": {
                "Name": "catname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RateBasedRule"
      }
    }
```

**Example 속도 기반 규칙 2: 속도 기반 규칙에 의해 차단된 요청의 로그 입력**  

```
{
   "timestamp":1633322211194,
   "formatVersion":1,
   "webaclId":...,
   "terminatingRuleId":"RateBasedRule",
   "terminatingRuleType":"RATE_BASED",
   "action":"BLOCK",
   "terminatingRuleMatchDetails":[
      
   ],
   "httpSourceName":"APIGW",
   "httpSourceId":"EXAMPLE11:rjvegx5guh:CanaryTest",
   "ruleGroupList":[
      
   ],
   "rateBasedRuleList":[
      {
         "rateBasedRuleId":...,
         "rateBasedRuleName":"RateBasedRule",
         "limitKey":"CUSTOMKEYS",
         "maxRateAllowed":100,
         "evaluationWindowSec":"120",
         "customValues":[
            {
               "key":"HEADER",
               "name":"dogname",
               "value":"ella"
            },
            {
               "key":"HEADER",
               "name":"catname",
               "value":"goofie"
            }
         ]
      }
   ],
   "nonTerminatingMatchingRules":[
      
   ],
   "requestHeadersInserted":null,
   "responseCodeSent":null,
   "httpRequest":{
      "clientIp":"52.46.82.35",
      "country":"FR",
      "headers":[
         {
            "name":"X-Forwarded-For",
            "value":"52.46.82.35"
         },
         {
            "name":"X-Forwarded-Proto",
            "value":"https"
         },
         {
            "name":"X-Forwarded-Port",
            "value":"443"
         },
         {
            "name":"Host",
            "value":"23llbyn8v3.execute-api.eu-west-3.amazonaws.com"
         },
         {
            "name":"X-Amzn-Trace-Id",
            "value":"Root=1-64556629-17ac754c2ed9f0620e0f2a0c"
         },
         {
            "name":"catname",
            "value":"goofie"
         },
         {
            "name":"dogname",
            "value":"ella"
         },
         {
            "name":"User-Agent",
            "value":"Apache-HttpClient/UNAVAILABLE (Java/11.0.19)"
         },
         {
            "name":"Accept-Encoding",
            "value":"gzip,deflate"
         }
      ],
      "uri":"/CanaryTest",
      "args":"",
      "httpVersion":"HTTP/1.1",
      "httpMethod":"GET",
      "requestId":"EdzmlH5OCGYF1vQ="
   }
}
```

**Example SQLi 탐지 시 트리거된 규칙의 로그 출력(종료)**  

```
{
    "timestamp": 1576280412771,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:ap-southeast-2:111122223333:regional/webacl/STMTest/1EXAMPLE-2ARN-3ARN-4ARN-123456EXAMPLE",
    "terminatingRuleId": "STMTest_SQLi_XSS",
    "terminatingRuleType": "REGULAR",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [
        {
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "HIGH",
            "location": "HEADER",
            "matchedData": [
                "10",
                "AND",
                "1"
            ]
        }
    ],
    "httpSourceName": "-",
    "httpSourceId": "-",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [],
    "httpRequest": {
        "clientIp": "1.1.1.1",
        "country": "AU",
        "headers": [
            {
                "name": "Host",
                "value": "localhost:1989"
            },
            {
                "name": "User-Agent",
                "value": "curl/7.61.1"
            },
            {
                "name": "Accept",
                "value": "*/*"
            },
            {
                "name": "x-stm-test",
                "value": "10 AND 1=1"
            }
        ],
        "uri": "/myUri",
        "args": "",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example SQLi 감지 시 트리거된 규칙의 로그 출력(비종료)**  

```
{
    "timestamp":1592357192516
    ,"formatVersion":1
    ,"webaclId":"arn:aws:wafv2:us-east-1:123456789012:global/webacl/hello-world/5933d6d9-9dde-js82-v8aw-9ck28nv9"
    ,"terminatingRuleId":"Default_Action"
    ,"terminatingRuleType":"REGULAR"
    ,"action":"ALLOW"
    ,"terminatingRuleMatchDetails":[]
    ,"httpSourceName":"-"
    ,"httpSourceId":"-"
    ,"ruleGroupList":[]
    ,"rateBasedRuleList":[]
    ,"nonTerminatingMatchingRules":
    [{
        "ruleId":"TestRule"
        ,"action":"COUNT"
        ,"ruleMatchDetails":
        [{
            "conditionType":"SQL_INJECTION"
            ,"sensitivityLevel": "HIGH"
            ,"location":"HEADER"
            ,"matchedData":[
                "10"
                ,"and"
                ,"1"]
            }]
    }]
    ,"httpRequest":{
        "clientIp":"3.3.3.3"
        ,"country":"US"
        ,"headers":[
            {"name":"Host","value":"localhost:1989"}
            ,{"name":"User-Agent","value":"curl/7.61.1"}
            ,{"name":"Accept","value":"*/*"}
            ,{"name":"myHeader","myValue":"10 AND 1=1"}
            ]
            ,"uri":"/myUri","args":""
            ,"httpVersion":"HTTP/1.1"
            ,"httpMethod":"GET"
            ,"requestId":"rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example 규칙 그룹 내에서 트리거된 여러 규칙에 대한 로그 출력(RuleA-XSS는 종료이고 Rule-B는 비종료)**  

```
{
    "timestamp":1592361810888,
    "formatVersion":1,
    "webaclId":"arn:aws:wafv2:us-east-1:123456789012:global/webacl/hello-world/5933d6d9-9dde-js82-v8aw-9ck28nv9"
    ,"terminatingRuleId":"RG-Reference"
    ,"terminatingRuleType":"GROUP"
    ,"action":"BLOCK",
    "terminatingRuleMatchDetails":
    [{
        "conditionType":"XSS"
        ,"location":"HEADER"
        ,"matchedData":["<","frameset"]
    }]
    ,"httpSourceName":"-"
    ,"httpSourceId":"-"
    ,"ruleGroupList":
    [{
        "ruleGroupId":"arn:aws:wafv2:us-east-1:123456789012:global/rulegroup/hello-world/c05lb698-1f11-4m41-aef4-99a506d53f4b"
        ,"terminatingRule":{
            "ruleId":"RuleA-XSS"
            ,"action":"BLOCK"
            ,"ruleMatchDetails":null
            }
        ,"nonTerminatingMatchingRules":
        [{
            "ruleId":"RuleB-SQLi"
            ,"action":"COUNT"
            ,"ruleMatchDetails":
            [{
                "conditionType":"SQL_INJECTION"
                ,"sensitivityLevel": "LOW"
                ,"location":"HEADER"
                ,"matchedData":[
                    "10"
                    ,"and"
                    ,"1"]
            }]
        }]
        ,"excludedRules":null
    }]
    ,"rateBasedRuleList":[]
    ,"nonTerminatingMatchingRules":[]
    ,"httpRequest":{
        "clientIp":"3.3.3.3"
        ,"country":"US"
        ,"headers":
        [
            {"name":"Host","value":"localhost:1989"}
            ,{"name":"User-Agent","value":"curl/7.61.1"}
            ,{"name":"Accept","value":"*/*"}
            ,{"name":"myHeader1","value":"<frameset onload=alert(1)>"}
            ,{"name":"myHeader2","value":"10 AND 1=1"}
            ]
        ,"uri":"/myUri"
        ,"args":""
        ,"httpVersion":"HTTP/1.1"
        ,"httpMethod":"GET"
        ,"requestId":"rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example 콘텐츠 유형이 JSON인 요청 본문 검사를 위해 트리거된 규칙의 로그 출력**  
AWS WAF 는 현재 JSON 본문 검사 위치를 로 보고합니다`UNKNOWN`.  

```
{
    "timestamp": 1576280412771,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:ap-southeast-2:123456789012:regional/webacl/test/111",
    "terminatingRuleId": "STMTest_SQLi_XSS",
    "terminatingRuleType": "REGULAR",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [
        {
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "LOW",
            "location": "UNKNOWN",
            "matchedData": [
                "10",
                "AND",
                "1"
            ]
        }
    ],
    "httpSourceName": "ALB",
    "httpSourceId": "alb",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [],
    "requestHeadersInserted":null,
    "responseCodeSent":null,
    "httpRequest": {
        "clientIp": "1.1.1.1",
        "country": "AU",
        "headers": [],
        "uri": "",
        "args": "",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "POST",
        "requestId": "null"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example 유효하고 만료되지 않은 CAPTCHA 토큰을 사용하는 웹 요청에 대한 CAPTCHA 규칙의 로그 출력**  
다음 로그 목록은 CAPTCHA 작업을 포함하는 규칙과 일치하는 웹 요청에 대한 것입니다. 웹 요청에는 유효하고 만료되지 않은 CAPTCHA 토큰이 있으며 AWS WAF, Count 작업 동작과 유사하게에 의한 CAPTCHA 일치로만 기록됩니다. 이 CAPTCHA 일치는 `nonTerminatingMatchingRules` 아래에 나와 있습니다.  

```
{
  "timestamp": 1632420429309,
  "formatVersion": 1,
  "webaclId": "arn:aws:wafv2:us-east-1:123456789012:regional/webacl/captcha-web-acl/585e38b5-afce-4d2a-b417-14fb08b66c67",
  "terminatingRuleId": "Default_Action",
  "terminatingRuleType": "REGULAR",
  "action": "ALLOW",
  "terminatingRuleMatchDetails": [],
  "httpSourceName": "APIGW",
  "httpSourceId": "123456789012:b34myvfw0b:pen-test",
  "ruleGroupList": [],
  "rateBasedRuleList": [],
  "nonTerminatingMatchingRules": [
    {
      "ruleId": "captcha-rule",
      "action": "CAPTCHA",
      "ruleMatchDetails": [],
      "captchaResponse": {
        "responseCode": 0,
        "solveTimestamp": 1632420429
      }
    }
  ],
  "requestHeadersInserted": [
    {
      "name": "x-amzn-waf-test-header-name",
      "value": "test-header-value"
    }
  ],
  "responseCodeSent": null,
  "httpRequest": {
    "clientIp": "72.21.198.65",
    "country": "US",
    "headers": [
      {
        "name": "X-Forwarded-For",
        "value": "72.21.198.65"
      },
      {
        "name": "X-Forwarded-Proto",
        "value": "https"
      },
      {
        "name": "X-Forwarded-Port",
        "value": "443"
      },
      {
        "name": "Host",
        "value": "b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com"
      },
      {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-614cc24d-5ad89a09181910c43917a888"
      },
      {
        "name": "cache-control",
        "value": "max-age=0"
      },
      {
        "name": "sec-ch-ua",
        "value": "\"Chromium\";v=\"94\", \"Google Chrome\";v=\"94\", \";Not A Brand\";v=\"99\""
      },
      {
        "name": "sec-ch-ua-mobile",
        "value": "?0"
      },
      {
        "name": "sec-ch-ua-platform",
        "value": "\"Windows\""
      },
      {
        "name": "upgrade-insecure-requests",
        "value": "1"
      },
      {
        "name": "user-agent",
        "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"
      },
      {
        "name": "accept",
        "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      },
      {
        "name": "sec-fetch-site",
        "value": "same-origin"
      },
      {
        "name": "sec-fetch-mode",
        "value": "navigate"
      },
      {
        "name": "sec-fetch-user",
        "value": "?1"
      },
      {
        "name": "sec-fetch-dest",
        "value": "document"
      },
      {
        "name": "referer",
        "value": "https://b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com/pen-test/pets"
      },
      {
        "name": "accept-encoding",
        "value": "gzip, deflate, br"
      },
      {
        "name": "accept-language",
        "value": "en-US,en;q=0.9"
      },
      {
        "name": "cookie",
        "value": "aws-waf-token=51c71352-41f5-4f6d-b676-c24907bdf819:EQoAZ/J+AAQAAAAA:t9wvxbw042wva7E2Y6lgud/bS6YG0CJKVAJqaRqDZ140ythKW0Zj9wKB2O8lSkYDRqf1yONcVBFo5u0eYi0tvT4rtQCXsu+KanAardW8go4QSLw4yoED59lgV7oAhGyCalAzE7ra29j+RvvZPsQyoQuDCrtoY/TvQyMTXIXzGPDC/rKBbg=="
      }
    ],
    "uri": "/pen-test/pets",
    "args": "",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "GINMHHUgoAMFxug="
  }
}
```

**Example CAPTCHA 토큰이 없는 웹 요청에 대한 CAPTCHA 규칙의 로그 출력**  
다음 로그 목록은 CAPTCHA 작업을 포함하는 규칙과 일치하는 웹 요청에 대한 것입니다. 웹 요청에 CAPTCHA 토큰이 없고에 의해 차단되었습니다 AWS WAF.  

```
{
  "timestamp": 1632420416512,
  "formatVersion": 1,
  "webaclId": "arn:aws:wafv2:us-east-1:123456789012:regional/webacl/captcha-web-acl/585e38b5-afce-4d2a-b417-14fb08b66c67",
  "terminatingRuleId": "captcha-rule",
  "terminatingRuleType": "REGULAR",
  "action": "CAPTCHA",
  "terminatingRuleMatchDetails": [],
  "httpSourceName": "APIGW",
  "httpSourceId": "123456789012:b34myvfw0b:pen-test",
  "ruleGroupList": [],
  "rateBasedRuleList": [],
  "nonTerminatingMatchingRules": [],
  "requestHeadersInserted": null,
  "responseCodeSent": 405,
  "httpRequest": {
    "clientIp": "72.21.198.65",
    "country": "US",
    "headers": [
      {
        "name": "X-Forwarded-For",
        "value": "72.21.198.65"
      },
      {
        "name": "X-Forwarded-Proto",
        "value": "https"
      },
      {
        "name": "X-Forwarded-Port",
        "value": "443"
      },
      {
        "name": "Host",
        "value": "b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com"
      },
      {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-614cc240-18b57ff33c10e5c016b508c5"
      },
      {
        "name": "sec-ch-ua",
        "value": "\"Chromium\";v=\"94\", \"Google Chrome\";v=\"94\", \";Not A Brand\";v=\"99\""
      },
      {
        "name": "sec-ch-ua-mobile",
        "value": "?0"
      },
      {
        "name": "sec-ch-ua-platform",
        "value": "\"Windows\""
      },
      {
        "name": "upgrade-insecure-requests",
        "value": "1"
      },
      {
        "name": "user-agent",
        "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"
      },
      {
        "name": "accept",
        "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      },
      {
        "name": "sec-fetch-site",
        "value": "cross-site"
      },
      {
        "name": "sec-fetch-mode",
        "value": "navigate"
      },
      {
        "name": "sec-fetch-user",
        "value": "?1"
      },
      {
        "name": "sec-fetch-dest",
        "value": "document"
      },
      {
        "name": "accept-encoding",
        "value": "gzip, deflate, br"
      },
      {
        "name": "accept-language",
        "value": "en-US,en;q=0.9"
      }
    ],
    "uri": "/pen-test/pets",
    "args": "",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "GINKHEssoAMFsrg="
  },
  "captchaResponse": {
    "responseCode": 405,
    "solveTimestamp": 0,
    "failureReason": "TOKEN_MISSING"
  }
}
```

# 데이터 보호
<a name="data-protection-masking"></a>

AWS WAF 데이터 보호 설정을 사용하면 헤더, 파라미터 및 본문 콘텐츠와 같은 특정 데이터 필드에 민감한 정보(암호, API 키, 인증 토큰 및 기타 기밀 데이터)에 대한 사용자 지정되고 세분화된 보호를 구현할 수 있습니다.

다음 중 하나에서 데이터 보호를 구성할 수 있습니다.
+ 모든 출력 대상에 적용되는 보호 팩(웹 ACL) 수준입니다.
+ 가 구성된 로깅 대상으로 AWS WAF 보내는 데이터에만 영향을 미치는 로깅 전용입니다.

데이터 보호는 대체 또는 해싱으로 지정할 수 있습니다.

대체란 콘텐츠를 `REDACTED` 단어로 대체하는 것을 말합니다.

 해싱은 문자열에서 SHA-256 바이너리로 Base64로 콘텐츠를 대체하는 것을 말합니다.

1. 먼저 알고리즘은 account\$1number 및 콘텐츠에서 문자열을 빌드합니다.

1. 그런 다음 SHA-256을 적용하여 바이너리 해시를 생성합니다.

1. 마지막으로 Base64를 사용하여 해당 바이트를 인코딩합니다.

**작은 정보**  
 적합한 데이터 보호 방법을 선택하기 전에 SHA-256 해싱의 특성을 검토하여 요구 사항을 충족하는지 확인해야 합니다. 암호화 또는 토큰화와 동등한 결과를 얻으려면 SHA-256 해싱에 의존하지 않는 것이 좋습니다.

**Topics**
+ [데이터 보호 활성화](enable-protection.md)
+ [데이터 보호 예외](data-protection-exceptions.md)
+ [데이터 보호 제한](data-protection-limitations.md)
+ [데이터 보호의 예](data-protection-examples.md)
+ [보호 팩(웹 ACL)에 대한 데이터 보호 구성](data-protection-configure.md)

# 데이터 보호 활성화
<a name="enable-protection"></a>

이 섹션에서는 콘솔에서 선택할 수 있는 데이터 보호 및 로그 구성 옵션에 대해 설명합니다. 특정 필드에서 데이터 보호를 활성화하여 로그에 나타나는 데이터를 보호할 수 있습니다. 데이터 보호를 적용하여 전체 로그, 샘플 요청, Security Lake 등 다양한 유형의 출력에서 민감한 정보를 변환할 수 있습니다.

** AWS WAF 콘솔에서 데이터 보호를 활성화하려면**

콘솔에서 **보호 팩(웹 ACL)** 페이지로 이동하여 **보호 설정을 활성화합니다**. 로그에 대한 데이터 보호를 활성화하려면 모든 로그에 적용할지 또는 특정 로깅 대상에 적용할지 선택합니다. 자세한 내용은 [보호 팩(웹 ACL) 트래픽에 대한 로그 필드](logging-fields.md) 단원을 참조하세요.

**참고**  
모든 로깅에 데이터 보호를 적용하기 위해 로깅을 활성화할 필요는 없습니다. 데이터 보호는 로깅 활성화 여부에 관계없이 모든 출력 대상에 적용됩니다.

**보호 설정 활성화** 페이지 하단의 **데이터 보호 필드** 패널에서 **필드 추가** 버튼을 선택합니다. 드롭다운 메뉴에서 필드 유형을 선택합니다. 각 필드의 데이터가 데이터 보호로 보호되는 방법에 대한 자세한 내용은 아래 표를 참조하세요.


| 필드 유형 | 세부 정보 | 
| --- | --- | 
|  `Single header`  |  지정된 옵션(해싱 또는 자막)에 따라 지정된 헤더 키 값을 영구적으로 변환합니다. 변환된 값은 전체 로그에도 반영됩니다.  | 
|  `Body`  |  본문 값을 영구적으로 변환합니다. 로그의 `RuleMatchDetails`에만 적용됩니다.  | 
|  `Query string`  |  지정된 옵션(해싱 또는 자막)에 따라 쿼리 문자열을 영구적으로 변환합니다. 변환된 값은 전체 로그에도 반영됩니다.  | 
|  `Single query argument`  |  지정된 옵션(해싱 또는 자막)에 따라 지정된 쿼리 arg 값을 영구적으로 변환합니다. 변환된 값은 전체 로그에도 반영됩니다.  | 
|  `Single cookie`  |  지정된 옵션(해싱 또는 자막)에 따라 쿠키 값을 영구적으로 변환합니다. 변환된 값은 전체 로그에도 반영됩니다.  | 

# 데이터 보호 예외
<a name="data-protection-exceptions"></a>

활성화하면 `RuleMatchDetails` 및 `rateBasedRuleList`를 포함하여 활성화된 필드에 데이터 보호가 적용됩니다. 그러나 문제 해결 및 가시성 목적으로 `RuleMatchDetails` 및 `rateBasedRuleList`에 보호된 데이터와 콘텐츠를 포함하려는 경우가 있습니다. 이러한 시나리오에서는 해당 필드의 데이터 보호에 대한 예외를 지정할 수 있습니다.
+ **`ExcludeRuleMatchDetails`**: 특정 필드에 대해 이 예외를 지정하면 `RuleMatchDetails`는 필드 값을 표시하며 데이터 보호 범위에 포함되지 않습니다.
+ **`ExcludeRateBasedDetails`**: 특정 필드에 대해 이 예외를 지정하면 `rateBasedRuleList`는 필드 값을 표시하며 데이터 보호 범위에 포함되지 않습니다.

  예시: `ExcludeRateBasedDetails` 규칙은 ‘dogname’에 대해 **SINGLE\$1HEADER** 및 **HEADER\$1NAME**에서 활성화됩니다.

  규칙에 예외가 적용되지 않으면 ‘dogname’ 값이 `REDACTED`로 표시됩니다.

  ```
  "rateBasedRuleList":[ {"rateBasedRuleId": ...,
                          "rateBasedRuleName":"RateBasedRule", "limitKey":"CUSTOMKEYS",
                          "maxRateAllowed":100, "evaluationWindowSec":"120", "customValues":[
                          {"key":"HEADER", "name":"dogname", "value":"REDACTED" } ] } ]
  ```

  규칙에 예외가 활성화된 경우 ‘dogname’ 값이 로그에 표시됩니다.

  ```
   "rateBasedRuleList":[ {"rateBasedRuleId": ...,
                          "rateBasedRuleName":"RateBasedRule", "limitKey":"CUSTOMKEYS",
                          "maxRateAllowed":100, "evaluationWindowSec":"120", "customValues":[
                          {"key":"HEADER", "name":"dogname", "value":"ELLA" } ] } ]
  ```

**주의**  
데이터 보호 기능은 문제 해결 AWS WAF 기능에 잠재적으로 영향을 미칠 수 있습니다. 이러한 설정은 예상치 못한 탐지 및 완화 동작을 일으킬 수 있습니다. 특정 파라미터에 대한 데이터 보호를 절대적으로 필요한 파라미터로만 제한합니다.

# 데이터 보호 제한
<a name="data-protection-limitations"></a>

다음은 데이터 보호를 사용할 때 고려해야 할 제한 사항입니다.

## QueryString 및 SingleQueryArg
<a name="queries"></a>

**QueryString 보호**
+ `QueryString`의 데이터 보호는 모든 쿼리 인수에 적용되며 지정된 설정에 따라 키와 값을 모두 대체/해시합니다.

**`RuleMatch` 세부 정보 및 `RateBased` 규칙 목록의 QueryString**
+ 데이터 보호가 단일 쿼리 인수에 적용되는 경우 전체 쿼리 문자열은 전체 로그의 `RuleMatchDetails` 및 `RateBasedRule` 섹션에서 대체/해시됩니다.
+ 여러 개의 단일 쿼리 인수에 서로 다른 보호 방법(대체 및 해싱)이 지정되면 더 엄격한 방법인 대체가 전체 로그의 `RuleMatchDetails` 및 `RateBasedRule` 섹션의 전체 쿼리 문자열에 적용됩니다.

## 쿠키
<a name="cookies"></a>

**참고**  
 데이터 보호는 단일 헤더 쿠키가 보호되는 경우에만 쿠키 값에 적용됩니다.

**`RuleMatchDetails` 및 `RateBasedRule` 목록의 단일 쿠키**
+ 데이터 보호가 단일 쿠키에 적용되는 경우 전체 쿠키 헤더는 전체 로그의 `RuleMatchDetails` 및 `RateBasedRule` 섹션에서 대체/해시됩니다.
+ 다른 보호 방법(대체 및 해싱)이 지정되는 경우 더 엄격한 방법인 대체가 전체 로그의 `RuleMatchDetails` 및 `RateBasedRule` 섹션의 전체 쿠키에 적용됩니다.

# 데이터 보호의 예
<a name="data-protection-examples"></a>

이 섹션에서는 보호 팩(웹 ACL) 트래픽의 데이터 보호 로깅에 대한 로그 예제를 제공합니다.

## DataProtection 해싱
<a name="dataprotection-hashing"></a>

Webacl 구성

```
"data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_QUERY_ARGUMENT",
                        "field_keys": [
                            "hoppy"
                        ]
                    },
                    "action": "HASH",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

예제 DataProtection 해싱: SingleQuery 인수 ‘hoppy’가 보호된 로그 항목입니다.

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [{
        "ruleId": "ProtectedSQLIHeadersVisibleInSTM",
        "action": "COUNT",
        "ruleMatchDetails": [{
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": [ "z6hpYAFaMYdtiTeHhxnN5ydgRE5E1WgyVIdgqH0D3iM=" ],
                "matchedFieldName": "hoppy"
        }]
    }],
"requestHeadersInserted": null,
"responseCodeSent": null,
"httpRequest": {
    "clientIp": "54.239.98.137",
    "country": "US",
    "headers": [{
        "name": "X-Forwarded-For",
        "value": "54.239.98.137"
    }, {
        "name": "X-Forwarded-Proto",
        "value": "https"
    }, {
        "name": "X-Forwarded-Port",
        "value": "443"
    }, {
        "name": "Host",
        "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
    }, {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
    }, {
        "name": "Accept-Encoding",
        "value": "gzip"
    }, {
        "name": "User-Agent",
        "value": "okhttp/3.12.1"
    }],
    "uri": "/CanaryTest",
    "args": "hoppy=z6hpYAFaMYdtiTeHhxnN5ydgRE5E1WgyVIdgqH0D3iM=&yellow=hello&x-hoppy-extra=generic-%3Cwords%3E-in-angle-brackets",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "FepO0F8fIAMEqoQ="
},
"labels": [{
    "name": "awswaf:forwardedip:geo:country:US"
}, {
    "name": "awswaf:forwardedip:geo:region:US-VA"
}]
}
```

## DataProtection 대체
<a name="dataprotection-substitution"></a>

Webacl 구성

```
"data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_QUERY_ARGUMENT",
                        "field_keys": [
                            "hoppy"
                        ]
                    },
                    "action": "SUBSTITUTION",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

예제 DataProtection 대체: 단일 쿼리 인수 ‘hoppy’가 보호된 로그 항목

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": []
"requestHeadersInserted": null,
"responseCodeSent": null,
"httpRequest": {
    "clientIp": "54.239.98.137",
    "country": "US",
    "headers": [{
        "name": "X-Forwarded-For",
        "value": "54.239.98.137"
    }, {
        "name": "X-Forwarded-Proto",
        "value": "https"
    }, {
        "name": "X-Forwarded-Port",
        "value": "443"
    }, {
        "name": "Host",
        "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
    }, {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
    }, {
        "name": "Accept-Encoding",
        "value": "gzip"
    }, {
        "name": "User-Agent",
        "value": "okhttp/3.12.1"
    }],
    "uri": "/CanaryTest",
    "args": "hoppy=REDACTED&yellow=hello&x-hoppy-extra=generic-%3Cwords%3E-in-angle-brackets",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "FepO0F8fIAMEqoQ="
},
"labels": [{
    "name": "awswaf:forwardedip:geo:country:US"
}, {
    "name": "awswaf:forwardedip:geo:region:US-VA"
}]
}
```

## RuleMatchDetails에 데이터 보관
<a name="rulematchdetails-retain-data"></a>

Webacl 구성

```
"data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_HEADER",
                        "field_keys": [
                            "hoppy"
                        ]
                    },
                    "action": "HASH",
                    "exclude_rule_match_details": true,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

RuleMatchDetails의 데이터 보존 예제: 단일 `Header` ‘hoppy’가 보호되지만 값이 `RuleMatchDetails`에만 유지되는 로그 항목입니다.

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [{
        "ruleId": "ProtectedSQLIHeadersVisibleInSTM",
        "action": "COUNT",
        "ruleMatchDetails": [{
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "HEADER",
                "matchedData": [ "10", "AND", "1" ],
                "matchedFieldName": "hoppy"
        }]
    }],
"requestHeadersInserted": null,
"responseCodeSent": null,
"httpRequest": {
    "clientIp": "54.239.98.137",
    "country": "US",
    "headers": [{
        "name": "X-Forwarded-For",
        "value": "54.239.98.137"
    }, {
        "name": "X-Forwarded-Proto",
        "value": "https"
    }, {
        "name": "X-Forwarded-Port",
        "value": "443"
    }, {
        "name": "Host",
        "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
    }, {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
    }, {
        "name": "hoppy",
        "value": "zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE="
    }, {
        "name": "Accept-Encoding",
        "value": "gzip"
    }, {
        "name": "User-Agent",
        "value": "okhttp/3.12.1"
    }, {
        "name": "hoppy",
        "value": "z6hpYAFaMYdtiTeHhxnN5ydgRE5E1WgyVIdgqH0D3iM="
    }],
    "uri": "/CanaryTest",
    "args": "happy=true",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "FepO0F8fIAMEqoQ="
},
"labels": [{
    "name": "awswaf:forwardedip:geo:country:US"
}, {
    "name": "awswaf:forwardedip:geo:region:US-VA"
}]
}
```

## rateBasedRule에 데이터 보관
<a name="ratebasedrule-retain-data"></a>

```
 "data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_HEADER",
                        "field_keys": [
                            "hoppy"
                        ]
                    },
                    "action": "HASH",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": true
                }
             ]
           }
```

rateBasedRuleList의 데이터 보존 예제: 단일 `Header` ‘hoppy’가 보호되지만 값이 `rateBasedRuleList`에만 유지되는 로그 항목

```
{
    "timestamp": 1683355579981,
    "formatVersion": 1,
    "webaclId": ...,
    "terminatingRuleId": "RateBasedRule",
    "terminatingRuleType": "RATE_BASED",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "EXAMPLE11:rjvegx5guh:CanaryTest",
    "ruleGroupList": [],
    "rateBasedRuleList": [{
        "rateBasedRuleId": ...,
        "rateBasedRuleName": "RateBasedRule",
        "limitKey": "CUSTOMKEYS",
        "maxRateAllowed": 100,
        "evaluationWindowSec": "120",
        "customValues": [{
            "key": "HEADER",
            "name": "hoppy",
            "value": "ella"
        }]
    }],
    "nonTerminatingMatchingRules": [],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "52.46.82.45",
        "country": "FR",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "52.46.82.45"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "rjvegx5guh.execute-api.eu-west-3.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-645566cf-7cb058b04d9bb3ee01dc4036"
        }, {
            "name": "hoppy",
            "value": "zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE="
        }, {
            "name": "User-Agent",
            "value": "RateBasedRuleTestKoipOneKeyModulePV2"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip,deflate"
        }],
        "uri": "/CanaryTest",
        "args": "",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "Ed0AiHF_CGYF-DA="
    }
}
```

## 본문 데이터 보호
<a name="dataprotection-body"></a>

AWS WAF 에서 본문의 하위 집합만 로깅합니다`RuleMatchDetails`.

Webacl 구성

```
 "data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "BODY"
                    },
                    "action": "SUBSTITUTE",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

본문에 대한 예제 DataProtection: 본문이 `ruleMatchDetails`에 대체된 로그 항목입니다.

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [{
        "ruleId": "ProtectedSQLIBody",
        "action": "COUNT",
        "ruleMatchDetails": [{
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "HIGH",
            "location": "BODY",
            "matchedData": ["REDACTED"]
        }]
    }],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }, {
            "name": "cookie",
            "value": "hoppy=dog;"
        }],
        "uri": "/CanaryTest",
        "args": "baloo=abc&hoppy-query=xyz&x-hoppy-extra=generic-%3Cwords%3E-in-angle-brackets",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## `SINGLE_COOKIE` 데이터 보호
<a name="single-cookie-data-protection"></a>

Webacl 구성

```
 "data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_COOKIE",
                        "field_keys": [
                            "MILO"
                        ]
                    },
                    "action": "HASH",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

`SINGLE_COOKIE`에 대한 예제 DataProtection: `SINGLE_COOKIE` 이름이 ‘MILO’로 보호된 로그 항목입니다.

전체 로그에는 MILO라는 쿠키가 `ruleMatchDetails`에서 보호되고 쿠키 헤더가 표시됩니다. 쿠키 값만 보호되고 키 이름은 제외됩니다.

**참고**  
모든 보호 필드(단일 헤더, 쿠키, 쿼리 arg)는 대/소문자를 구분하지 않습니다. 따라서 이 예제에서 ‘MILO’는 ‘milo’와 일치합니다.

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [{
        "ruleId": "ProtectedSQLIHeadersVisibleInSTM",
        "action": "COUNT",
        "ruleMatchDetails": [{
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "HIGH",
            "location": "COOKIE",
            "matchedData": ["zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE="],
            "matchedFieldName": "milo"
        }]
    }],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }, {
            "name": "cookie",
            "value": "hoppy=dog;milo=zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE=;aws-waf-token=51c71352-41f5-4f6d-b676-c24907bdf819:EQoAZ/J+AAQAAAAA:t9wvxbw042wva7E2Y6lgud/bS6YG0CJKVAJqaRqDZ140ythKW0Zj9wKB2O8lSkYDRqf1yONcVBFo5u0eYi0tvT4rtQCXsu+KanAardW8go4QSLw4yoED59lgV7oAhGyCalAzE7ra29j+RvvZPsQyoQuDCrtoY/TvQyMTXIXzGPDC/rKBbg=="
        }],
        "uri": "/CanaryTest",
        "args": "baloo=abc&hoppy-query=xyz&x-hoppy-extra=generic-%3Cwords%3E-in-angle-brackets",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## 모든 쿠키에 대한 데이터 보호
<a name="all-cookies-data-protection"></a>

`SINGLE_HEADER`를 사용하여 쿠키에 대한 데이터 보호를 구성할 수 있습니다. 쿠키 값만 보호되고 키 이름은 제외됩니다.

```
"DataProtectionConfig": {
    "DataProtections": [
        {
            "Field": {
                "FieldType": "SINGLE_HEADER",
                "FieldKeys": ["cookie"]
            },
            "Action": "SUBSTITUTION",
            "ExcludeRuleMatchDetails": false,
            "ExcludeRateBasedDetails": false
        }
    ]
}
```

`header ` ‘COOKIE’에 대한 예제 DataProtection: 쿠키 헤더가 보호된 로그 항목입니다.

**참고**  
쿠키 이름 `AWS-WAF-TOKEN`은 데이터 보호 범위를 벗어납니다.

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }, {
            "name": "cookie",
            "value": "hoppy=REDACTED;milo=REDACTED;aws-waf-token=51c71352-41f5-4f6d-b676-c24907bdf819:EQoAZ/J+AAQAAAAA:t9wvxbw042wva7E2Y6lgud/bS6YG0CJKVAJqaRqDZ140ythKW0Zj9wKB2O8lSkYDRqf1yONcVBFo5u0eYi0tvT4rtQCXsu+KanAardW8go4QSLw4yoED59lgV7oAhGyCalAzE7ra29j+RvvZPsQyoQuDCrtoY/TvQyMTXIXzGPDC/rKBbg=="
        }],
        "uri": "/CanaryTest",
        "args": "baloo=xyz=&hoppy-query=abc&x-hoppy-extra=abc",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## 단일 쿼리 인수에 대한 데이터 보호
<a name="single-query-argument"></a>

`SINGLE_QUERY_ARGUMENT`를 사용하여 쿼리 문자열에 대한 데이터 보호를 구성할 수 있습니다. 이는 모든 쿼리 arg의 키와 값에 영향을 줍니다. 다음 예제의 경우 원래 쿼리 문자열은 `baloo=10 AND 1=1&hoppy=10 AND 1=1&x-hoppy-extra=generic-%3Cwords`이었습니다.

Webacl 구성

```
"DataProtectionConfig": {
   "DataProtections": [
        {
            "Field": {
                "FieldType": "SINGLE_QUERY_ARGUMENT",
                "FieldKeys": ["hoppy"]
            },
            "Action": "SUBSTITUTION",
            "ExcludeRuleMatchDetails": false,
            "ExcludeRateBasedDetails": false
        }
    ]
}
```

`SINGLE_QUERY_ARGUEMENT`에 대한 예제 DataProtection: 대체로 보호되는 ‘hoppy’ 쿼리 문자열이 있는 로그 항목입니다.

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionSubstituteQueryString/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [
      {
        "ruleId": "ProtectedHoppyQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": ["REDACTED"],
                "matchedFieldName": "hoppy"
            }]
      },
      {
        "ruleId": "FullQueryStringInspectionWhichDetectsTheFirstFieldWithSQLi_Baloo_IsAlsoMaskedMasked",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "QUERY_ARGS",
                "matchedData": ["REDACTED"],
            }]
      },
      {
        "ruleId": "ProtectedBalooQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": [ "10", "AND", "1" ],
                "matchedFieldName": "baloo"
            }]
      }
    ],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }],
        "uri": "/CanaryTest",
        "args": "baloo=10 AND 1=1&hoppy=REDACTED&x-hoppy-extra=generic-%3Cwords",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## 쿼리 문자열에 대한 데이터 보호
<a name="data-protection-query-string"></a>

`QUERY_STRING`를 사용하여 쿼리 문자열에 대한 데이터 보호를 구성할 수 있습니다. 이는 모든 쿼리 arg의 키와 값에 영향을 줍니다. 다음 예제의 경우 원래 쿼리 문자열은 `baloo=10 AND 1=1&hoppy-query=10 AND 1=1&x-hoppy-extra=generic-%3Cwords`이었습니다.

Webacl 구성

```
"DataProtectionConfig": {
 "DataProtections": [
 {
 "Field": {
 "FieldType": "QUERY_STRING"
 },
 "Action": "SUBSTITUTION",
 "ExcludeRuleMatchDetails": false,
 "ExcludeRateBasedDetails": false
 }
 ]
}
```

`QUERY_STRING`에 대한 예제 DataProtection: 대체로 보호되는 쿼리 문자열이 있는 로그 항목입니다.

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionSubstituteQueryString/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [
      {
        "ruleId": "ProtectedHoppyQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "QUERY_STRING",
                "matchedData": ["REDACTED"]
            }]
      },
      {
        "ruleId": "ProtectedBalooQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": [ "REDACTED" ],
                "matchedFieldName": "REDACTED"
            }]
      }
    ],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }],
        "uri": "/CanaryTest",
        "args": "REDACTED",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## 여러 쿼리 인수에 대한 데이터 보호
<a name="data-protection-multiple-query-arguments"></a>

`SINGLE_QUERY_ARGUMENT`를 사용하여 개별 쿼리 arg에 대한 데이터 보호를 구성할 수 있습니다. 로컬 정보를 보고할 때 로컬 보호를 사용합니다. 그러나 쿼리 문자열과 쿠키 헤더에서 일치하는 문자열에는 적용할 수 있는 보호 구성이 많습니다. 간소화하기 위해 일치하는 특정 데이터 범위와 겹치지 않더라도 `RuleMatchDetails`에 대한 가장 엄격한 보호가 적용됩니다.

다음 예제의 경우 원래 쿼리 문자열은 `baloo=is_a_good_boy&hoppy=likes_to_sleep&x-hoppy-extra=10 AND 1=1`이었습니다.

```
"DataProtectionConfig": {
    "DataProtections": [
        {
            "Field": {
                "FieldType": "SINGLE_QUERY_ARGUMENT",
                "FieldKeys": ["hoppy"]
            },
            "Action": "SUBSTITUTION",
            "ExcludeRuleMatchDetails": false,
            "ExcludeRateBasedDetails": false
        },
        {
            "Field": {
                "FieldType": "SINGLE_QUERY_ARGUMENT",
                "FieldKeys": ["baloo"]
            },
            "Action": "HASH",
            "ExcludeRuleMatchDetails": false,
            "ExcludeRateBasedDetails": false
        }
    ]
}
```

여러 쿼리 인수에 대한 예제 DataProtection입니다.

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionSubstituteQueryString/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [
      {
        "ruleId": "ProtectedHoppyQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": ["REDACTED"],
                "matchedFieldName": "hoppy"
            }]
      },
      {
        "ruleId": "ProtectedBalooQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": ["zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE="],
                "matchedFieldName": "baloo"
            }]
      },
      {
        "ruleId": "FullQueryStringDetects_x-hoppy-extra_IsSubstituted",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "QUERY_ARGS",
                "matchedData": ["REDACTED"],  // Harshest of Protection Config
            }]
      }
    ],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }],
        "uri": "/CanaryTest",
        "args": "baloo=zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE=&hoppy=REDACTED&x-hoppy-extra=10 AND 1=1",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

**참고**  
동일한 webACL에서 **QueryString 마스킹**과 **단일 쿼리 Arg 마스킹**을 모두 지정할 수는 없습니다.

# 보호 팩(웹 ACL)에 대한 데이터 보호 구성
<a name="data-protection-configure"></a>

이 섹션에서는 보호 팩(웹 ACL)에 대한 데이터 보호를 구성하는 지침을 제공합니다.

**보호 팩(웹 ACL)에 대한 데이터 보호를 구성하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **보호 팩(웹 ACL)**을 선택합니다.

1. 데이터 보호를 활성화하려는 보호 팩(웹 ACL)의 이름을 선택합니다. 콘솔에서 보호 팩(웹 ACL)의 설명으로 이동하여 여기에서 설명을 편집할 수 있습니다.

1. **로깅 및 지표** 탭의 **데이터 보호 설정** 창에서 **활성화** 또는 **편집**을 선택합니다.

1. **글로벌** 범위를 선택한 다음 필드 데이터 보호를 선택합니다. 각 필드 데이터 보호 구성에 대해 보호 동작에서 제외할 예외를 지정할 수도 있습니다.

1. 선택을 완료한 후 **저장**을 선택합니다. 인터페이스는 선택 항목이 요약되는 **로깅 및 지표** 탭으로 돌아갑니다.

# AWS WAF 보호 기능 테스트 및 튜닝
<a name="web-acl-testing"></a>

이 섹션에서는 AWS WAF 보호 팩(웹 ACLs), 규칙, 규칙 그룹, IP 세트 및 정규식 패턴 세트를 테스트하고 튜닝하기 위한 지침을 제공합니다.

웹 사이트 또는 웹 애플리케이션 트래픽에 적용하기 전에 AWS WAF 보호 팩(웹 ACL)에 대한 변경 사항을 테스트하고 조정하는 것이 좋습니다.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 보호 팩(웹 ACL) 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 스테이징 또는 테스트 환경에서 이를 테스트하고 조정합니다. 그런 다음 프로덕션 트래픽을 사용하여 규칙을 개수 모드에서 테스트하고 조정한 다음 활성화합니다.

또한 이 섹션에서는 다른 사람이 관리하는 규칙 그룹의 사용을 테스트하기 위한 일반적인 지침을 제공합니다. 여기에는 AWS 관리형 규칙 규칙 그룹, AWS Marketplace 관리형 규칙 그룹 및 다른 계정에서 공유하는 규칙 그룹이 포함됩니다. 이러한 규칙 그룹의 경우 규칙 그룹 공급자로부터 받은 지침도 따르십시오.
+ Bot Control AWS 관리형 규칙 규칙 그룹에 대해서는 단원을 참조하십시오[AWS WAF Bot Control 테스트 및 배포](waf-bot-control-deploying.md).
+ 계정 탈취 방지 AWS 관리형 규칙 규칙 그룹에 대해서는 단원을 참조하십시오[ATP 테스트 및 배포](waf-atp-deploying.md).
+ 계정 생성 사기 방지 AWS 관리형 규칙 그룹도 섹션을 참조하세요[ACFP 테스트 및 배포](waf-acfp-deploying.md).

**업데이트 중 일시적인 불일치**  
보호 팩(웹 ACL) 또는 기타 AWS WAF 리소스를 생성하거나 변경하면 리소스가 저장된 모든 영역에 변경 사항이 전파되는 데 약간의 시간이 걸립니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다.

다음은 변경 전파 중에 표시될 수 있는 일시적 불일치의 예입니다.
+ 보호 팩(웹 ACL)을 생성한 후 이를 리소스에 연결하려고 하면 보호 팩(웹 ACL)을 사용할 수 없다는 예외가 발생할 수 있습니다.
+ 보호 팩(웹 ACL)에 규칙 그룹을 추가한 후 새 규칙 그룹 규칙이 보호 팩(웹 ACL)이 사용되는 한 영역에는 적용되고 다른 영역에서는 적용되지 않을 수 있습니다.
+ 규칙 작업 설정을 변경한 후 일부 위치에서 이전 작업이 표시되고 다른 위치에서는 새 작업이 표시될 수 있습니다.
+ 차단 규칙에서 사용되는 IP 집합에 IP 주소를 추가한 후 새 주소가 한 영역에서는 차단되는데 다른 영역에서 계속 허용될 수도 있습니다.

# 상위 단계 테스트 및 조정
<a name="web-acl-testing-high-level"></a>

이 섹션은 웹 ACL에서 사용하는 규칙 또는 규칙 그룹을 포함하여 웹 ACL의 변경 사항을 테스트하는 단계의 체크리스트를 제공합니다.

**참고**  
이 섹션의 지침을 따르려면 보호 팩(웹 ACL), 규칙, 규칙 그룹과 같은 AWS WAF 보호 기능을 생성하고 관리하는 방법을 이해해야 합니다. 이 정보는 이 가이드의 이전 섹션에 설명되어 있습니다.

**보호 팩(웹 ACL) 테스트 및 조정**

이러한 단계를 먼저 테스트 환경에서 수행한 다음, 프로덕션 환경에서 수행합니다.

1. 

**테스트 준비**

   모니터링 환경을 준비하고, 테스트를 위해 새 AWS WAF 보호를 개수 모드로 전환하고, 필요한 리소스 연결을 생성합니다.

   [AWS WAF 보호 테스트 준비](web-acl-testing-prep.md)을(를) 참조하세요.

1. 

**테스트 및 프로덕션 환경 모니터링 및 조정**

   먼저 테스트 또는 스테이징 환경에서 AWS WAF 보호를 모니터링 및 조정한 다음 필요한 만큼 트래픽을 처리할 수 있을 때까지 프로덕션 환경에서 보호 기능을 모니터링 및 조정합니다.

   [AWS WAF 보호 모니터링 및 튜닝](web-acl-testing-activities.md)을(를) 참조하세요.

1. 

**프로덕션 환경에서 보호 활성화**

   테스트 보호 기능에 만족하는 경우 프로덕션 모드로 전환하고 불필요한 테스트 아티팩트를 모두 정리한 후 계속 모니터링합니다.

   [프로덕션 환경에서 보호 기능을 활성화하십시오](web-acl-testing-enable-production.md)을(를) 참조하세요.

변경 사항 구현을 완료한 후에는 프로덕션 환경에서 웹 트래픽 및 보호 기능을 계속 모니터링하여 원하는 대로 작동하는지 확인합니다. 웹 트래픽 패턴이 시간이 지남에 따라 변경될 수 있으므로 보호 기능을 가끔 조정해야 할 수도 있습니다.

# AWS WAF 보호 테스트 준비
<a name="web-acl-testing-prep"></a>

이 섹션에서는 AWS WAF 보호를 테스트하고 조정하도록 설정하는 방법을 설명합니다.

**참고**  
이 섹션의 지침을 따르려면 일반적으로 AWS WAF 보호 팩(웹 ACLs), 규칙 및 규칙 그룹과 같은 보호를 생성하고 관리하는 방법을 이해해야 합니다. 이 정보는 이 가이드의 이전 섹션에 설명되어 있습니다.

**테스트를 준비하려면**

1. 

**보호 팩(웹 ACL) 로깅, Amazon CloudWatch 지표, 보호 팩(웹 ACL)에 대한 웹 요청 샘플링을 활성화합니다.**

   로깅, 지표 및 샘플링을 사용하여 보호 팩(웹 ACL) 규칙과 웹 트래픽의 상호 작용을 모니터링합니다.
   + **로깅** - 보호 팩(웹 ACL)이 평가하는 웹 요청을 로깅 AWS WAF 하도록를 구성할 수 있습니다. Amazon S3 버킷, CloudWatch 로그 또는 Amazon Data Firehose 전송 스트림에 로그를 전송할 수 있습니다. 필드를 수정하고 필터링을 적용할 수 있습니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 단원을 참조하십시오.
   + **Amazon Security Lake** - 보호 팩(웹 ACL) 데이터를 수집하도록 Security Lake를 구성할 수 있습니다. Security Lake는 정규화, 분석 및 관리를 위해 다양한 소스에서 로그 및 이벤트 데이터를 수집합니다. 이 옵션에 대한 자세한 내용은 [Amazon Security Lake 사용 설명서의 Amazon Security Lake란 무엇입니까?](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) 및 [AWS 서비스에서 데이터 수집](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)을 참조하세요. ** 
   + **Amazon CloudWatch 지표 ** - 보호 팩(웹 ACL) 구성에서 모니터링하려는 모든 항목에 대한 지표 사양을 제공합니다. AWS WAF 및 CloudWatch 콘솔을 통해 지표를 볼 수 있습니다. 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 단원을 참조하십시오.
   + **웹 요청 샘플링** - 보호 팩(웹 ACL)이 평가하는 모든 웹 요청의 샘플을 볼 수 있습니다. 웹 요청 샘플링에 대한 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 섹션을 참조하세요.

1. 

**보호 기능을 Count 모드로 설정합니다.**

   보호 팩(웹 ACL) 구성에서 테스트하려는 모든 항목을 개수 모드로 전환합니다. 이렇게 하면 테스트 보호 기능이 요청 처리 방식을 변경하지 않고도 웹 요청과의 일치 항목을 기록할 수 있습니다. 지표, 로그 및 샘플링된 요청에서 일치하는 항목을 보고 일치 기준을 확인하며 웹 트래픽에 미칠 수 있는 영향을 파악할 수 있습니다. 일치 요청에 레이블을 추가하는 규칙은 규칙 작업에 상관없이 레이블을 추가합니다.
   + **보호 팩(웹 ACL)에 정의된 규칙** - 보호 팩(웹 ACL)에서 규칙을 편집하고 Count의 작업을 설정합니다.
   + **규칙 그룹** - 보호 팩(웹 ACL) 구성에서 규칙 그룹의 규칙 문을 편집한 후 **규칙** 창에서 **모든 규칙 작업 재정의** 드롭다운을 열고 **Count**를 선택합니다. JSON에서 보호 팩(웹 ACL)을 관리하는 경우 `ActionToUse`가 Count로 설정된 상태에서 규칙 그룹 참조 문의 `RuleActionOverrides` 설정에 규칙을 추가합니다. 다음 예제 목록은 `AWSManagedRulesAnonymousIpList` AWS 관리형 규칙 규칙 그룹의 두 규칙에 대한 재정의를 보여줍니다.

     ```
       "ManagedRuleGroupStatement": {
         "VendorName": "AWS",
         "Name": "AWSManagedRulesAnonymousIpList",
           "RuleActionOverrides": [
             {
               "ActionToUse": {
                 "Count": {}
               },
               "Name": "AnonymousIPList"
             },
             {
               "ActionToUse": {
                 "Count": {}
               },
               "Name": "HostingProviderIPList"
             }
           ],
           "ExcludedRules": []
         }
       },
     ```

     규칙 작업 재정의에 대한 자세한 내용은 [규칙 그룹에 대한 규칙 작업 재정의](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override) 섹션을 참조하세요.

     자체 규칙 그룹의 경우 규칙 그룹 자체에서 규칙 작업을 수정하면 안 됩니다. Count 작업을 포함하는 규칙 그룹 규칙은 테스트에 필요한 지표 또는 기타 아티팩트를 생성하지 않습니다. 또한 규칙 그룹을 변경하면 해당 규칙을 사용하는 모든 보호 팩(웹 ACL)에 영향을 미치는 반면, 보호 팩(웹 ACL) 구성 내의 변경 사항은 단일 보호 팩(웹 ACL)에만 영향을 미칩니다.
   + **보호 팩(웹 ACL)** - 새 보호 팩(웹 ACL)을 테스트하는 경우 요청을 허용하도록 보호 팩(웹 ACL)에 대한 기본 작업을 설정합니다. 이렇게 하면 트래픽에 영향을 주지 않고 웹 ACL을 테스트할 수 있습니다.

   일반적으로 계산 모드는 프로덕션보다 더 많은 일치 항목을 생성합니다. 이는 요청 수를 계산하는 규칙이 보호 팩(웹 ACL)의 요청 평가를 중단하지 않으므로 보호 팩(웹 ACL)에서 나중에 실행되는 규칙도 요청과 일치할 수 있기 때문입니다. 규칙 작업을 프로덕션 설정으로 변경하면 요청을 허용하거나 차단하는 규칙이 일치하는 요청에 대한 평가를 종료합니다. 따라서 일반적으로 보호 팩(웹 ACL)에서 더 적은 규칙으로 일치 요청을 검사하게 됩니다. 규칙 작업이 웹 요청의 전체 평가에 미치는 영향에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

   이러한 설정을 사용하면 새 보호 기능이 웹 트래픽을 변경하지 않으면서 지표, 보호 팩(웹 ACL) 로그 및 요청 샘플에서 일치 정보를 생성합니다.

1. 

**보호 팩(웹 ACL)을 리소스와 연결**

   보호 팩(웹 ACL)이 아직 리소스와 연결되지 않은 경우 해당 리소스를 연결합니다.

   [보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md)을(를) 참조하세요.

이제 보호 팩(웹 ACL)을 모니터링하고 조정할 준비가 되었습니다.

# AWS WAF 보호 모니터링 및 튜닝
<a name="web-acl-testing-activities"></a>

 AWS WAF 보호를 모니터링하고 조정합니다.

**참고**  
이 섹션의 지침을 따르려면 일반적으로 AWS WAF 보호 팩(웹 ACLs), 규칙 및 규칙 그룹과 같은 보호를 생성하고 관리하는 방법을 이해해야 합니다. 이 정보는 이 가이드의 이전 섹션에 설명되어 있습니다.

웹 트래픽과 규칙 일치를 모니터링하여 보호 팩(웹 ACL)의 동작을 확인합니다. 문제가 발견되면 규칙을 조정하여 수정하고 나서 모니터링하여 조정 사항을 확인합니다.

보호 팩(웹 ACL)이 필요에 맞게 웹 트래픽을 관리할 때까지 다음 절차를 반복합니다.

**모니터링하고 조정하려면**

1. 

**트래픽과 규칙 일치 모니터링**

   트래픽 흐름이 존재하고 테스트 규칙에서 일치하는 요청을 찾고 있는지 확인합니다.

   테스트 중인 보호 기능에 대한 다음 정보를 찾아 봅니다.
   + **로그** - 웹 요청과 일치하는 규칙에 대한 정보에 액세스합니다.
     + **규칙** - 보호 팩(웹 ACL)에서 Count 작업이 있는 규칙이 `nonTerminatingMatchingRules` 아래에 나열됩니다. Allow 또는 Block을 포함하는 규칙은 `terminatingRule`로 나열됩니다. CAPTCHA 또는 Challenge를 포함하는 규칙은 종료형 또는 비 종료형일 수 있으므로 규칙 일치 결과에 따라 두 범주 중 하나에 나열됩니다.
     + **규칙 그룹** - 규칙 그룹은 `ruleGroupId` 필드에서 식별되며, 해당 규칙 일치 항목은 독립형 규칙과 동일하게 분류됩니다.
     + **레이블** - 규칙이 요청에 적용한 레이블이 `Labels` 필드에 나열됩니다.

     자세한 내용은 [보호 팩(웹 ACL) 트래픽에 대한 로그 필드](logging-fields.md) 단원을 참조하십시오.
   + **Amazon CloudWatch 지표** - 다음의 보호 팩(웹 ACL) 요청 평가에 대한 지표에 액세스할 수 있습니다.
     + **규칙** - 지표는 규칙 작업별로 그룹화됩니다. 예를 들어 Count 모드에서 규칙을 테스트하는 경우 해당 규칙이 보호 팩(웹 ACL)의 `Count` 지표로 나열됩니다.
     + **규칙 그룹** - 규칙 그룹에 대한 지표는 규칙 그룹 지표 아래에 나열됩니다.
     + **다른 계정이 소유한 규칙 그룹** - 규칙 그룹 지표는 일반적으로 규칙 그룹 소유자에게만 표시됩니다. 그러나 규칙에 대한 규칙 작업을 재정의하면 해당 규칙에 대한 지표가 보호 팩(웹 ACL) 지표 아래에 나열됩니다. 또한 규칙 그룹에서 추가한 레이블은 보호 팩(웹 ACL) 지표에 나열됩니다.

       규칙 그룹의 개수 작업 규칙은 웹 ACL 차원 지표를 내보내지 않습니다. 규칙, 규칙 RuleGroup 및 리전 차원만 내보냅니다. 이는 규칙 그룹이 웹 ACL에서 참조되는 경우에도 적용됩니다.

       이 범주의 규칙 그룹은 다른 계정에서 사용자와 공유하는 [AWS 에 대한 관리형 규칙 AWS WAF](aws-managed-rule-groups.md), [AWS Marketplace 규칙 그룹](marketplace-rule-groups.md), [다른 서비스에서 제공하는 규칙 그룹 인지](waf-service-owned-rule-groups.md) 및 규칙 그룹입니다. Firewall Manager를 통해 보호 팩(웹 ACL)을 배포하는 경우 계수 작업이 있는 WebACL 내의 규칙은 멤버 계정에 지표를 표시하지 않습니다.
     + **레이블** - 평가 중에 웹 요청에 추가된 레이블은 보호 팩(웹 ACL) 레이블 지표에 나열됩니다. 자체 규칙 및 규칙 그룹에 의해 추가되었든 다른 계정 소유의 규칙 그룹에 있는 규칙에 의해 추가되었든 관계없이 모든 레이블의 지표에 액세스할 수 있습니다.

     자세한 내용은 [웹 ACL 지표 보기](web-acl-testing-view-metrics.md) 단원을 참조하십시오.
   + **보호 팩(웹 ACL) 트래픽 개요 대시보드** - AWS WAF 콘솔의 보호 팩(웹 ACL) 페이지로 이동하여 **트래픽 개요** 탭을 열어 보호 팩(웹 ACL)이 평가한 웹 트래픽의 요약에 액세스합니다.

     트래픽 개요 대시보드는가 애플리케이션 웹 트래픽을 평가할 때 AWS WAF 수집하는 Amazon CloudWatch 지표에 대한 실시간에 가까운 요약을 제공합니다.

     자세한 내용은 [보호 팩(웹 ACL)용 트래픽 개요 대시보드](web-acl-dashboards.md) 단원을 참조하십시오.
   + **샘플링된 웹 요청** - 웹 요청 샘플과 일치하는 규칙에 대한 액세스 정보입니다. 샘플 정보는 보호 팩(웹 ACL)의 규칙에 대한 지표 이름으로 일치 규칙을 식별합니다. 규칙 그룹의 경우 지표는 규칙 그룹 참조 문을 식별합니다. 규칙 그룹 내 규칙의 경우 샘플에는 `RuleWithinRuleGroup`의 일치하는 규칙 이름이 나열됩니다.

     자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 단원을 참조하십시오.

1. 

**거짓 긍정을 해결하기 위한 완화 조치 구성**

   규칙이 일치되어서는 안 되는 웹 요청과 일치되어 거짓 긍정이 발생하고 있다고 판단되는 경우, 다음 옵션을 통해 보호 팩(웹 ACL) 보호를 조정하여 이 문제를 완화할 수 있습니다.

**규칙 검사 기준 수정**  
자체 규칙의 경우 대체로 웹 요청을 검사하는 데 사용하는 설정을 조정하기만 하면 됩니다. 예로는 정규식 패턴 집합의 사양을 변경하거나, 검사 전에 요청 구성 요소에 적용하는 텍스트 변환을 조정하거나, 전달된 IP 주소를 사용하도록 전환하는 것 등이 있습니다. 문제를 일으키는 규칙 유형에 대한 지침은 [에서 규칙 문 사용 AWS WAF](waf-rule-statements.md) 섹션을 참조하세요.

**더 복잡한 문제 해결**  
제어할 수 없는 검사 기준과 일부 복잡한 규칙의 경우 요청을 명시적으로 허용 또는 차단하거나 문제가 되는 규칙에 의한 평가에서 요청을 제외하는 규칙을 추가하는 등 기타 변경을 수행해야 할 수 있습니다. 관리형 규칙 그룹에는 대체로 이러한 유형의 완화가 필요하지만 다른 규칙에도 필요할 수 있습니다. 속도 기반 규칙 문 및 SQL 명령어 삽입 공격 규칙 문을 예로 들 수 있습니다.

   거짓 긍정을 줄이기 위해 수행하는 작업은 사용 사례에 따라 다릅니다. 다음은 일반적인 접근 방식입니다.
   + **완화 규칙 추가** - 새 규칙보다 먼저 실행되고 거짓 긍정을 유발하는 요청을 명시적으로 허용하는 규칙을 추가합니다. 웹 ACL의 규칙 평가 순서에 대한 자세한 내용은 [규칙 우선 순위 설정](web-acl-processing-order.md) 섹션을 참조하세요.

     이 방법을 사용하면 허용된 요청이 보호된 리소스로 전송되므로 새 평가 규칙에 도달하지 않습니다. 새 규칙이 유료 관리형 규칙 그룹인 경우 이 방법은 규칙 그룹의 사용 비용을 억제하는 데도 도움이 될 수 있습니다.
   + **완화 규칙을 포함하는 논리적 규칙 추가** - 논리적 규칙 문을 사용하여 거짓 긍정을 배제하는 규칙과 새 규칙을 결합할 수 있습니다. 자세한 내용은 [에서 논리적 규칙 문 사용 AWS WAF](waf-rule-statements-logical.md) 단원을 참조하세요.

     예를 들어 요청 범주에 대해 거짓 긍정을 생성하는 SQL 명령어 삽입 공격 일치 문을 추가한다고 가정해 보겠습니다. 이러한 요청과 일치하는 규칙을 만든 다음 논리적 규칙 문을 사용하는 규칙을 결합하면 둘 다 거짓 긍정 기준과 일치하지 않고 SQL 명령어 삽입 공격 기준과 일치하는 요청만 일치하게 됩니다.
   + **범위 축소 문 추가** - 속도 기반 문 및 관리형 규칙 그룹 참조 문의 경우 주 명령문 안에 범위 축소 문을 추가하여 거짓 긍정이 발생하는 요청을 평가 대상에서 제외합니다.

     범위 축소 문과 일치하지 않는 요청은 규칙 그룹 또는 속도 기반 평가에 절대 도달하지 않습니다. 범위 축소 문에 대한 자세한 내용은 [에서 범위 축소 문 사용 AWS WAF](waf-rule-scope-down-statements.md) 섹션을 참조하세요. 예제는 [봇 관리에서 IP 범위 제외](waf-bot-control-example-scope-down-ip.md) 섹션을 참조하세요.
   + **레이블 일치 규칙 추가** - 레이블 지정을 사용하는 규칙 그룹의 경우 문제가 되는 규칙이 요청에 적용하는 레이블을 식별합니다. 규칙 그룹 규칙을 계산 모드에서 설정해야 할 수도 있습니다(아직 설정하지 않은 경우). 문제가 되는 규칙에 의해 추가되는 레이블과 일치하며 규칙 그룹 다음에 실행되도록 배치된 레이블 일치 규칙을 추가합니다. 레이블 일치 규칙에서 허용하려는 요청과 차단하려는 요청을 필터링할 수 있습니다.

     이 방법을 사용하는 경우 테스트를 마쳤을 때 문제가 되는 규칙을 규칙 그룹에서 계산 모드로 유지하고 사용자 지정 레이블 일치 규칙을 그대로 유지합니다. 레이블 일치 문에 대한 자세한 내용은 [레이블 일치 규칙 문](waf-rule-statement-type-label-match.md) 섹션을 참조하세요. 예제는 [차단된 특정 봇 허용](waf-bot-control-example-allow-blocked-bot.md) 및 [ATP 예제: 분실 및 손상된 보안 인증 정보에 대한 사용자 지정 처리](waf-atp-control-example-user-agent-exception.md) 단원을 참조하세요.
   + **관리형 규칙 그룹 버전 변경** - 버전이 지정된 관리형 규칙 그룹의 경우 사용 중인 버전을 변경합니다. 예를 들어, 성공적으로 사용하고 있던 마지막 정적 버전으로 다시 전환할 수 있습니다.

     이는 일반적으로 임시 해결책입니다. 테스트 또는 스테이징 환경에서 최신 버전을 계속 테스트하거나 공급자로부터 호환성이 더 좋은 버전을 기다리는 동안 프로덕션 트래픽의 버전을 변경할 수 있습니다. 관리형 규칙 그룹에 대한 자세한 내용은 [에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md) 섹션을 참조하세요.

새 규칙이 필요한 요청과 일치하는 것으로 확인되면 테스트의 다음 단계로 이동하여 이 절차를 반복합니다. 프로덕션 환경에서 테스트 및 조정의 마지막 단계를 수행하십시오.

# 웹 ACL 지표 보기
<a name="web-acl-testing-view-metrics"></a>

이 섹션에서는 보호 팩(웹 ACL)의 지표를 보는 방법에 대해 설명합니다.

보호 팩(웹 ACL)을 하나 이상의 AWS 리소스와 연결한 후 Amazon CloudWatch 그래프에서 연결에 대한 결과 지표를 볼 수 있습니다.

 AWS WAF 지표에 대한 자세한 내용은 섹션을 참조하세요[AWS WAF 지표 및 차원](waf-metrics.md). CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)를 참조하세요.

CloudWatch를 사용하면 보호 팩(웹 ACL)의 각 규칙과 연결된 리소스가 보호 팩(웹 ACL)에 AWS WAF 대해 전달하는 모든 요청에 대해 다음을 수행할 수 있습니다.
+ 이전 한 시간 또는 이전 세 시간 동안의 데이터 보기
+ 데이터 요소 간의 간격 변경
+ CloudWatch에서 데이터에 대해 수행할 계산 변경(예: 최대, 최소, 평균 또는 합계)

**참고**  
AWS WAF CloudFront를 사용하는는 글로벌 서비스이며 지표는에서 **미국 동부(버지니아 북부)** 리전을 선택한 경우에만 사용할 수 있습니다 AWS Management Console. 다른 리전을 선택하면 CloudWatch 콘솔에 AWS WAF 지표가 표시되지 않습니다.

**보호 팩(웹 ACL)에서 규칙에 대한 데이터 보기**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) CloudWatch 콘솔을 엽니다.

1. 필요한 경우 리전을 AWS 리소스가 있는 리전으로 변경합니다. CloudFront에서 미국 동부(버지니아 북부) 리전을 선택합니다.

1. 탐색 창의 **지표**에서 **모든 지표**를 선택한 다음 **찾아보기** 탭에서 `AWS::WAFV2`를 검색하십시오.

1. 데이터를 보려는 보호 팩(웹 ACL)의 확인란을 선택합니다.

1. 해당되는 설정을 변경합니다.  
**통계**  
CloudWatch가 데이터에 대해 수행하는 계산을 선택합니다.  
**시간 범위**  
이전 한 시간 동안의 데이터를 볼지 또는 이전 세 시간 동안의 데이터를 볼지를 선택합니다.  
**Period**  
그래프에서 데이터 요소 간의 간격을 선택합니다.  
**규칙**  
데이터를 보려는 규칙을 선택합니다.  
규칙 이름을 변경하고 규칙의 지표 이름이 변경 사항을 반영하도록 하려면 지표 이름도 업데이트해야 합니다. 규칙 이름을 변경할 때 AWS WAF 는 규칙의 지표 이름을 자동으로 업데이트하지 않습니다. 콘솔에서 규칙을 편집할 때 규칙 JSON 편집기를 사용하여 지표 이름을 변경할 수 있습니다. API와 보호 팩(웹 ACL) 또는 규칙 그룹을 정의하는 데 사용하는 JSON 목록을 통해 두 이름을 모두 변경할 수도 있습니다.

   다음 사항에 유의하세요.
   + 최근에 보호 팩(웹 ACL)을 AWS 리소스와 연결한 경우 데이터가 그래프에 나타나고 보호 팩(웹 ACL)의 지표가 사용 가능한 지표 목록에 나타날 때까지 몇 분 정도 기다려야 할 수 있습니다.
   + 하나 이상의 리소스를 보호 팩(웹 ACL)에 연결하면 CloudWatch 데이터에 모든 리소스에 대한 요청이 포함됩니다.
   + 데이터 요소 위에 커서를 놓으면 추가 정보를 볼 수 있습니다.
   + 그래프는 자동으로 새로 고침되지 않습니다. 표시 내용을 업데이트하려면 새로 고침(![\[Icon to refresh the CloudWatch graph\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/cloudwatch-refresh-icon.png)) 아이콘을 선택합니다.

CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.

# 보호 팩(웹 ACL)용 트래픽 개요 대시보드
<a name="web-acl-dashboards"></a>

이 섹션에서는 AWS WAF 콘솔의 보호 팩(웹 ACL) 트래픽 개요 대시보드에 대해 설명합니다. 보호 팩(웹 ACL)을 하나 이상의 AWS 리소스와 연결하고 보호 팩(웹 ACL)에 대한 지표를 활성화한 후 AWS WAF 콘솔에서 보호 팩(웹 ACL)의 트래픽 **개요 탭으로 이동하여 보호 팩(웹 ACL)이 평가하는 웹 트래픽**의 요약에 액세스할 수 있습니다. 대시보드에는 특수 AI 봇 및 에이전트 활동 분석을 포함하여 애플리케이션 웹 트래픽을 평가할 때가 AWS WAF 수집하는 Amazon CloudWatch 지표에 대한 실시간에 가까운 요약이 포함되어 있습니다.

**참고**  
대시보드에 아무 것도 표시되지 않는 경우 보호 팩(웹 ACL)에 대해 지표가 활성화되어 있는지 확인합니다.

보호 팩(웹 ACL)의 **트래픽 개요** 탭에는 다음 정보 범주에 대해 탭으로 구분된 대시보드가 포함됩니다.
+ **상위 보안 인사이트** - Amazon CloudWatch logs를 직접 쿼리하여가 얻는 AWS WAF AWS WAF 보호 기능에 대한 인사이트입니다. 대시보드의 나머지 부분에서는 CloudWatch 지표를 사용합니다. 이러한 인사이트는 더 풍부한 정보를 제공하지만 CloudWatch 로그 쿼리에 추가 비용이 발생합니다. 추가 비용에 대한 자세한 내용은 [Amazon CloudWatch Logs 가격 책정](https://aws.amazon.com/cloudwatch/pricing/)을 참조하세요.
+ **AI 트래픽 분석** - 봇 식별, 의도 분류, 액세스 패턴 및 시간 추세를 포함하여 AI 봇 및 에이전트 활동에 대해 분석된 웹 요청입니다. 이 탭은 보호 팩(웹 ACL)이 AI 봇 트래픽을 수신할 때 사용할 수 있습니다.
+ **모든 트래픽** - 보호 팩(웹 ACL)이 평가하는 모든 웹 요청입니다.

  대시보드는 작업 종료에 초점을 맞추고 있으나 다음 위치에서 카운트 규칙과 일치하는 항목을 볼 수 있습니다.
  + 이 대시보드의 **상위 10개 규칙** 창. **카운트 동작으로 전환**을 토글하여 일치하는 카운트 규칙을 표시합니다.
  + 보호 팩(웹 ACL) 페이지의 **샘플 요청** 탭입니다. 이 새 탭에는 모든 규칙 일치 그래프가 포함됩니다. 자세한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md) 단원을 참조하세요.
+ **Anti-DDoS** - 보호 팩(웹 ACL)이 `AntiDDoSRuleSet` Anti-DDoS 관리형 규칙 그룹을 사용하여 평가하는 웹 요청입니다.

  이 탭은 보호 팩(웹 ACL)에서 이 규칙 그룹을 사용하는 경우에만 사용할 수 있습니다.
+ **봇 컨트롤** - 보호 팩(웹 ACL)이 봇 컨트롤 관리형 규칙 그룹을 사용하여 평가하는 웹 요청입니다.
+ 보호 팩(웹 ACL)에서 이 규칙 그룹을 사용하지 않는 경우 이 탭에는 봇 컨트롤 규칙에 대한 웹 트래픽 샘플을 평가한 결과가 표시됩니다. 무료로 제공되는 이 기능을 통해 애플리케이션에서 수신되는 봇 트래픽을 파악할 수 있습니다.

  이 규칙 그룹은가 AWS WAF 제공하는 지능형 위협 완화 옵션의 일부입니다. 자세한 내용은 [AWS WAF 봇 제어](waf-bot-control.md) 및 [AWS WAF Bot Control 규칙 그룹](aws-managed-rule-groups-bot.md) 섹션을 참조하세요.
+ **계정 탈취 방지** - 보호 팩(웹 ACL)이 AWS WAF 사기 제어 계정 탈취 방지(ATP) 관리형 규칙 그룹을 사용하여 평가하는 웹 요청입니다. 이 탭은 보호 팩(웹 ACL)에서 이 규칙 그룹을 사용하는 경우에만 사용할 수 있습니다.

  ATP 규칙 그룹은 AWS WAF 지능형 위협 완화 제공의 일부입니다. 자세한 내용은 [AWS WAF 사기 제어 계정 탈취 방지(ATP)](waf-atp.md) 및 [AWS WAF 사기 제어 계정 탈취 방지(ATP) 규칙 그룹](aws-managed-rule-groups-atp.md) 섹션을 참조하세요.
+ **계정 생성 사기 방지** - 보호 팩(웹 ACL)이 AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 관리형 규칙 그룹을 사용하여 평가하는 웹 요청입니다. 이 탭은 보호 팩(웹 ACL)에서 이 규칙 그룹을 사용하는 경우에만 사용할 수 있습니다.

  ACFP 규칙 그룹은 AWS WAF 지능형 위협 완화 제공의 일부입니다. 자세한 내용은 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP)](waf-acfp.md) 및 [AWS WAF 사기 제어 계정 생성 사기 방지(ACFP) 규칙 그룹](aws-managed-rule-groups-acfp.md) 섹션을 참조하세요.

대시보드는 보호 팩(웹 ACL)의 CloudWatch 지표를 기반으로 하며 그래프를 통해 CloudWatch의 해당 지표에 액세스할 수 있습니다. Bot Control과 같은 지능형 위협 완화 대시보드의 경우 사용되는 지표는 주로 레이블 지표입니다.
+ 에서 AWS WAF 제공하는 지표 목록은 단원을 참조하십시오[AWS WAF 지표 및 차원](waf-metrics.md).
+ CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)를 참조하세요.

대시보드는 선택한 종료 작업과 날짜 범위에 대한 트래픽 패턴의 요약을 제공합니다. 지능형 위협 완화 대시보드에는 관리형 규칙 그룹 자체가 종료 작업을 적용하는지 여부와 상관없이 해당 관리형 규칙 그룹에서 평가되는 요청이 포함됩니다. 예를 들어 Block을 선택하면 ATP 관리형 규칙 그룹에서 평가되었다가 보호 팩(웹 ACL) 평가 중 특정 시점에 차단된 모든 웹 요청에 대한 정보가 **계정 탈취 방지** 대시보드에 포함됩니다. 요청은 ATP 관리형 규칙 그룹, 보호 팩(웹 ACL)의 규칙 그룹 이후에 실행된 규칙 또는 보호 팩(웹 ACL) 기본 작업에 의해 차단될 수 있습니다.

# 보호 팩(웹 ACL)의 대시보드 보기
<a name="web-acl-dashboards-accessing"></a>

이 섹션의 절차에 따라 보호 팩(웹 ACL) 대시보드에 액세스하고 데이터 필터링 기준을 설정합니다. 최근에 보호 팩(웹 ACL)을 AWS 리소스와 연결한 경우 대시보드에서 데이터를 사용할 수 있을 때까지 몇 분 정도 기다려야 할 수 있습니다.

대시보드에는 보호 팩(웹 ACL)과 연결된 모든 리소스에 대한 요청이 포함됩니다.

**보호 팩(웹 ACL)용 **트래픽 개요** 대시보드 보기**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **보호 팩(웹 ACL)**을 선택한 다음 관심 있는 웹 ACL을 검색합니다.

1. 보호 팩(웹 ACL)을 선택합니다. 콘솔에서 보호 팩(웹 ACL) 페이지로 이동합니다. **트래픽 개요** 탭이 기본적으로 선택되어 있습니다.

1. 필요에 따라 **데이터 필터** 설정을 변경합니다.
   + **종료 규칙 작업** - 대시보드에 포함할 종료 작업을 선택합니다. 대시보드에 보호 팩(웹 ACL) 평가를 통해 선택한 작업 중 하나가 적용된 웹 요청에 대한 지표가 요약됩니다. 사용 가능한 작업을 모두 선택하면 평가된 모든 웹 요청이 대시보드에 포함됩니다. 작업에 대한 자세한 내용은 [가 규칙 및 규칙 그룹 작업을 AWS WAF 처리하는 방법](web-acl-rule-actions.md) 섹션을 참조하세요.
   + **시간 범위** - 대시보드에서 확인할 시간 간격을 선택합니다. 예를 들어 최근 3시간 또는 지난 주와 같이 현재를 기준으로 한 기간을 표시하도록 선택한 후, 달력에서 절대 시간 범위를 선택할 수 있습니다.
   + **시간대** - 이 설정은 절대 시간 범위를 지정할 때 적용됩니다. 브라우저의 현지 시간대 또는 UTC(협정 세계시)를 사용할 수 있습니다.

원하는 탭의 정보를 검토합니다. 데이터 필터 선택은 모든 대시보드에 적용됩니다. 그래프 창에서 데이터 포인트 또는 영역을 커서로 가리키면 추가 세부 정보를 볼 수 있습니다.

**Count 작업 규칙**  
두 위치 중 하나에서 작업 일치 횟수에 대한 정보를 볼 수 있습니다.
+ 이 **트래픽 개요** 탭의 **모든 트래픽** 대시보드에서 **상위 10개 규칙** 창을 찾아 **실행 횟수로 전환**을 토글합니다. 이 토글을 켜면 창에 종료 규칙 일치 대신 규칙 일치 개수가 표시됩니다.
+ 보호 팩(웹 ACL)의 **샘플링된 요청** 탭에서 **트래픽 개요** 탭에서 설정한 시간 범위에 대한 모든 규칙 일치 및 조치의 그래프를 볼 수 있습니다. **샘플링된 요청** 탭에 대한 내용은 [웹 요청 샘플 보기](web-acl-testing-view-sample.md)을(를) 참조하세요.

**Amazon CloudWatch 지표**  
대시보드 그래프 창에서 그래프로 표시된 데이터에 대한 CloudWatch 지표에 액세스할 수 있습니다. 그래프 창 상단이나 창 내의 **⋮**(세로 생략 부호) 드롭다운 메뉴에서 옵션을 선택합니다.

**대시보드 새로 고침**  
대시보드는 자동으로 새로 고쳐지지 않습니다. 표시 내용을 업데이트하려면 새로 고침 ![\[Icon to refresh the dashboard graph\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/cloudwatch-refresh-icon.png) 아이콘을 선택합니다.

# 보호 팩(웹 ACL)용 트래픽 개요 대시보드의 예제
<a name="web-acl-dashboards-screenshots"></a>

이 섹션에서는 보호 팩(웹 ACL)용 트래픽 개요 대시보드의 예제 화면을 보여줍니다.

**참고**  
이미 AWS WAF 를 사용하여 애플리케이션 리소스를 보호 중인 경우 AWS WAF 콘솔의 해당 페이지에서 모든 보호 팩(웹 ACLs)에 대한 대시보드를 볼 수 있습니다. 자세한 내용은 [보호 팩(웹 ACL)의 대시보드 보기](web-acl-dashboards-accessing.md) 단원을 참조하세요.

**예제 화면: 데이터 필터 및 **모든 트래픽** 대시보드 작업 개수**  
다음 스크린샷은 **모든 트래픽** 탭이 선택된 보호 팩(웹 ACL)의 트래픽 개요를 보여줍니다. 데이터 필터는 지난 3시간 동안의 모든 종료 작업(기본값)으로 설정되어 있습니다.

전체 트래픽 대시보드 안에는 다양한 종료 작업에 대한 작업 합계가 표시됩니다. 각 창에는 요청 개수가 나열되고 이전 3시간 범위 이후의 변경을 나타내는 위쪽/아래쪽 화살표가 표시됩니다.

![\[AWS WAF 콘솔에는 기본 데이터 필터가 선택된 보호 팩(웹 ACL) 페이지 트래픽 개요 탭이 표시됩니다. 종료 규칙 작업 옵션은Block, Allow, CAPTCHA 및 Challenge입니다. 데이터 필터 섹션 아래에는 모든 트래픽, Bot Control 및 계정 탈취 방지를 위한 탭이 있습니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/web-acl-dashboard-data-filters-default-top-actions.png)


**예제 화면: **Bot Control** 대시보드 작업 수**  
다음 스크린샷은 Bot Control 대시보드의 작업 수를 보여줍니다. 이 그림은 시간 범위에 대해 동일한 총계 창을 보여주지만, 개수는 Bot Control 규칙 그룹이 평가한 요청의 수만 표시합니다. 더 아래쪽에 있는 **작업 합계** 창에서는 지정된 3시간 범위 동안의 작업 수를 볼 수 있습니다. 이 기간 동안에는 규칙 그룹이 평가한 어떤 요청에도 CAPTCHA 작업이 적용되지 않았습니다.

![\[AWS WAF 콘솔에는 Bot Control 대시보드의 상단 부분이 시간 범위의 작업 합계와 시간 범위의 작업 합계와 함께 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/web-acl-dashboard-bot-action-totals.png)


**예제 화면: **AI 트래픽 분석 대시보드** 대시보드 작업 수**  
다음 스크린샷은 보호 팩(웹 ACL)에 대한 AI 트래픽 분석 대시보드를 보여줍니다. 대시보드에는 선택한 시간 범위 동안의 AI 봇 활동이 봇 조직, 의도 유형 및 확인 상태에 대한 필터와 함께 표시됩니다.

![\[AWS WAF 콘솔은 AI 트래픽 분석 대시보드의 상단 부분을 시간 범위에 대한 상단 크롤러와 상단 경로 및 시간 범위 전체의 작업 합계와 함께 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/waf-phantom-edge-dashboard.png)


대시보드에는 다음이 포함됩니다.
+ **Bot Identity 패널** - 이름과 조직이 있는 감지된 AI 봇을 나열합니다.
+ **의도 분류** - 봇 목적(크롤링, 인덱싱, 연구 등)을 분류합니다.
+ **액세스 패턴** - 요청 수가 있는 AI 에이전트가 액세스하는 상위 URLs 
+ **시간 분석** - 14일 기록 보기가 포함된 시간당 및 일일 활동 추세
+ **조직 분석** - 봇 소유자 조직별 트래픽 볼륨

**예제 화면: **Bot Control** 대시보드 토큰 상태 요약 그래프**  
다음 스크린샷은 Bot Control 대시보드에서 사용할 수 있는 두 가지 요약 그래픽을 보여줍니다. **토큰 상태** 창에는 요청에 적용된 규칙 작업과 함께 다양한 토큰 상태 레이블 개수가 표시됩니다. **IP 토큰 없는 임계값** 창에는 토큰 없이 너무 많은 요청을 보낸 IP의 요청에 대한 데이터가 표시됩니다.

그래프의 아무 영역이나 마우스로 가리키면 사용 가능한 세부 정보가 표시됩니다. 이 스크린샷의 **토큰 상태** 창에서 마우스로 그래프 선이 아닌 특정 시점을 가리키면 콘솔에 해당 시점의 모든 라인에 대한 데이터가 표시됩니다.

![\[AWS WAF 콘솔에는 토큰 상태 및 IP 토큰 없음 임계값에 대한 두 개의 창이 표시되며, 각 창에서 차단된 요청과 챌린지된 요청에 대한 유사한 그래프 선이 표시됩니다. 토큰 상태 창에는 허용된 요청에 대한 그래프도 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/images/web-acl-dashboard-bot-token-panes.png)


이 섹션에서는 보호 팩(웹 ACL) 트래픽 개요 대시보드에 제공되는 몇 가지 트래픽 요약만 보여줍니다. 보호 팩(웹 ACL)의 대시보드를 보려면 콘솔에서 보호 팩(웹 ACL) 페이지를 엽니다. 이를 위한 자세한 방법은 [보호 팩(웹 ACL)의 대시보드 보기](web-acl-dashboards-accessing.md) 섹션을 참조하세요.

# 웹 요청 샘플 보기
<a name="web-acl-testing-view-sample"></a>

이 섹션에서는 AWS WAF 콘솔의 보호 팩(웹 ACL) **샘플링된 요청** 탭에 대해 설명합니다. 이 탭에서는가 검사한 웹 요청에 대한 모든 규칙 일치의 그래프 AWS WAF 를 볼 수 있습니다. 또한 보호 팩(웹 ACL)에 대해 요청 샘플링을 활성화한 경우 AWS WAF 가 검사한 웹 요청 샘플의 테이블 보기를 볼 수 있습니다. API 호출 `GetSampledRequests`를 통해 샘플링된 요청 정보를 검색할 수도 있습니다.

요청 샘플에는 보호 팩(웹 ACL)의 규칙에 대한 기준과 일치하는 최대 100개의 요청과 규칙과 일치하지 않고 보호 팩(웹 ACL) 기본 작업이 적용된 요청에 대한 다른 100개의 요청이 포함되어 있습니다. 샘플의 요청은 이전 3시간 동안 콘텐츠에 대해 요청을 수신한 모든 보호된 리소스에서 나옵니다.

웹 요청이 규칙의 기준과 일치하고 해당 규칙에 대한 작업이 요청 평가를 종료하지 않는 경우는 보호 팩(웹 ACL)의 후속 규칙을 사용하여 웹 요청을 AWS WAF 계속 검사합니다. 이로 인해 웹 요청이 여러 번 나타날 수 있습니다. 규칙 작업 동작에 관한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md)을(를) 참조하세요.

**모든 규칙 그래프와 샘플링된 요청을 보려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 탐색 창에서 **보호 팩(웹 ACL)**을 선택합니다.

1. 요청을 보려는 보호 팩(웹 ACL)의 이름을 선택합니다. 콘솔에서 보호 팩(웹 ACL)의 설명으로 이동하여 여기에서 설명을 편집할 수 있습니다.

1. **샘플링된 요청** 탭에서 다음을 확인할 수 있습니다.
   + **모든 규칙 그래프** - 이 그래프는 표시된 시간 범위 동안 수행된 모든 웹 요청 평가에 대한 일치 규칙 및 규칙 작업을 보여줍니다.
**참고**  
이 그래프에 대한 시간 범위는 **데이터 필터** 섹션에 있는 보호 팩(웹 ACL)의 **트래픽 개요** 탭에서 설정됩니다. 자세한 내용은 [보호 팩(웹 ACL)의 대시보드 보기](web-acl-dashboards-accessing.md) 단원을 참조하세요.
   + **샘플링된 요청 테이블** – 이 테이블에는 지난 3시간 동안 샘플링된 요청 데이터가 표시됩니다.
**참고**  
관리형 규칙 그룹에 대해 예상되는 샘플이 보이지 않는 경우 이 절차의 아래 섹션을 참조하세요.

     테이블에는 각 항목에 대해 다음 데이터가 표시됩니다.  
**지표 이름**  
보호 팩(웹 ACL)에서 요청과 일치한 규칙에 대한 CloudWatch 지표 이름입니다. 웹 요청이 보호 팩(웹 ACL)의 어떤 규칙과도 일치하지 않는 경우 이 값은 **기본값**입니다.  
규칙 이름을 변경하고 규칙의 지표 이름에 변경 사항이 반영되도록 하려면 지표 이름도 업데이트해야 합니다. 규칙 이름을 변경할 때 AWS WAF 는 규칙의 지표 이름을 자동으로 업데이트하지 않습니다. 콘솔에서 규칙을 편집할 때 규칙 JSON 편집기를 사용하여 지표 이름을 변경할 수 있습니다. API와 보호 팩(웹 ACL) 또는 규칙 그룹을 정의하는 데 사용하는 JSON 목록을 통해 두 이름을 모두 변경할 수도 있습니다.  
**소스 IP**  
요청이 시작된 IP 주소 또는 최종 사용자가 HTTP 프록시나 Application Load Balancer를 사용하여 요청을 전송한 경우 프록시 또는 Application Load Balancer의 IP 주소입니다.  
**URI**  
리소스를 식별하는 URL의 부분입니다(예: `/images/daily-ad.jpg`).  
**규칙 그룹 내부 규칙**  
지표 이름이 규칙 그룹 참조 문을 식별하는 경우 이 항목은 규칙 그룹 내부에서 요청과 일치했던 규칙을 식별합니다.  
**작업**  
해당 규칙에 대한 작업을 나타냅니다. 가능한 규칙 작업에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.  
규칙 그룹에서 개수 작업이 있는 규칙에 대한 샘플링된 요청은 웹 ACL 보기에서 사용할 수 없습니다. 규칙 그룹 규칙에 대한 개수 지표 및 샘플링된 요청은 규칙 그룹 소유자에게만 표시됩니다.  
**Time**  
가 보호된 리소스로부터 요청을 AWS WAF 받은 시간입니다.

     웹 요청 구성 요소에 대한 추가 정보를 표시하려면 해당 요청의 행에서 URI 이름을 선택합니다.

**관리형 규칙 그룹의 규칙에 대한 샘플링된 요청**  
콘솔에는 트리거된 규칙을 지정하는 "규칙 내부 규칙"이 있는 규칙 그룹에 대한 지표가 표시됩니다. 최신 `RuleActionOverrides` 설정을 사용하여 기본 작업 규칙 세트 및 규칙에 대한 지표를 볼 수 있습니다. 이전 `ExcludedRules` 설정을 사용하는 규칙의 경우 **샘플링된 요청** 지표 규칙 드롭다운의 규칙 세트 내에서 특정 규칙을 선택합니다.

이전 설정이 표시되면 새 설정으로 바꾸어 콘솔을 통해 샘플링된 요청을 사용할 수 있도록 합니다. 콘솔을 통해 보호 팩(웹 ACL)에서 관리형 규칙 그룹을 편집하고 저장하여 이 작업을 수행할 수 있습니다. AWS WAF 는 이전 설정을 `RuleActionOverrides` 설정으로 자동으로 바꾸고 규칙 작업 재정의를 Count로 설정합니다. 이러한 설정에 대한 자세한 내용은 [JSON 목록: `RuleActionOverrides`에서 `ExcludedRules` 대체](web-acl-rule-group-override-options.md#web-acl-rule-group-override-replaces-exclude) 섹션을 참조하세요.

 AWS WAF REST API, SDKs 또는 명령줄을 통해 이전 재정의가 있는 규칙에 대한 샘플링된 요청에 액세스할 수 있습니다. 자세한 내용은 *AWS WAF API 참조*의 [GetSampledRequests](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetSampledRequests.html)를 참조하세요.

다음은 명령줄 요청의 구문을 보여 줍니다.

```
aws wafv2 get-sampled-requests \
  --web-acl-arn webACL ARN \
  --rule-metric-name Metric name of the rule in the managed rule group \
  --scope=REGIONAL or CLOUDFRONT \
  --time-window StartTime=UTC timestamp,EndTime=UTC timestamp \
  --max-items 100
```

# 프로덕션 환경에서 보호 기능을 활성화하십시오
<a name="web-acl-testing-enable-production"></a>

이 섹션에서는 프로덕션에서 조정된 보호를 활성화하는 지침을 제공합니다.

프로덕션 환경에서 테스트 및 튜닝의 최종 단계를 완료했으면 프로덕션 모드에서 보호 기능을 활성화하십시오.

**프로덕션 트래픽 위험**  
프로덕션 트래픽용 보호 팩(웹 ACL) 구현을 배포하기 전에 트래픽에 대한 잠재적 영향을 파악할 때까지 테스트 환경에서 이를 테스트하고 조정합니다. 또한 프로덕션 트래픽에 대한 보호를 활성화하기 전에 프로덕션 트래픽을 사용하여 계산 모드에서 트래픽을 테스트 및 조정합니다.

**참고**  
이 섹션의 지침을 따르려면 일반적으로 AWS WAF 보호 팩(웹 ACLs), 규칙 및 규칙 그룹과 같은 보호를 생성하고 관리하는 방법을 이해해야 합니다. 이 정보는 이 가이드의 이전 섹션에 설명되어 있습니다.

이러한 단계를 먼저 테스트 환경에서 수행한 다음, 프로덕션 환경에서 수행합니다.

**프로덕션 환경에서 AWS WAF 보호 활성화**

1. 

**프로덕션 보호 기능으로 전환**

   보호 팩(웹 ACL)을 업데이트하고 프로덕션 설정을 전환합니다.

   1. 

**필요하지 않은 테스트 규칙을 모두 제거합니다.**

      프로덕션 환경에서 필요하지 않은 테스트 규칙을 추가했다면 삭제합니다. 레이블 일치 규칙을 사용하여 관리형 규칙 그룹 규칙의 결과를 필터링하는 경우 해당 규칙을 그대로 두어야 합니다.

   1. 

**프로덕션 작업으로 전환**

      새 규칙의 작업 설정을 의도한 프로덕션 설정으로 변경합니다.
      + **보호 팩(웹 ACL)에 정의된 규칙** - 보호 팩(웹 ACL)에서 규칙을 편집하고 Count의 작업을 해당 프로덕션 작업으로 변경합니다.
      + **규칙 그룹** - 규칙 그룹의 보호 팩(웹 ACL) 구성에서 테스트 및 조정 활동의 결과에 따라 자체 작업을 사용하는 규칙으로 전환하거나 규칙을 그대로 유지하면서 Count 작업을 재정의합니다. 레이블 일치 규칙을 사용하여 규칙 그룹 규칙의 결과를 필터링하는 경우 해당 규칙에 대한 재정의를 그대로 두어야 합니다.

        규칙의 작업을 사용하도록 전환하려면 보호 팩(웹 ACL) 구성에서 규칙 그룹의 규칙 문을 편집하고 규칙에 대한 Count 재정의를 제거합니다. JSON에서 보호 팩(웹 ACL)을 관리하는 경우 규칙 그룹 참조 문에서 `RuleActionOverrides` 목록의 규칙 항목을 제거합니다.
      + **보호 팩(웹 ACL)** - 테스트의 보호 팩(웹 ACL) 기본 작업을 변경한 경우 프로덕션 설정으로 전환합니다.

      이러한 설정을 사용하면 새로운 보호 기능이 웹 트래픽을 의도한 대로 관리하게 됩니다.

   보호 팩(웹 ACL)을 저장하면 연결된 리소스가 프로덕션 설정을 사용하게 됩니다.

1. 

**모니터링 및 조정**

   웹 요청이 원하는 대로 처리되도록 하려면 새 기능을 활성화한 후 트래픽을 면밀히 모니터링합니다. 조정 작업에서 모니터링하던 계산 작업 대신 프로덕션 규칙 작업에 대한 지표와 로그를 모니터링하게 됩니다. 계속 모니터링하면서 필요에 따라 동작을 조정하여 웹 트래픽의 변화에 맞춥니다.

# Amazon CloudFront AWS WAF 에서 사용
<a name="cloudfront-features"></a>

Amazon CloudFront 기능과 AWS WAF 함께를 사용하는 방법을 알아봅니다.

보호 팩(웹 ACL)을 생성할 때 AWS WAF 에서 검사할 CloudFront 배포를 하나 이상 지정할 수 있습니다. CloudFront는 두 가지 유형의 배포, 즉 개별 테넌트를 보호하는 표준 배포와 단일 공유 구성 템플릿을 통해 여러 테넌트를 보호하는 다중 테넌트 배포를 지원합니다. AWS WAF 는 보호 팩(웹 ACL)에 정의한 규칙에 따라 두 배포 유형에 대한 웹 요청을 검사하며, 각 유형에 대해 구현 패턴이 다릅니다.

**Topics**
+ [가 다양한 배포 유형에서 AWS WAF 작동하는 방식](#cloudfront-features-distribution-types)
+ [CloudFront 정액 요금제 AWS WAF 와 함께 사용](#waf-cf-pricing-plans)
+ [를 사용하여 CloudFront 배포를 보호하기 위한 일반적인 사용 사례 AWS WAF](cloudfront-waf-use-cases.md)

## 가 다양한 배포 유형에서 AWS WAF 작동하는 방식
<a name="cloudfront-features-distribution-types"></a>

### 배포 유형
<a name="distribution-types-overview"></a>

AWS WAF 는 표준 및 다중 테넌트 배포 CloudFront 배포 모두에 웹 애플리케이션 방화벽 기능을 제공합니다.

#### 표준 배포
<a name="standard-distribution-overview"></a>

표준 배포의 경우 각 배포에 대해 단일 보호 팩(웹 ACL)을 사용하여 보호를 AWS WAF 추가합니다. 기존 보호 팩(웹 ACL)을 CloudFront 배포와 연결하거나 CloudFront 콘솔에서 원클릭 보호를 사용하여 이 보호를 활성화할 수 있습니다. 이렇게 하면 보호 팩(웹 ACL)을 변경하면 연결된 배포에만 영향을 미치므로 각 배포에 대한 보안 제어를 독립적으로 관리할 수 있습니다.

CloudFront 배포를 보호하는 이 간단한 방법은 단일 보호 팩(웹 ACL)에서 특정 보호를 개별 도메인에 제공하는 데 최적입니다.

##### 표준 배포 고려 사항
<a name="standard-waf-considerations"></a>
+ 보호 팩(웹 ACL)에 대한 변경 사항은 연결된 배포에만 영향을 미칩니다.
+ 각 배포에는 독립적인 보호 팩(웹 ACL) 구성이 필요합니다.
+ 규칙과 규칙 그룹은 각 배포에 대해 별도로 관리됩니다

#### 다중 테넌트 배포
<a name="tenant-distribution-overview"></a>

다중 테넌트 배포의 경우 단일 보호 팩(웹 ACL)을 사용하여 여러 도메인에서 보호를 AWS WAF 추가합니다. 다중 테넌트 배포로 관리되는 도메인을 배포 테넌트라고 합니다. 다중 테넌트 배포 생성 프로세스 도중 또는 이후에 CloudFront 콘솔에서만 다중 테넌트 배포에 대한 AWS WAF 보호를 활성화할 수 있습니다. 그러나 보호 팩(웹 ACL)에 대한 변경 사항은 AWS WAF 콘솔 또는 API를 통해 계속 관리됩니다.

다중 테넌트 배포는 두 가지 수준에서 AWS WAF 보호를 활성화할 수 있는 유연성을 제공합니다.
+ **다중 테넌트 배포 수준** - 연결된 보호 팩(웹 ACL)은 배포를 공유하는 모든 애플리케이션에 적용되는 기본 보안 제어를 제공합니다.
+ **배포 테넌트 수준** - 다중 테넌트 배포 내의 개별 테넌트에는 추가 보안 제어를 구현하거나 다중 테넌트 배포 설정을 재정의하기 위한 자체 보호 팩(웹 ACL)이 있을 수 있습니다.

이 두 계층은 개별 배포에 대한 보안을 사용자 지정하는 기능을 상실하지 않고 여러 도메인에서 AWS WAF 보호를 공유하는 데 다중 테넌트 배포를 최적으로 만듭니다.

#### 다중 테넌트 배포 고려 사항
<a name="tenant-waf-considerations"></a>
+ 개별 배포 테넌트는 관련 다중 테넌트 배포와 연결된 보호 팩(웹 ACL)에 대한 변경 사항을 상속합니다.
+ 특정 배포 테넌트와 연결된 보호 팩(웹 ACL)은 다중 테넌트 보호 팩(웹 ACL) 수준에서 구성된 설정을 재정의할 수 있습니다.
+ 배포 및 배포 테넌트 수준 모두에서 관리형 규칙 그룹을 구현할 수 있습니다.
+ 애플리케이션 식별자를 로그에 배치하여 배포별로 보안 이벤트를 추적할 수 있습니다.

### AWS WAF 배포 유형별 기능
<a name="distribution-types-comparison"></a>


**보호 팩(웹 ACL) 구현 비교**  

| AWS WAF 기능 | 표준 배포 | 다중 테넌트 배포 | 
| --- | --- | --- | 
| 보호 팩(웹 ACL) 연결 | 배포당 하나의 보호 팩(웹 ACL) | 선택적 테넌트별 보호 팩(웹 ACL)을 사용하여 테넌트 간에 보호 팩(웹 ACL)을 공유할 수 있습니다. | 
| 규칙 관리 | 규칙은 단일 배포에 영향을 미칩니다. | 다중 테넌트 배포 규칙은 연결된 모든 테넌트에 영향을 미치며, 배포 테넌트별 규칙은 해당 테넌트에만 영향을 미칩니다. | 
| 관리형 규칙 그룹 | 개별 배포에 적용됨 | 모든 테넌트의 다중 테넌트 배포 수준 또는 특정 애플리케이션의 테넌트 수준에서 적용할 수 있습니다. | 
| 로깅 | 표준 AWS WAF 로그 | 로그에는 보안 이벤트 어트리뷰션을 위한 테넌트 식별자가 포함됩니다. | 

## CloudFront 정액 요금제 AWS WAF 와 함께 사용
<a name="waf-cf-pricing-plans"></a>

CloudFront 정액 요금제는 트래픽 급증이나 공격에 관계없이 Amazon CloudFront 글로벌 콘텐츠 전송 네트워크(CDN)를 여러 AWS 서비스 및 기능과 결합하여 초과 요금 없이 월별 가격으로 제공합니다.

정액 요금제에는 간단한 월별 가격 대비 다음과 같은 AWS 서비스 및 기능이 포함됩니다.
+ CloudFront CDN
+ AWS WAF 및 DDoS 보호
+ 봇 관리 및 분석
+ Amazon Route 53 DNS
+ Amazon CloudWatch Logs 수집
+ TLS 인증서
+ 서버리스 엣지 컴퓨팅
+ 매월 Amazon S3 스토리지 크레딧

플랜은 애플리케이션의 요구 사항에 맞게 Free, Pro, Business 및 Premium 티어에서 사용할 수 있습니다. 플랜은 이용 가능한 최상의 요금을 얻기 위해 연간 약정이 필요하지 않습니다. Free 플랜으로 시작하고 업그레이드하여 더 많은 기능과 더 많은 사용 허용량에 액세스하세요.

자세한 내용과 플랜 및 기능의 전체 목록은 Amazon [CloudFront 개발자 안내서의 CloudFront 고정 요금제를](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/flat-rate-pricing-plan.html) 참조하세요. *Amazon CloudFront *

**중요**  
요금제를 사용할 때는 유효한 AWS WAF 보호 팩(웹 ACL)이 CloudFront 배포와 연결되어 있어야 합니다. pay-as-you-go 다시 전환하지 않는 한 보호 팩(웹 ACL) 연결을 제거할 수 없습니다.  
 AWS WAF 웹 ACL은 배포와 연결된 상태로 유지되어야 하지만 보안 구성을 완전히 제어할 수 있습니다. 웹 ACL에서 활성화 또는 비활성화되는 규칙을 조정하여 보호를 사용자 지정하고 보안 요구 사항에 맞게 규칙 설정을 수정할 수 있습니다. 웹 ACL 규칙 관리에 대한 자세한 내용은 [AWS WAF 규칙을](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rules.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).

# AWS WAF 서비스 사용 시 보안
<a name="security"></a>

이 섹션에서는 공동 책임 모델을 적용하는 방법을 설명합니다 AWS WAF.

의 클라우드 보안 AWS 이 최우선 순위입니다. AWS 고객은 보안에 가장 민감한 조직의 요구 사항을 충족하도록 구축된 데이터 센터 및 네트워크 아키텍처의 이점을 누릴 수 있습니다.

**참고**  
이 섹션에서는 AWS WAF 보호 팩(웹 ACLs) 및 규칙 그룹과 같은 AWS WAF 서비스 및 AWS 리소스 사용에 대한 표준 AWS 보안 지침을 제공합니다.  
를 사용하여 AWS 리소스를 보호하는 방법에 대한 자세한 내용은 AWS WAF 가이드의 나머지 부분을 AWS WAF참조하세요.

보안은 AWS 와 사용자 간의 공동 책임입니다. [공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/)은 이를 클라우드*의* 보안과 클라우드 *내* 보안으로 설명합니다.
+ **클라우드 보안 **- AWS 는에서 AWS 서비스를 실행하는 인프라를 보호할 책임이 있습니다 AWS 클라우드. AWS 또한는 안전하게 사용할 수 있는 서비스를 제공합니다. 서드 파티 감사자는 정기적으로 [AWS 규정 준수 프로그램](https://aws.amazon.com/compliance/programs/)의 일환으로 보안 효과를 테스트하고 검증합니다. 에 적용되는 규정 준수 프로그램에 대한 자세한 내용은 [AWS 규정 준수 프로그램 제공 범위 내 서비스를](https://aws.amazon.com/compliance/services-in-scope/) AWS WAF참조하세요.
+ **클라우드의 보안** - 사용자의 책임은 사용하는 AWS 서비스에 따라 결정됩니다. 또한 데이터의 민감도, 조직의 요건 및 관련 법률 및 규정을 비롯한 기타 요소에 대해서도 책임이 있습니다.

이 설명서는를 사용할 때 공동 책임 모델을 적용하는 방법을 이해하는 데 도움이 됩니다 AWS WAF. 다음 주제에서는 보안 및 규정 준수 목표를 충족하도록 AWS WAF 를 구성하는 방법을 보여줍니다. 또한 AWS WAF 리소스를 모니터링하고 보호하는 데 도움이 되는 다른 AWS 서비스를 사용하는 방법을 알아봅니다.

**Topics**
+ [에서 데이터 보호 AWS WAF](data-protection.md)
+ [에서 IAM 사용 AWS WAF](security-iam.md)
+ [에서 로깅 및 모니터링 AWS WAF](waf-incident-response.md)
+ [에서 규정 준수 검증 AWS WAF](waf-compliance.md)
+ [에서 복원력을 위한 구축 AWS WAF](disaster-recovery-resiliency.md)
+ [의 인프라 보안 AWS WAF](infrastructure-security.md)

# 에서 데이터 보호 AWS WAF
<a name="data-protection"></a>

 AWS [공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/)의 데이터 보호에 적용됩니다 AWS WAF. 이 모델에 설명된 대로 AWS 는 모든를 실행하는 글로벌 인프라를 보호할 책임이 있습니다 AWS 클라우드. 사용자는 이 인프라에 호스팅되는 콘텐츠에 대한 통제 권한을 유지할 책임이 있습니다. 사용하는 AWS 서비스 의 보안 구성과 관리 태스크에 대한 책임도 사용자에게 있습니다. 데이터 프라이버시에 관한 자세한 내용은 [데이터 프라이버시 FAQ](https://aws.amazon.com/compliance/data-privacy-faq/)를 참조하세요. 유럽의 데이터 보호에 대한 자세한 내용은 *AWS 보안 블로그*의 [AWS 공동 책임 모델 및 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 블로그 게시물을 참조하세요.

데이터 보호를 위해 자격 증명을 보호하고 AWS 계정 AWS IAM Identity Center 또는 AWS Identity and Access Management (IAM)를 사용하여 개별 사용자를 설정하는 것이 좋습니다. 이렇게 하면 개별 사용자에게 자신의 직무를 충실히 이행하는 데 필요한 권한만 부여됩니다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋습니다.
+ 각 계정에 다중 인증(MFA)을 사용합니다.
+ SSL/TLS를 사용하여 AWS 리소스와 통신합니다. TLS 1.2는 필수이며 TLS 1.3을 권장합니다.
+ 를 사용하여 API 및 사용자 활동 로깅을 설정합니다 AWS CloudTrail. CloudTrail 추적을 사용하여 AWS 활동을 캡처하는 방법에 대한 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [ CloudTrail 추적 작업을](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) 참조하세요.
+ 내부의 모든 기본 보안 제어와 함께 AWS 암호화 솔루션을 사용합니다 AWS 서비스.
+ Amazon S3에 저장된 민감한 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용합니다.
+ 명령줄 인터페이스 또는 API를 AWS 통해에 액세스할 때 FIPS 140-3 검증 암호화 모듈이 필요한 경우 FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 [연방 정보 처리 표준(FIPS) 140-3](https://aws.amazon.com/compliance/fips/)을 참조하세요.

고객의 이메일 주소와 같은 기밀 정보나 중요한 정보는 태그나 **이름** 필드와 같은 자유 형식 텍스트 필드에 입력하지 않는 것이 좋습니다. 여기에는 AWS WAF 또는 기타 AWS 서비스 에서 콘솔, API AWS CLI또는 AWS SDKs를 사용하여 작업하는 경우가 포함됩니다. 이름에 사용되는 태그 또는 자유 형식 텍스트 필드에 입력하는 모든 데이터는 청구 또는 진단 로그에 사용될 수 있습니다. 외부 서버에 URL을 제공할 때 해당 서버에 대한 요청을 검증하기 위해 자격 증명을 URL에 포함해서는 안 됩니다.

AWS WAF 보호 팩(웹 ACLs), 규칙 그룹 및 IP 세트와 같은 엔터티는 저장 시 암호화됩니다. 단, 중국(베이징) 및 중국(닝샤)을 포함하여 암호화를 사용할 수 없는 특정 리전은 예외입니다. 리전마다 고유한 암호화 키가 사용됩니다.

## AWS WAF 리소스 삭제
<a name="deleting-resources"></a>

 AWS WAF에서 생성하는 리소스를 삭제할 수 있습니다. 다음 섹션에 설명된 각 리소스 유형에 대한 지침을 참조하세요.
+ [보호 팩(웹 ACL) 삭제](web-acl-deleting.md)
+ [규칙 그룹 삭제](waf-rule-group-deleting.md)
+ [IP 집합 삭제](waf-ip-set-managing.md#waf-ip-set-deleting)
+ [정규식 패턴 집합 삭제](waf-regex-pattern-set-managing.md#waf-regex-pattern-set-deleting)

# 에서 IAM 사용 AWS WAF
<a name="security-iam"></a>

이 섹션에서는에서 IAM을 사용하는 방법을 설명합니다 AWS WAF.



AWS Identity and Access Management (IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어하는 데 도움이 AWS 서비스 되는 입니다. IAM 관리자는 누가 AWS WAF 리소스를 사용할 수 있는 *인증*(로그인) 및 *권한*(권한 있음)을 받을 수 있는지 제어합니다. IAM은 추가 비용 없이 사용할 수 AWS 서비스 있는 입니다.

**Topics**
+ [대상](#security_iam_audience)
+ [ID를 통한 인증](#security_iam_authentication)
+ [정책을 사용하여 액세스 관리](#security_iam_access-manage)
+ [AWS WAF 에서 IAM을 사용하는 방법](security_iam_service-with-iam.md)
+ [에 대한 자격 증명 기반 정책 예제 AWS WAF](security_iam_id-based-policy-examples.md)
+ [AWS 에 대한 관리형 정책 AWS WAF](security-iam-awsmanpol.md)
+ [AWS WAF 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md)
+ [에 대한 서비스 연결 역할 사용 AWS WAF](using-service-linked-roles.md)

## 대상
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM)를 사용하는 방법은 역할에 따라 다릅니다.
+ **서비스 사용자** - 기능에 액세스할 수 없는 경우 관리자에게 권한 요청(참조[AWS WAF 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md))
+ **서비스 관리자** - 사용자 액세스 결정 및 권한 요청 제출([AWS WAF 에서 IAM을 사용하는 방법](security_iam_service-with-iam.md) 참조)
+ **IAM 관리자** - 액세스를 관리하기 위한 정책 작성([에 대한 자격 증명 기반 정책 예제 AWS WAF](security_iam_id-based-policy-examples.md) 참조)

## ID를 통한 인증
<a name="security_iam_authentication"></a>

인증은 자격 증명 자격 증명을 AWS 사용하여에 로그인하는 방법입니다. AWS 계정 루트 사용자, IAM 사용자 또는 IAM 역할을 수임하여 인증해야 합니다.

 AWS IAM Identity Center (IAM Identity Center), Single Sign-On 인증 또는 Google/Facebook 자격 증명과 같은 자격 증명 소스의 자격 증명을 사용하여 페더레이션 자격 증명으로 로그인할 수 있습니다. 로그인하는 방법에 대한 자세한 내용은 *AWS Sign-In 사용 설명서*의 [AWS 계정에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 섹션을 참조하세요.

프로그래밍 방식 액세스를 위해는 요청에 암호화 방식으로 서명할 수 있는 SDK 및 CLI를 AWS 제공합니다. 자세한 내용은 *IAM 사용 설명서*의 [API 요청용AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) 섹션을 참조하세요.

### AWS 계정 루트 사용자
<a name="security_iam_authentication-rootuser"></a>

 를 생성할 때 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 AWS 계정 *theroot 사용자*라는 하나의 로그인 자격 증명으로 AWS 계정시작합니다. 일상적인 태스크에 루트 사용자를 사용하지 않을 것을 강력히 권장합니다. 루트 사용자 자격 증명이 필요한 작업은 *IAM 사용 설명서*의 [루트 사용자 자격 증명이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) 섹션을 참조하세요.

### 페더레이션 ID
<a name="security_iam_authentication-federated"></a>

가장 좋은 방법은 인간 사용자에게 자격 증명 공급자와의 페더레이션을 사용하여 임시 자격 증명을 AWS 서비스 사용하여에 액세스하도록 요구하는 것입니다.

*페더레이션 자격 증명*은 엔터프라이즈 디렉터리, 웹 자격 증명 공급자 또는 자격 증명 소스의 자격 증명을 AWS 서비스 사용하여 Directory Service 에 액세스하는 사용자입니다. 페더레이션 ID는 임시 자격 증명을 제공하는 역할을 수임합니다.

중앙 집중식 액세스 관리를 위해 AWS IAM Identity Center를 추천합니다. 자세한 정보는 *AWS IAM Identity Center 사용 설명서*의 [What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)를 참조하세요.

### IAM 사용자 및 그룹
<a name="security_iam_authentication-iamuser"></a>

*[IAM 사용자](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*는 단일 개인 또는 애플리케이션에 대한 특정 권한을 가진 ID입니다. 장기 자격 증명이 있는 IAM 사용자 대신 임시 자격 증명을 사용하는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 자격 [증명 공급자와의 연동을 사용하여 임시 자격 증명을 AWS 사용하여에 액세스하도록 인간 사용자에게 요구](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)하기를 참조하세요.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)은 IAM 사용자 모음을 지정하고 대규모 사용자 집합에 대한 관리 권한을 더 쉽게 만듭니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 사용자 사용 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) 섹션을 참조하세요.

### IAM 역할
<a name="security_iam_authentication-iamrole"></a>

*[IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*은 임시 자격 증명을 제공하는 특정 권한이 있는 자격 증명입니다. [사용자에서 IAM 역할(콘솔)로 전환하거나 또는 API 작업을 호출하여 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) 수임할 수 있습니다. AWS CLI AWS 자세한 내용은 *IAM 사용 설명서*의 [역할 수임 방법](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)을 참조하세요.

IAM 역할은 페더레이션 사용자 액세스, 임시 IAM 사용자 권한, 교차 계정 액세스, 교차 서비스 액세스 및 Amazon EC2에서 실행되는 애플리케이션에 유용합니다. 자세한 내용은 *IAM 사용 설명서*의 [교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## 정책을 사용하여 액세스 관리
<a name="security_iam_access-manage"></a>

정책을 AWS 생성하고 자격 증명 또는 리소스에 연결하여 AWS 에서 액세스를 제어합니다. 정책은 자격 증명 또는 리소스와 연결될 때 권한을 정의합니다.는 보안 주체가 요청할 때 이러한 정책을 AWS 평가합니다. 대부분의 정책은에 JSON 문서 AWS 로 저장됩니다. JSON 정책 문서에 대한 자세한 내용은 *IAM 사용 설명서*의 [JSON 정책 개요](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) 섹션을 참조하세요.

정책을 사용하여 관리자는 어떤 **보안 주체**가 어떤 **리소스**에 대해 어떤 **조건**에서 **작업**을 수행할 수 있는지 정의하여 누가 무엇을 액세스할 수 있는지 지정합니다.

기본적으로 사용자 및 역할에는 어떠한 권한도 없습니다. IAM 관리자는 IAM 정책을 생성하고 사용자가 수임할 수 있는 역할에 추가합니다. IAM 정책은 작업을 수행하기 위해 사용하는 방법과 관계없이 작업에 대한 권한을 정의합니다.

### ID 기반 정책
<a name="security_iam_access-manage-id-based-policies"></a>

ID 기반 정책은 ID(사용자, 사용자 그룹 또는 역할)에 연결하는 JSON 권한 정책 문서입니다. 이러한 정책은 자격 증명이 수행할 수 있는 작업, 대상 리소스 및 이에 관한 조건을 제어합니다. ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

ID 기반 정책은 *인라인 정책*(단일 ID에 직접 포함) 또는 *관리형 정책*(여러 ID에 연결된 독립 실행형 정책)일 수 있습니다. 관리형 정책 또는 인라인 정책을 선택하는 방법을 알아보려면 *IAM 사용 설명서*의 [관리형 정책 및 인라인 정책 중에서 선택](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) 섹션을 참조하세요.

### 리소스 기반 정책
<a name="security_iam_access-manage-resource-based-policies"></a>

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 예를 들어 IAM *역할 신뢰 정책* 및 Amazon S3 *버킷 정책*이 있습니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다.

리소스 기반 정책은 해당 서비스에 있는 인라인 정책입니다. 리소스 기반 정책에서는 IAM의 AWS 관리형 정책을 사용할 수 없습니다.

### 기타 정책 유형
<a name="security_iam_access-manage-other-policies"></a>

AWS 는 보다 일반적인 정책 유형에서 부여한 최대 권한을 설정할 수 있는 추가 정책 유형을 지원합니다.
+ **권한 경계** - ID 기반 정책에서 IAM 엔터티에 부여할 수 있는 최대 권한을 설정합니다. 자세한 정보는 *IAM 사용 설명서*의 [IAM 엔터티의 권한 범위](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)를 참조하세요.
+ **서비스 제어 정책(SCP)** - AWS Organizations내 조직 또는 조직 단위에 대한 최대 권한을 지정합니다. 자세한 내용은AWS Organizations 사용 설명서의 [서비스 제어 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 참조하세요.**
+ **리소스 제어 정책(RCP)** – 계정의 리소스에 사용할 수 있는 최대 권한을 설정합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [리소스 제어 정책(RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)을 참조하세요.
+ **세션 정책** – 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 자세한 내용은 *IAM 사용 설명서*의 [세션 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)을 참조하세요.

### 여러 정책 유형
<a name="security_iam_access-manage-multiple-policies"></a>

여러 정책 유형이 요청에 적용되는 경우, 결과 권한은 이해하기가 더 복잡합니다. 에서 여러 정책 유형이 관련될 때 요청을 허용할지 여부를 AWS 결정하는 방법을 알아보려면 *IAM 사용 설명서*의 [정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)을 참조하세요.

# AWS WAF 에서 IAM을 사용하는 방법
<a name="security_iam_service-with-iam"></a>

이 섹션에서는에서 IAM의 기능을 사용하는 방법을 설명합니다 AWS WAF.

IAM을 사용하여에 대한 액세스를 관리하기 전에 사용할 수 있는 IAM 기능을 AWS WAF알아봅니다 AWS WAF.






**에서 사용할 수 있는 IAM 기능 AWS WAF**  

| IAM 특성 | AWS WAF 지원 | 
| --- | --- | 
|  [자격 증명 기반 정책](#security_iam_service-with-iam-id-based-policies)  |   예  | 
|  [리소스 기반 정책](#security_iam_service-with-iam-resource-based-policies)  |   예  | 
|  [정책 작업](#security_iam_service-with-iam-id-based-policies-actions)  |   예  | 
|  [정책 리소스](#security_iam_service-with-iam-id-based-policies-resources)  |   예  | 
|  [정책 조건 키(서비스별)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   예  | 
|  [ACL](#security_iam_service-with-iam-acls)  |   아니요   | 
|  [ABAC(정책 내 태그)](#security_iam_service-with-iam-tags)  |   부분적  | 
|  [임시 자격 증명](#security_iam_service-with-iam-roles-tempcreds)  |   예  | 
|  [전달 액세스 세션(FAS)](#security_iam_service-with-iam-principal-permissions)  |   예  | 
|  [서비스 역할](#security_iam_service-with-iam-roles-service)  |   예  | 
|  [서비스 연결 역할](#security_iam_service-with-iam-roles-service-linked)  |   예  | 

 AWS WAF 및 기타 AWS 서비스가 대부분의 IAM 기능과 작동하는 방법을 개괄적으로 알아보려면 *IAM 사용 설명서*의 [AWS IAM으로 작업하는 서비스를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 참조하세요.

## 에 대한 자격 증명 기반 정책 AWS WAF
<a name="security_iam_service-with-iam-id-based-policies"></a>

**ID 기반 정책 지원:** 예

ID 기반 정책은 IAM 사용자, 사용자 그룹 또는 역할과 같은 ID에 연결할 수 있는 JSON 권한 정책 문서입니다. 이러한 정책은 사용자 및 역할이 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 제어합니다. 자격 증명 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

IAM ID 기반 정책을 사용하면 허용되거나 거부되는 작업과 리소스뿐 아니라 작업이 허용되거나 거부되는 조건을 지정할 수 있습니다. JSON 정책에서 사용할 수 있는 모든 요소에 대해 알아보려면 *IAM 사용 설명서*의 [IAM JSON 정책 요소 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)를 참조하세요.

자격 AWS WAF 증명 기반 정책의 예를 보려면 섹션을 참조하세요[에 대한 자격 증명 기반 정책 예제 AWS WAF](security_iam_id-based-policy-examples.md).

## 내의 리소스 기반 정책 AWS WAF
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**리소스 기반 정책 지원:** 예

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 리소스 기반 정책의 예제는 IAM *역할 신뢰 정책*과 Amazon S3 *버킷 정책*입니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 정책이 연결된 리소스의 경우 정책은 지정된 보안 주체가 해당 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 정의합니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다. 보안 주체에는 계정, 사용자, 역할, 페더레이션 사용자 또는이 포함될 수 있습니다 AWS 서비스.

교차 계정 액세스를 활성화하려는 경우, 전체 계정이나 다른 계정의 IAM 개체를 리소스 기반 정책의 보안 주체로 지정할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM에서 교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

AWS WAF 는 리소스 기반 정책을 사용하여 계정 간 규칙 그룹 공유를 지원합니다. AWS WAF API 호출 `PutPermissionPolicy` 또는 이에 상응하는 CLI 또는 SDK 호출에 리소스 기반 정책 설정을 제공하여 소유한 규칙 그룹을 다른 AWS 계정과 공유합니다. 사용 가능한 다른 언어에 대한 예제 및 설명서 링크를 포함한 추가 정보는 AWS WAF API 참조의 [PutPermissionPolicy](https://docs.aws.amazon.com/waf/latest/APIReference/API_PutPermissionPolicy.html)를 참조하세요. 콘솔이나 CloudFormation같은 다른 방법으로는 이 기능을 사용할 수 없습니다.

## 에 대한 정책 작업 AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**정책 작업 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

JSON 정책의 `Action`요소는 정책에서 액세스를 허용하거나 거부하는 데 사용할 수 있는 작업을 설명합니다. 연결된 작업을 수행할 수 있는 권한을 부여하기 위한 정책에 작업을 포함하세요.



각 작업에 대한 AWS WAF 작업 및 권한 목록을 보려면 *서비스 권한 부여 참조*의 [AWS WAF V2에서 정의한 작업을](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) 참조하세요.

의 정책 작업은 작업 앞에 다음 접두사를 AWS WAF 사용합니다.

```
wafv2
```

단일 문에서 여러 작업을 지정하려면 쉼표로 구분합니다.

```
"Action": [
      "wafv2:action1",
      "wafv2:action2"
         ]
```



와일드카드(\$1)를 사용하여 여러 작업을 지정할 수 있습니다. 예를 들어 로 AWS WAF 시작하는의 모든 작업을 지정하려면 다음 작업을 `List`포함합니다.

```
"Action": "wafv2:List*"
```

자격 AWS WAF 증명 기반 정책의 예를 보려면 섹션을 참조하세요[에 대한 자격 증명 기반 정책 예제 AWS WAF](security_iam_id-based-policy-examples.md).

### 추가 권한 설정이 필요한 작업
<a name="security_iam_action-additions"></a>

일부 작업에는 *서비스 승인 참조*의 [AWS WAF V2에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions)에서 완전히 설명할 수 없는 권한이 필요합니다. 이 섹션에서는 추가 권한 정보를 제공합니다.

**Topics**
+ [`AssociateWebACL` 권한](#security_iam_action-AssociateWebACL)
+ [`DisassociateWebACL` 권한](#security_iam_action-DisassociateWebACL)
+ [`GetWebACLForResource` 권한](#security_iam_action-GetWebACLForResource)
+ [`ListResourcesForWebACL` 권한](#security_iam_action-ListResourcesForWebACL)

#### `AssociateWebACL` 권한
<a name="security_iam_action-AssociateWebACL"></a>

이 섹션에는 AWS WAF 작업을 `AssociateWebACL`을 사용하여 보호 팩(웹 ACL)을 리소스에 연결하는 데 필요한 권한이 나열되어 있습니다.

Amazon CloudFront 배포의 경우 이 작업 대신 CloudFront 작업 `UpdateDistribution`을 사용합니다. 자세한 내용은 *Amazon CloudFront API 참조*의 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)을 참조하세요.

**Amazon API Gateway REST API**  
REST API 리소스 유형`SetWebACL`에서 API Gateway를 호출하고 보호 팩(웹 ACL)에서를 호출 AWS WAF `AssociateWebACL`할 수 있는 권한이 필요합니다.

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apigateway:SetWebACL"
    ],
    "Resource": [
        "arn:aws:apigateway:*::/restapis/*/stages/*"
    ]
}
```

**Application Load Balancer**  
Application Load Balancer 리소스 유형에서 `elasticloadbalancing:SetWebACL` 작업을 호출하고 보호 팩(웹 ACL)`AssociateWebACL`에서를 호출 AWS WAF 할 수 있는 권한이 필요합니다.

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:SetWebACL"
    ],
    "Resource": [
        "arn:aws:elasticloadbalancing:*:account-id:loadbalancer/app/*/*"
    ]
}
```

**AWS AppSync GraphQL API**  
GraphQL API 리소스 유형에서를 호출 AWS AppSync `SetWebACL`하고 보호 팩(웹 ACL)에서를 호출 AWS WAF `AssociateWebACL`할 수 있는 권한이 필요합니다.

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:SetWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:account-id:apis/*"
    ]
}
```

**Amazon Cognito 사용자 풀**  
사용자 풀 리소스 유형에서 Amazon Cognito `AssociateWebACL` 작업을 호출하고 보호 팩(웹 ACL)에서를 호출 AWS WAF `AssociateWebACL`할 수 있는 권한이 필요합니다.

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:account-id:userpool/*"
    ]
}
```

**AWS App Runner 서비스**  
App Runner 서비스 리소스 유형에서 App Runner `AssociateWebACL` 작업을 호출하고 웹 ACL에서를 호출 AWS WAF `AssociateWebACL`할 수 있는 권한이 필요합니다.

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:AssociateWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:account-id:service/*/*"
    ]
}
```

**AWS Verified·Access 인스턴스**  
Verified Access 인스턴스 리소스 유형에서 `ec2:AssociateVerifiedAccessInstanceWebAcl` 작업을 호출하고 웹 ACL에서를 호출 AWS WAF `AssociateWebACL`할 수 있는 권한이 필요합니다.

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:AssociateVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:account-id:verified-access-instance/*"
    ]
}
```

#### `DisassociateWebACL` 권한
<a name="security_iam_action-DisassociateWebACL"></a>

이 섹션에는 AWS WAF 작업 `DisassociateWebACL`을 사용하여 보호 팩(웹 ACL)을 리소스에서 연결 해제하는 데 필요한 권한이 나열되어 있습니다.

Amazon CloudFront 배포의 경우 이 작업 대신 보호 팩(웹 ACL) ID가 비어 있는 CloudFront 작업 `UpdateDistribution`을 사용합니다. 자세한 내용은 *Amazon CloudFront API 참조*의 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)을 참조하세요.

**Amazon API Gateway REST API**  
REST API 리소스 유형에서 API Gateway `SetWebACL`을 호출할 수 있는 권한이 필요합니다. 를 호출할 수 있는 권한이 필요하지 않습니다 AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "apigateway:SetWebACL"
    ],
    "Resource": [
        "arn:aws:apigateway:*::/restapis/*/stages/*"
    ]
}
```

**Application Load Balancer**  
Application Load Balancer 리소스 유형에 대해 `elasticloadbalancing:SetWebACL` 작업을 호출할 수 있는 권한이 필요합니다. 를 호출할 수 있는 권한이 필요하지 않습니다 AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:SetWebACL"
    ],
    "Resource": [
        "arn:aws:elasticloadbalancing:*:account-id:loadbalancer/app/*/*"
    ]
}
```

**AWS AppSync GraphQL API**  
GraphQL API 리소스 유형에 대해를 호출 AWS AppSync `SetWebACL`할 수 있는 권한이 필요합니다. 를 호출할 수 있는 권한이 필요하지 않습니다 AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "appsync:SetWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:account-id:apis/*"
    ]
}
```

**Amazon Cognito 사용자 풀**  
사용자 풀 리소스 유형에 대해 Amazon Cognito `DisassociateWebACL` 작업을 호출하고를 호출할 수 있는 권한이 필요합니다 AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:DisassociateWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:account-id:userpool/*"
    ]
}
```

**AWS App Runner 서비스**  
App Runner 서비스 리소스 유형에서 App Runner `DisassociateWebACL` 작업을 호출하고를 호출할 수 있는 권한이 필요합니다 AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:DisassociateWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:account-id:service/*/*"
    ]
}
```

**AWS Verified·Access 인스턴스**  
Verified Access 인스턴스 리소스 유형에 대한 `ec2:DisassociateVerifiedAccessInstanceWebAcl` 작업을 호출하고를 호출할 수 있는 권한이 필요합니다 AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:DisassociateVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:account-id:verified-access-instance/*"
    ]
}
```

#### `GetWebACLForResource` 권한
<a name="security_iam_action-GetWebACLForResource"></a>

이 섹션에는 AWS WAF 작업 `GetWebACLForResource`을 사용하여 보호된 리소스에 대해 보호 팩(웹 ACL)을 가져오는 데 필요한 권한이 나열되어 있습니다.

Amazon CloudFront 배포의 경우 이 작업 대신 CloudFront 작업 `GetDistributionConfig`을 사용합니다. 자세한 내용은 *Amazon CloudFront API 참조*에서 [GetDistributionConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistributionConfig.html)를 참조하세요.

**참고**  
`GetWebACLForResource`는 `GetWebACL`을 호출하는 데 권한이 필요합니다. 이 컨텍스트에서는가 `GetWebACLForResource` 반환하는 보호 팩(웹 ACL)에 액세스하는 데 필요한 권한이 계정에 있는지 확인하는 데`GetWebACL`만를 AWS WAF 사용합니다. 를 호출하면 계정에 리소스`wafv2:GetWebACL`에서를 수행할 권한이 없음을 나타내는 오류가 발생할 `GetWebACLForResource`수 있습니다. AWS WAF 는 AWS CloudTrail 이벤트 기록에이 유형의 오류를 추가하지 않습니다.

**Amazon API Gateway REST API, Application Load Balancer 및 AWS AppSync GraphQL API**  
보호 팩(웹 ACL)에 `GetWebACL` 대해 및를 호출 AWS WAF `GetWebACLForResource`할 수 있는 권한이 필요합니다.

```
{
    "Sid": "GetWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
}
```

**Amazon Cognito 사용자 풀**  
사용자 풀 리소스 유형에 대해 Amazon Cognito `GetWebACLForResource` 작업을 호출하고 및를 호출 AWS WAF `GetWebACLForResource`할 수 있는 권한이 필요합니다`GetWebACL`.

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [ 
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:GetWebACLForResource"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:account-id:userpool/*"
    ]
}
```

**AWS App Runner 서비스**  
App Runner 서비스 리소스 유형에서 App Runner `DescribeWebAclForService` 작업을 호출하고 `GetWebACLForResource` 및를 호출 AWS WAF 할 수 있는 권한이 필요합니다`GetWebACL`.

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "apprunner:DescribeWebAclForService"
    ],
    "Resource": [
        "arn:aws:apprunner:*:account-id:service/*/*"
    ]
}
```

**AWS Verified·Access 인스턴스**  
Verified Access 인스턴스 리소스 유형에 대한 `ec2:GetVerifiedAccessInstanceWebAcl` 작업을 호출하고 및를 호출 AWS WAF `GetWebACLForResource`할 수 있는 권한이 필요합니다`GetWebACL`.

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "ec2:GetVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:account-id:verified-access-instance/*"
    ]
}
```

#### `ListResourcesForWebACL` 권한
<a name="security_iam_action-ListResourcesForWebACL"></a>

이 섹션에는 AWS WAF 작업인 `ListResourcesForWebACL`을 사용하여 보호 팩(웹 ACL)의 보호된 리소스 목록을 검색하는 데 필요한 권한이 나열되어 있습니다.

Amazon CloudFront 배포의 경우 이 작업 대신 CloudFront 작업 `ListDistributionsByWebACLId`을 사용합니다. 자세한 내용은 *Amazon CloudFront API 참조*의 [ListDistributionsByWebACLId](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDistributionsByWebACLId.html)를 참조하세요.

**Amazon API Gateway REST API, Application Load Balancer 및 AWS AppSync GraphQL API**  
웹 ACL에 대해를 호출 AWS WAF `ListResourcesForWebACL`할 수 있는 권한이 필요합니다.

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
}
```

**Amazon Cognito 사용자 풀**  
사용자 풀 리소스 유형에 대해 Amazon Cognito `ListResourcesForWebACL` 작업을 호출하고 AWS WAF `ListResourcesForWebACL`을 호출할 수 있는 권한이 필요합니다.

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:account-id:userpool/*"
    ]
}
```

**AWS App Runner 서비스**  
App Runner 서비스 리소스 유형에서 App Runner `ListAssociatedServicesForWebAcl` 작업을 호출하고를 호출할 수 있는 권한이 필요합니다 AWS WAF `ListResourcesForWebACL`.

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:ListAssociatedServicesForWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:account-id:service/*/*"
    ]
}
```

**AWS Verified·Access 인스턴스**  
확인된 액세스 인스턴스 리소스 유형에 대해 `ec2:DescribeVerifiedAccessInstanceWebAclAssociations` 작업을 호출하고 AWS WAF `ListResourcesForWebACL`을 호출하는 데 권한이 필요합니다.

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:DescribeVerifiedAccessInstanceWebAclAssociations"
    ],
    "Resource": [
        "arn:aws:ec2:*:account-id:verified-access-instance/*"
    ]
}
```

## 에 대한 정책 리소스 AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**정책 리소스 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Resource` JSON 정책 요소는 작업이 적용되는 하나 이상의 객체를 지정합니다. 모범 사례에 따라 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)을 사용하여 리소스를 지정합니다. 리소스 수준 권한을 지원하지 않는 작업의 경우, 와일드카드(\$1)를 사용하여 해당 문이 모든 리소스에 적용됨을 나타냅니다.

```
"Resource": "*"
```

 AWS WAF 리소스 유형 및 해당 ARNs 목록을 보려면 *서비스 승인* 참조의 [AWS WAF V2에서 정의한 리소스를](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-resources-for-iam-policies) 참조하세요. 각 리소스의 ARN을 지정할 수 있는 작업을 알아보려면 [AWS WAF V2에서 정의한 작업을](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) 참조하세요. AWS WAF 리소스 하위 집합에 대한 액세스를 허용하거나 거부하려면 정책의 `resource` 요소에 리소스의 ARN을 포함합니다.

리소스의 AWS WAF `wafv2` ARNs 형식은 다음과 같습니다.

```
arn:partition:wafv2:region:account-id:scope/resource-type/resource-name/resource-id
```

ARN 사양에 대한 일반 정보는 Amazon Web Services 일반 참조의 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)을 참조하세요.

다음은 `wafv2` 리소스의 ARN과 관련된 요구 사항 목록입니다.
+ *region*: Amazon CloudFront 배포를 보호하는 데 사용하는 AWS WAF 리소스의 경우 로 설정합니다`us-east-1`. 그렇지 않으면 보호 대상 리전 리소스에서 사용하는 리전으로 설정합니다.
+ *범위*: Amazon CloudFront 배포에서 `global` 사용하거나가 AWS WAF 지원하는 리전 리소스에서 사용할 수 `regional` 있도록 범위를 로 설정합니다. 리전 리소스는 Amazon API Gateway REST API, Application Load Balancer, an AWS AppSync GraphQL API, Amazon Cognito 사용자 풀, AWS App Runner 서비스 및 AWS Verified Access 인스턴스입니다.
+ *리소스 유형*: `webacl`, `rulegroup`, `ipset`, `regexpatternset` 또는 `managedruleset` 값 중 하나를 지정합니다.
+ *resource-name*: AWS WAF 리소스에 지정한 이름을 지정하거나 와일드카드(`*`)를 지정하여 ARN의 나머지 사양을 충족하는 모든 리소스를 나타냅니다. 리소스 이름과 리소스 ID를 지정하거나 두 가지 모두에 대해 와일드카드를 지정해야 합니다.
+ *resource-id*: AWS WAF 리소스의 ID를 지정하거나 와일드카드(`*`)를 지정하여 ARN의 나머지 사양을 충족하는 모든 리소스를 나타냅니다. 리소스 이름과 리소스 ID를 지정하거나 두 가지 모두에 대해 와일드카드를 지정해야 합니다.

예를 들어 다음 ARN은 `us-west-1` 리전에서 계정 `111122223333`에 대한 리전 범위가 있는 모든 보호 팩(웹 ACL)을 지정합니다.

```
arn:aws:wafv2:us-west-1:111122223333:regional/webacl/*/*
```

다음 ARN은 `us-east-1` 리전의 `111122223333` 계정에 대해 글로벌 범위를 사용하는 `MyIPManagementRuleGroup`이라는 이름이 지정된 규칙 그룹을 지정합니다.

```
arn:aws:wafv2:us-east-1:111122223333:global/rulegroup/MyIPManagementRuleGroup/1111aaaa-bbbb-cccc-dddd-example-id
```

자격 AWS WAF 증명 기반 정책의 예를 보려면 섹션을 참조하세요[에 대한 자격 증명 기반 정책 예제 AWS WAF](security_iam_id-based-policy-examples.md).

## 에 대한 정책 조건 키 AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**서비스별 정책 조건 키 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Condition` 요소는 정의된 기준에 따라 문이 실행되는 시기를 지정합니다. 같음(equals) 또는 미만(less than)과 같은 [조건 연산자](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다. 모든 AWS 전역 조건 키를 보려면 *IAM 사용 설명서*의 [AWS 전역 조건 컨텍스트 키를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 참조하세요.

또한는 IAM 정책에 대한 세분화된 필터링을 제공하는 데 사용할 수 있는 다음과 같은 조건 키를 AWS WAF 지원합니다.
+ **wafv2:LogDestinationResource**

  이 조건 키는 로깅 대상에 대한 Amazon 리소스 이름(ARN) 사양을 사용합니다. 이는 REST API 호출 `PutLoggingConfiguration`을 사용할 때 로깅 대상에 제공하는 ARN입니다.

  ARN을 명시적으로 지정하고 ARN에 대한 필터링을 지정할 수 있습니다. 다음 예제에서는 특정 위치 및 접두사가 있는 Amazon S3 버킷 ARN에 대한 필터링을 지정합니다.

  ```
  "Condition": { "ArnLike": { "wafv2:LogDestinationResource": "arn:aws:s3:::aws-waf-logs-suffix/custom-prefix/*" } }
  ```
+ **wafv2:LogScope**

  이 조건 키는 문자열에서 로깅 구성의 소스를 정의합니다. 현재 이 값은 항상 기본값인 `Customer`로 설정되어 있으며, 이는 로깅 대상이 사용자가 소유하고 관리함을 나타냅니다.

 AWS WAF 조건 키 목록을 보려면 *서비스 승인* 참조의 [조건 키 for AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-policy-keys)를 참조하세요. 조건 키를 사용할 수 있는 작업 및 리소스를 알아보려면 [AWS WAF V2에서 정의한 작업을](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) 참조하세요.

자격 AWS WAF 증명 기반 정책의 예를 보려면 섹션을 참조하세요[에 대한 자격 증명 기반 정책 예제 AWS WAF](security_iam_id-based-policy-examples.md).

## ACLs AWS WAF
<a name="security_iam_service-with-iam-acls"></a>

**ACL 지원:** 아니요 

액세스 제어 목록(ACL)은 어떤 보안 주체(계정 멤버, 사용자 또는 역할)가 리소스에 액세스할 수 있는 권한을 가지고 있는지를 제어합니다. ACL은 JSON 정책 문서 형식을 사용하지 않지만 리소스 기반 정책과 유사합니다.

## 를 사용한 ABAC AWS WAF
<a name="security_iam_service-with-iam-tags"></a>

**ABAC 지원(정책의 태그):** 부분적

속성 기반 액세스 제어(ABAC)는 태그라고 불리는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다. IAM 엔터티 및 AWS 리소스에 태그를 연결한 다음 보안 주체의 태그가 리소스의 태그와 일치할 때 작업을 허용하는 ABAC 정책을 설계할 수 있습니다.

태그에 근거하여 액세스를 제어하려면 `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`또는 `aws:TagKeys`조건 키를 사용하여 정책의 [조건 요소](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)에 태그 정보를 제공합니다.

서비스가 모든 리소스 유형에 대해 세 가지 조건 키를 모두 지원하는 경우, 값은 서비스에 대해 **예**입니다. 서비스가 일부 리소스 유형에 대해서만 세 가지 조건 키를 모두 지원하는 경우, 값은 **부분적**입니다.

ABAC에 대한 자세한 내용은 *IAM 사용 설명서*의 [ABAC 권한 부여를 통한 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)를 참조하세요. ABAC 설정 단계가 포함된 자습서를 보려면 *IAM 사용 설명서*의 [속성 기반 액세스 제어(ABAC) 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)을 참조하세요.

## 에서 임시 자격 증명 사용 AWS WAF
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**임시 자격 증명 지원:** 예

임시 자격 증명은 AWS 리소스에 대한 단기 액세스를 제공하며 페더레이션을 사용하거나 역할을 전환할 때 자동으로 생성됩니다. 장기 액세스 키를 사용하는 대신 임시 자격 증명을 동적으로 생성하는 것이 AWS 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 임시 보안 자격 증명](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 및 [IAM으로 작업하는AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 섹션을 참조하세요.

## 서비스에 대한 전달 액세스 세션 AWS WAF
<a name="security_iam_service-with-iam-principal-permissions"></a>

**전달 액세스 세션(FAS) 지원:** 예

 전달 액세스 세션(FAS)은를 호출하는 보안 주체의 권한을 다운스트림 서비스에 AWS 서비스 대한 요청과 AWS 서비스함께 사용합니다. FAS 요청 시 정책 세부 정보는 [전달 액세스 세션](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)을 참조하세요.

## 에 대한 서비스 역할 AWS WAF
<a name="security_iam_service-with-iam-roles-service"></a>

**서비스 역할 지원:** 예

 서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하는 것으로 가정하는 [IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 서비스 AWS에 권한을 위임할 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)을 참조하세요.

**주의**  
서비스 역할에 대한 권한을 변경하면 AWS WAF 기능이 중단될 수 있습니다. 에서 관련 지침을 AWS WAF 제공하는 경우에만 서비스 역할을 편집합니다.

## 에 대한 서비스 연결 역할 AWS WAF
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**서비스 연결 역할 지원:** 예

 서비스 연결 역할은에 연결된 서비스 역할의 한 유형입니다 AWS 서비스. 서비스는 사용자를 대신하여 작업을 수행하기 위해 역할을 수임할 수 있습니다. 서비스 연결 역할은에 나타나 AWS 계정 며 서비스가 소유합니다. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집은 할 수 없습니다.

 AWS WAF 서비스 연결 역할 생성 또는 관리에 대한 자세한 내용은 섹션을 참조하세요[에 대한 서비스 연결 역할 사용 AWS WAF](using-service-linked-roles.md).

# 에 대한 자격 증명 기반 정책 예제 AWS WAF
<a name="security_iam_id-based-policy-examples"></a>

이 섹션에서는에 대한 자격 증명 기반 정책 예제를 제공합니다 AWS WAF.

기본적으로 사용자 및 역할에는 AWS WAF 리소스를 생성하거나 수정할 수 있는 권한이 없습니다. 사용자에게 사용자가 필요한 리소스에서 작업을 수행할 권한을 부여하려면 IAM 관리자가 IAM 정책을 생성하면 됩니다.

이러한 예제 JSON 정책 문서를 사용하여 IAM ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*의 [IAM 정책 생성(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)을 참조하세요.

각 리소스 유형에 대한 ARNs 형식을 포함하여 AWS WAF에서 정의한 작업 및 리소스 유형에 대한 자세한 내용은 *서비스 승인* 참조의 [AWS WAF V2에 사용되는 작업, 리소스 및 조건 키를](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html) 참조하세요.

**Topics**
+ [정책 모범 사례](#security_iam_service-with-iam-policy-best-practices)
+ [AWS WAF 콘솔 사용](#security_iam_id-based-policy-examples-console)
+ [사용자가 자신의 고유한 권한을 볼 수 있도록 허용](#security_iam_id-based-policy-examples-view-own-permissions)
+ [AWS WAF, CloudFront 및 CloudWatch에 대한 읽기 전용 액세스 권한 부여](#security_iam_id-based-policy-examples-read-only1)
+ [AWS WAF, CloudFront 및 CloudWatch에 대한 전체 액세스 권한 부여](#security_iam_id-based-policy-examples-full-access1)
+ [단일에 대한 액세스 권한 부여 AWS 계정](#security_iam_id-based-policy-examples-access-to-account)
+ [단일 보호 팩(웹 ACL)에 대한 액세스 권한 부여](#security_iam_id-based-policy-examples-access-to-web-acl)
+ [보호 팩(웹 ACL) 및 규칙 그룹에 대한 CLI 액세스 권한 부여](#security_iam_id-based-policy-examples-cli-access-to-web-acl)

## 정책 모범 사례
<a name="security_iam_service-with-iam-policy-best-practices"></a>

자격 증명 기반 정책에 따라 계정에서 사용자가 AWS WAF 리소스를 생성, 액세스 또는 삭제할 수 있는지 여부가 결정됩니다. 이 작업으로 인해 AWS 계정에 비용이 발생할 수 있습니다. ID 기반 정책을 생성하거나 편집할 때는 다음 지침과 권장 사항을 따르세요.
+ ** AWS 관리형 정책을 시작하고 최소 권한으로 전환 -** 사용자 및 워크로드에 권한 부여를 시작하려면 많은 일반적인 사용 사례에 대한 권한을 부여하는 *AWS 관리형 정책을* 사용합니다. 에서 사용할 수 있습니다 AWS 계정. 사용 사례에 맞는 AWS 고객 관리형 정책을 정의하여 권한을 추가로 줄이는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) 또는 [AWS 직무에 대한 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.
+ **최소 권한 적용** – IAM 정책을 사용하여 권한을 설정하는 경우, 작업을 수행하는 데 필요한 권한만 부여합니다. 이렇게 하려면 *최소 권한*으로 알려진 특정 조건에서 특정 리소스에 대해 수행할 수 있는 작업을 정의합니다. IAM을 사용하여 권한을 적용하는 방법에 대한 자세한 정보는 *IAM 사용 설명서*에 있는 [IAM의 정책 및 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)을 참조하세요.
+ **IAM 정책의 조건을 사용하여 액세스 추가 제한** – 정책에 조건을 추가하여 작업 및 리소스에 대한 액세스를 제한할 수 있습니다. 예를 들어, SSL을 사용하여 모든 요청을 전송해야 한다고 지정하는 정책 조건을 작성할 수 있습니다. AWS 서비스와 같은 특정를 통해 사용되는 경우 조건을 사용하여 서비스 작업에 대한 액세스 권한을 부여할 수도 있습니다 CloudFormation. 자세한 내용은 *IAM 사용 설명서*의 [IAM JSON 정책 요소: 조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)을 참조하세요.
+ **IAM Access Analyzer를 통해 IAM 정책을 확인하여 안전하고 기능적인 권한 보장** - IAM Access Analyzer에서는 IAM 정책 언어(JSON)와 모범 사례가 정책에서 준수되도록 새로운 및 기존 정책을 확인합니다. IAM Access Analyzer는 100개 이상의 정책 확인 항목과 실행 가능한 추천을 제공하여 안전하고 기능적인 정책을 작성하도록 돕습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM Access Analyzer에서 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.
+ **다중 인증(MFA) 필요 -**에서 IAM 사용자 또는 루트 사용자가 필요한 시나리오가 있는 경우 추가 보안을 위해 MFA를 AWS 계정켭니다. API 작업을 직접적으로 호출할 때 MFA가 필요하면 정책에 MFA 조건을 추가합니다. 자세한 내용은 *IAM 사용 설명서*의 [MFA를 통한 보안 API 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)를 참조하세요.

IAM의 모범 사례에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

## AWS WAF 콘솔 사용
<a name="security_iam_id-based-policy-examples-console"></a>

 AWS WAF 콘솔에 액세스하려면 최소 권한 집합이 있어야 합니다. 이러한 권한을 통해의 AWS WAF 리소스에 대한 세부 정보를 나열하고 볼 수 있어야 합니다 AWS 계정. 최소 필수 권한보다 더 제한적인 ID 기반 정책을 생성하는 경우, 콘솔이 해당 정책에 연결된 엔티티(사용자 또는 역할)에 대해 의도대로 작동하지 않습니다.

 AWS CLI 또는 AWS API만 호출하는 사용자에게 최소 콘솔 권한을 허용할 필요는 없습니다. 대신, 수행하려는 API 작업과 일치하는 작업에만 액세스할 수 있도록 합니다.

사용자와 역할이 AWS WAF 콘솔을 사용할 수 있도록 하려면 최소한 AWS WAF `AWSWAFConsoleReadOnlyAccess` AWS 관리형 정책을 엔터티에 연결합니다. 관리형 정책에 대한 자세한 내용은 [AWS 관리형 정책: AWSWAFConsoleReadOnlyAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSWAFConsoleReadOnlyAccess) 섹션을 참조하세요. 관리형 정책을 사용자에게 연결하는 방법에 대한 자세한 내용은 *IAM 사용 설명서*의 [사용자에게 권한 추가](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)를 참조하세요.

## 사용자가 자신의 고유한 권한을 볼 수 있도록 허용
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

이 예제는 IAM 사용자가 자신의 사용자 ID에 연결된 인라인 및 관리형 정책을 볼 수 있도록 허용하는 정책을 생성하는 방법을 보여줍니다. 이 정책에는 콘솔에서 또는 AWS CLI 또는 AWS API를 사용하여 프로그래밍 방식으로이 작업을 완료할 수 있는 권한이 포함됩니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## AWS WAF, CloudFront 및 CloudWatch에 대한 읽기 전용 액세스 권한 부여
<a name="security_iam_id-based-policy-examples-read-only1"></a>

다음 정책은 사용자에게 AWS WAF 리소스, Amazon CloudFront 웹 배포 및 Amazon CloudWatch 지표에 대한 읽기 전용 액세스 권한을 부여합니다. AWS WAF 조건, 규칙 및 보호 팩(웹 ACLs)의 설정을 보고, 어떤 배포가 보호 팩(웹 ACL)과 연결되어 있는지 확인하고, CloudWatch에서 지표와 요청 샘플을 모니터링할 수 있는 권한이 필요한 사용자에게 유용합니다. 이러한 사용자는 AWS WAF 리소스를 생성, 업데이트 또는 삭제할 수 없습니다.

```
 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "wafv2:Get*",
                "wafv2:List*",
                "cloudfront:GetDistribution",
                "cloudfront:GetDistributionConfig",
                "cloudfront:ListDistributions",
                "cloudfront:ListDistributionsByWebACLId",
                "cloudfront:ListDistributionTenantsByCustomization",
                "cloudfront:ListDistributionTenants",
                "cloudfront:GetDistributionTenant",
                "cloudwatch:GetMetricData",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "ec2:DescribeRegions",
                "pricingplanmanager:GetSubscription",
                "pricingplanmanager:ListSubscriptions",
                "route53:ListHostedZones",
                "route53:GetHostedZone"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

## AWS WAF, CloudFront 및 CloudWatch에 대한 전체 액세스 권한 부여
<a name="security_iam_id-based-policy-examples-full-access1"></a>

다음 정책은 사용자가 모든 AWS WAF 작업을 수행하고, CloudFront 웹 배포에서 모든 작업을 수행하고, CloudWatch에서 지표와 요청 샘플을 모니터링할 수 있도록 허용합니다. 관리자인 사용자에게 유용합니다 AWS WAF .

```
 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "wafv2:*",
                "cloudfront:CreateDistribution",
                "cloudfront:ListDistributions",
                "cloudfront:ListDistributionsByWebACLId",
                "cloudfront:UpdateDistribution",
                "cloudfront:GetDistributionConfig",
                "cloudfront:GetDistribution",
                "cloudfront:DisassociateDistributionTenantWebACL",
                "cloudfront:DisassociateDistributionWebACL",
                "cloudfront:AssociateDistributionTenantWebACL",
                "cloudfront:AssociateDistributionWebACL",
                "cloudfront:ListDistributionTenantsByCustomization",
                "cloudfront:ListDistributionTenants",
                "cloudfront:DeleteDistribution",
                "cloudfront:GetDistributionTenant",
                "cloudfront:DeleteDistributionTenant",
                "cloudwatch:GetMetricData",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "ec2:DescribeRegions",
                "pricingplanmanager:GetSubscription",
                "pricingplanmanager:ListSubscriptions",
                "pricingplanmanager:UpdateSubscription",
                "pricingplanmanager:CancelSubscription",
                "pricingplanmanager:CancelSubscriptionChange",
                "pricingplanmanager:AssociateResourcesToSubscription",
                "pricingplanmanager:DisassociateResourcesFromSubscription",
                "route53:ListHostedZones",
                "route53:GetHostedZone"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

관리 권한이 있는 사용자에 대해 멀티 팩터 인증(MFA)을 구성하는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS에서 멀티 팩터 인증(MFA) 기기 사용하기](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingMFA.html)를 참조하세요.

## 단일에 대한 액세스 권한 부여 AWS 계정
<a name="security_iam_id-based-policy-examples-access-to-account"></a>

이 정책은 444455556666 계정에 다음과 같은 권한을 부여합니다.
+ 모든 AWS WAF 작업 및 리소스에 대한 전체 액세스 권한.
+ 보호 팩(웹 ACL)과 CloudFront 배포를 연결할 수 있도록 허용하는 모든 CloudFront 배포에 대한 읽기 및 업데이트 액세스 권한.
+  AWS WAF 콘솔에서 CloudWatch 데이터와 요청 샘플을 볼 수 있도록 모든 CloudWatch 지표 및 지표 통계에 대한 읽기 액세스 권한을 제공합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "wafv2:*"
         ],
         "Resource": [
            "arn:aws:wafv2:us-east-1:444455556666:*"
         ]
      },
      {
         "Effect": "Allow",
         "Action": [
            "cloudfront:GetDistribution",
            "cloudfront:GetDistributionConfig",
            "cloudfront:ListDistributions",
            "cloudfront:ListDistributionsByWebACLId",
            "cloudfront:UpdateDistribution",
            "cloudwatch:ListMetrics",
            "cloudwatch:GetMetricStatistics",
            "ec2:DescribeRegions"
         ],
         "Resource": [
            "*"
         ]
      }
   ]
}
```

------

## 단일 보호 팩(웹 ACL)에 대한 액세스 권한 부여
<a name="security_iam_id-based-policy-examples-access-to-web-acl"></a>

다음 정책은 사용자가 콘솔을 통해 계정의 특정 보호 팩(웹 ACL)에서 모든 AWS WAF 작업을 수행할 수 있도록 허용합니다`444455556666`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "wafv2:*"
            ],
            "Resource": [
                "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example"
            ]
        },
        {
            "Sid": "consoleAccess",
            "Effect": "Allow",
            "Action": [
                "wafv2:ListWebACLs",
                "ec2:DescribeRegions"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## 보호 팩(웹 ACL) 및 규칙 그룹에 대한 CLI 액세스 권한 부여
<a name="security_iam_id-based-policy-examples-cli-access-to-web-acl"></a>

다음 정책은 사용자가 계정의 특정 보호 팩(웹 ACL) 및 특정 규칙 그룹에서 CLI를 통해 모든 AWS WAF 작업을 수행할 수 있도록 허용합니다`444455556666`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "wafv2:*"
         ],
         "Resource": [
        "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example",
        "arn:aws:wafv2:us-east-1:444455556666:regional/rulegroup/test123rulegroup/555555555-6666-1234-abcd-00d11example"
         ]
      }
   ]
}
```

------

다음 정책은 사용자가 콘솔을 통해 계정의 특정 보호 팩(웹 ACL)에서 모든 AWS WAF 작업을 수행할 수 있도록 허용합니다`444455556666`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "wafv2:*"
            ],
            "Resource": [
                "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example"
            ]
        },
        {
            "Sid": "consoleAccess",
            "Effect": "Allow",
            "Action": [
                "wafv2:ListWebACLs",
                "ec2:DescribeRegions"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

# AWS 에 대한 관리형 정책 AWS WAF
<a name="security-iam-awsmanpol"></a>

이 섹션에서는 AWS 에 관리형 정책을 사용하는 방법을 설명합니다 AWS WAF.

 AWS 관리형 정책은에서 생성하고 관리하는 독립 실행형 정책입니다 AWS. AWS 관리형 정책은 사용자, 그룹 및 역할에 권한 할당을 시작할 수 있도록 많은 일반적인 사용 사례에 대한 권한을 제공하도록 설계되었습니다.

 AWS 관리형 정책은 모든 AWS 고객이 사용할 수 있으므로 특정 사용 사례에 대해 최소 권한을 부여하지 않을 수 있습니다. 사용 사례에 고유한 [고객 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)을 정의하여 권한을 줄이는 것이 좋습니다.

 AWS 관리형 정책에 정의된 권한은 변경할 수 없습니다. 가 관리형 정책에 정의된 권한을 AWS 업데이트하는 AWS 경우 업데이트는 정책이 연결된 모든 보안 주체 자격 증명(사용자, 그룹 및 역할)에 영향을 줍니다. AWS AWS 서비스 는 새가 시작되거나 기존 서비스에 새 API 작업을 사용할 수 있게 될 때 AWS 관리형 정책을 업데이트할 가능성이 높습니다.

자세한 내용은 *IAM 사용자 가이드*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)을 참조하세요.

## AWS 관리형 정책: AWSWAFReadOnlyAccess
<a name="security-iam-awsmanpol-AWSWAFReadOnlyAccess"></a>

이 정책은 사용자가 Amazon CloudFront, Amazon API Gateway, Application Load Balancer, Amazon Cognito,, AWS App Runner AWS Amplify,, AWS AppSync Amazon CloudWatch 및 AWS Verified Access와 같은 통합 서비스의 AWS WAF 리소스 및 리소스에 액세스할 수 있도록 허용하는 읽기 전용 권한을 부여합니다. 이 정책을 IAM 자격 증명에 연결할 수 있습니다. AWS WAF 는가 사용자를 대신하여 작업을 AWS WAF 수행하도록 허용하는 서비스 역할에도이 정책을 연결합니다.

이 정책에 대한 자세한 내용은 IAM 콘솔에서 [AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary)를 참조하세요.

## AWS 관리형 정책: AWSWAFFullAccess
<a name="security-iam-awsmanpol-AWSWAFFullAccess"></a>

이 정책은 Amazon CloudFront, Amazon API Gateway, Application Load Balancer, Amazon Cognito AWS AppSync,, AWS App Runner AWS Amplify, Amazon CloudWatch 및 AWS Verified Access와 같은 통합 서비스의 리소스 및 AWS WAF 리소스에 대한 전체 액세스 권한을 부여합니다. 이 정책을 IAM 자격 증명에 연결할 수 있습니다. AWS WAF 는가 사용자를 대신하여 작업을 AWS WAF 수행하도록 허용하는 서비스 역할에도이 정책을 연결합니다.

이 정책에 대한 자세한 내용은 IAM 콘솔에서 [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)를 참조하세요.

## AWS 관리형 정책: AWSWAFConsoleReadOnlyAccess
<a name="security-iam-awsmanpol-AWSWAFConsoleReadOnlyAccess"></a>

이 정책은 AWS WAF 콘솔에 읽기 전용 권한을 부여합니다. 여기에는 Amazon CloudFront, Amazon API Gateway, Application Load Balancer, AWS AppSync Amazon Cognito, AWS App Runner, AWS Amplify, Amazon CloudWatch 및 AWS Verified Access와 같은 통합 서비스에 AWS WAF 대한 및 리소스가 포함됩니다. 이 정책을 IAM 자격 증명에 연결할 수 있습니다.

이 정책에 대한 자세한 내용은 IAM 콘솔에서 [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)를 참조하세요.

## AWS 관리형 정책: AWSWAFConsoleFullAccess
<a name="security-iam-awsmanpol-AWSWAFConsoleFullAccess"></a>

이 정책은 AWS WAF 콘솔에 대한 전체 액세스 권한을 부여합니다. 여기에는 Amazon CloudFront, Amazon API Gateway, Application Load Balancer, Amazon Cognito AWS AppSync, AWS App Runner, AWS Amplify Amazon CloudWatch 및 AWS Verified Access와 같은 통합 서비스에 AWS WAF 대한 및 리소스가 포함됩니다. 이 정책을 IAM 자격 증명에 연결할 수 있습니다. AWS WAF 는가 사용자를 대신하여 작업을 AWS WAF 수행하도록 허용하는 서비스 역할에도이 정책을 연결합니다.

이 정책에 대한 자세한 내용은 IAM 콘솔에서 [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)를 참조하세요.

## AWS 관리형 정책: WAFV2LoggingServiceRolePolicy
<a name="security-iam-awsmanpol-WAFV2LoggingServiceRolePolicy"></a>

이 정책은 AWS WAF 가 Amazon Data Firehose에 로그를 쓸 수 있도록 허용합니다. 이 정책은 로그인을 활성화한 경우에만 사용됩니다 AWS WAF. 이 정책은 `AWSServiceRoleForWAFV2Logging` 서비스 역할에 연결됩니다. 서비스 링크 역할에 대한 자세한 내용은 [에 대한 서비스 연결 역할 사용 AWS WAF](using-service-linked-roles.md)을(를) 참조하세요.

이 정책에 대한 자세한 내용은 IAM 콘솔에서 [WAFV2LoggingServiceRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/aws-service-role/WAFV2LoggingServiceRolePolicy$serviceLevelSummary)를 참조하세요.

## AWS WAF AWS 관리형 정책에 대한 업데이트
<a name="security-iam-awsmanpol-updates"></a>



이 서비스가 이러한 변경 사항을 추적하기 시작한 AWS WAF 이후부터의 AWS 관리형 정책 업데이트에 대한 세부 정보를 봅니다. 이 페이지의 변경 사항에 대한 자동 알림을 받으려면의 AWS WAF 문서 기록 페이지에서 RSS 피드를 구독하세요[문서 기록](doc-history.md).




| 정책 | 변경 내용 설명 | Date | 
| --- | --- | --- | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |  CloudFront 요금제에 대한 다음 권한이 추가되었습니다. 자세한 내용은 섹션을 참조하세요. [CloudFront 정액 요금제 AWS WAF 와 함께 사용](cloudfront-features.md#waf-cf-pricing-plans)  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-11-18  | 
|  `AWSWAFConsoleReadOnlyAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary).  |  CloudFront 요금제에 대한 다음 권한이 추가되었습니다. 자세한 내용은 섹션을 참조하세요. [CloudFront 정액 요금제 AWS WAF 와 함께 사용](cloudfront-features.md#waf-cf-pricing-plans)  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-11-18 | 
|  `AWSWAFConsoleReadOnlyAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary).  |  다음 권한을 업데이트했습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) 다음 권한을 추가했습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-11-03 | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |  다음 권한을 업데이트했습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) 다음 권한을 추가했습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-11-03 | 
| `AWSWAFFullAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary). |  에 필요한 AssociateWebACL, DisassociateWebACL, GetWebACLForResource 및 ListResourcesForWebACL 권한을 추가했습니다 AWS Amplify.  | 2025-05-05 | 
| `AWSWAFReadOnlyAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. 이 정책에 대한 자세한 내용은 IAM 콘솔에서 [AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary)를 참조하세요. |  GetWebACLForResource 및 ListResourcesForWebACL이 필요한 권한이 추가되었습니다 AWS Amplify.  | 2025-05-05 | 
|  `AWSWAFConsoleReadOnlyAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary).  |  다음 권한을 추가했습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-05-05 | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |  다음 권한을 추가했습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-05-05 | 
| `WAFV2LoggingServiceRolePolicy` 이 정책은 AWS WAF 가 Amazon Data Firehose에 로그를 쓸 수 있도록 허용합니다. 로깅을 활성화한 경우에만 사용됩니다. IAM 콘솔의 세부 정보: [WAFV2LoggingServiceRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/aws-service-role/WAFV2LoggingServiceRolePolicy$serviceLevelSummary). |  이 정책이 연결된 서비스 연결 역할의 권한 설정에 문 ID(Sid)가 추가되었습니다.  | 2024-06-03 | 
| `AWSServiceRoleForWAFV2Logging` 이 서비스 연결 역할은가 Amazon Data Firehose AWS WAF 에 로그를 쓸 수 있도록 허용하는 권한 정책을 제공합니다. IAM 콘솔의 세부 정보: [AWSServiceRoleForWAFV2Logging](https://console.aws.amazon.com/iam/home#/roles/details/AWSServiceRoleForWAFV2Logging). |  권한 설정에 문 ID(Sid)가 추가되었습니다.  | 2024-06-03 | 
|  AWS WAF 변경 사항 추적에 추가  |  AWS WAF 가 관리형 정책 `WAFV2LoggingServiceRolePolicy` 및 서비스 연결 역할에 대한 변경 내용 추적을 시작했습니다`AWSServiceRoleForWAFV2Logging`.  | 2024-06-03 | 
| `AWSWAFFullAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary). |  보호 가능한 리소스 유형에 AWS Verified·Access 인스턴스를 추가할 수 있는 권한이 확장되었습니다 AWS WAF.  | 2023-06-17 | 
| `AWSWAFReadOnlyAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary).  |  보호 가능한 리소스 유형에 AWS Verified·Access 인스턴스를 추가할 수 있는 권한이 확장되었습니다 AWS WAF.  | 2023-06-17 | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |  보호 가능한 리소스 유형에 AWS Verified·Access 인스턴스를 추가할 수 있는 권한이 확장되었습니다 AWS WAF.  | 2023-06-17 | 
|  `AWSWAFConsoleReadOnlyAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary).  |  보호 가능한 리소스 유형에 AWS Verified·Access 인스턴스를 추가할 수 있는 권한이 확장되었습니다 AWS WAF.  | 2023-06-17 | 
| `AWSWAFFullAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary). |   AWS App Runner 서비스의 액세스 설정을 수정할 수 있는 권한을 확장했습니다.  | 2023-06-06 | 
| `AWSWAFReadOnlyAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary).  |   AWS App Runner 서비스의 액세스 설정을 수정할 수 있는 권한을 확장했습니다.  | 2023-06-06 | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |   AWS App Runner 서비스의 액세스 설정을 수정할 수 있는 권한을 확장했습니다.  | 2023-06-06 | 
|  `AWSWAFConsoleReadOnlyAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary).  |   AWS App Runner 서비스의 액세스 설정을 수정할 수 있는 권한을 확장했습니다.  | 2023-06-06 | 
| `AWSWAFFullAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary). |  보호할 수 있는 리소스 유형에 AWS App Runner 서비스를 추가할 수 있는 권한을 확장했습니다 AWS WAF.  | 2023-03-30 | 
| `AWSWAFReadOnlyAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary).  |  보호할 수 있는 리소스 유형에 AWS App Runner 서비스를 추가할 수 있는 권한을 확장했습니다 AWS WAF.  | 2023-03-30 | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |  보호할 수 있는 리소스 유형에 AWS App Runner 서비스를 추가할 수 있는 권한을 확장했습니다 AWS WAF.  | 2023-03-30 | 
|  `AWSWAFConsoleReadOnlyAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary).  |  보호할 수 있는 리소스 유형에 AWS App Runner 서비스를 추가할 수 있는 권한을 확장했습니다 AWS WAF.  | 2023-03-30 | 
| `AWSWAFFullAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary). |  Amazon Cognito 사용자 풀을 보호할 수 있는 리소스 유형에 추가할 수 있는 권한을 확장했습니다 AWS WAF.  | 2022-08-25 | 
| `AWSWAFReadOnlyAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary).  |  Amazon Cognito 사용자 풀을 보호할 수 있는 리소스 유형에 추가할 수 있는 권한을 확장했습니다 AWS WAF.  | 2022-08-25 | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |  Amazon Cognito 사용자 풀을 보호할 수 있는 리소스 유형에 추가할 수 있는 권한을 확장했습니다 AWS WAF.  | 2022-08-25 | 
|  `AWSWAFConsoleReadOnlyAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary).  |  Amazon Cognito 사용자 풀을 보호할 수 있는 리소스 유형에 추가할 수 있는 권한을 확장했습니다 AWS WAF.  | 2022-08-25 | 
| `AWSWAFFullAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary).  |  Amazon Simple Storage Service(Amazon S3) 및 Amazon CloudWatch Logs에 대한 로그 전달 권한 설정을 수정했습니다. 이 변경으로 로깅 구성 중에 발생했던 액세스 거부 오류가 해결되었습니다. 보호 팩(웹 ACL) 트래픽 로깅에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.  | 2022-01-11 | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |  Amazon Simple Storage Service(Amazon S3) 및 Amazon CloudWatch Logs에 대한 로그 전달 권한 설정을 수정했습니다. 이 변경으로 로깅 구성 중에 발생했던 액세스 오류가 해결되었습니다. 보호 팩(웹 ACL) 트래픽 로깅에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.  | 2022-01-11 | 
|  `AWSWAFFullAccess` 이 정책은 AWS WAF 가 AWS WAF 및 통합 서비스에서 사용자를 대신하여 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary).  |  확장된 로깅 옵션에 대한 새 권한을 추가했습니다. 이 변경 사항을 통해 추가 로깅 대상 Amazon Simple Storage Service(Amazon S3) 및 Amazon CloudWatch Logs에 AWS WAF 액세스할 수 있습니다. 보호 팩(웹 ACL) 트래픽 로깅에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.  | 2021-11-15 | 
|  `AWSWAFConsoleFullAccess` 이 정책은 AWS WAF 가 및 통합 서비스에서 사용자를 대신하여 AWS 콘솔 리소스 AWS WAF 및 기타 AWS 리소스를 관리할 수 있도록 허용합니다. IAM 콘솔의 세부 정보: [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary).  |  확장된 로깅 옵션에 대한 새 권한을 추가했습니다. 이 변경 사항을 통해 추가 로깅 대상 Amazon Simple Storage Service(Amazon S3) 및 Amazon CloudWatch Logs에 AWS WAF 액세스할 수 있습니다. 보호 팩(웹 ACL) 트래픽 로깅에 대한 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.  | 2021-11-15 | 
|  AWS WAF 에서 변경 내용 추적 시작  |  AWS WAF 가 AWS 관리형 정책에 대한 변경 내용 추적을 시작했습니다.  | 2021-3-01 | 

# AWS WAF 자격 증명 및 액세스 문제 해결
<a name="security_iam_troubleshoot"></a>

다음 정보를 사용하여 및 IAM으로 작업할 때 발생할 수 있는 일반적인 문제를 진단 AWS WAF 하고 수정할 수 있습니다.

**Topics**
+ [에서 작업을 수행할 권한이 없음 AWS WAF](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole을 수행하도록 인증되지 않음](#security_iam_troubleshoot-passrole)
+ [내 외부의 사람이 내 AWS WAF 리소스에 액세스 AWS 계정 하도록 허용하고 싶습니다.](#security_iam_troubleshoot-cross-account-access)

## 에서 작업을 수행할 권한이 없음 AWS WAF
<a name="security_iam_troubleshoot-no-permissions"></a>

작업을 수행할 권한이 없다는 오류가 표시되면 작업을 수행할 수 있도록 정책을 업데이트해야 합니다.

다음의 예제 오류는 `mateojackson` IAM 사용자가 콘솔을 사용하여 가상 `my-example-widget` 리소스에 대한 세부 정보를 보려고 하지만 가상 `wafv2:GetWidget` 권한이 없을 때 발생합니다.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: wafv2:GetWidget on resource: my-example-widget
```

이 경우, `wafv2:GetWidget` 작업을 사용하여 `my-example-widget` 리소스에 액세스할 수 있도록 `mateojackson` 사용자 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하세요. 관리자는 로그인 자격 증명을 제공한 사람입니다.

## iam:PassRole을 수행하도록 인증되지 않음
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` 작업을 수행할 수 있는 권한이 없다는 오류가 수신되면 AWS WAF에 역할을 전달할 수 있도록 정책을 업데이트해야 합니다.

일부 AWS 서비스 에서는 새 서비스 역할 또는 서비스 연결 역할을 생성하는 대신 기존 역할을 해당 서비스에 전달할 수 있습니다. 이렇게 하려면 역할을 서비스에 전달할 권한이 있어야 합니다.

다음 예 오류는 `marymajor`라는 IAM 사용자가 콘솔을 사용하여 AWS WAF에서 작업을 수행하려고 하는 경우에 발생합니다. 하지만 작업을 수행하려면 서비스 역할이 부여한 권한이 서비스에 있어야 합니다. Mary는 서비스에 역할을 전달할 권한이 없습니다.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

이 경우, Mary가 `iam:PassRole`작업을 수행할 수 있도록 Mary의 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하세요. 관리자는 로그인 자격 증명을 제공한 사람입니다.

## 내 외부의 사람이 내 AWS WAF 리소스에 액세스 AWS 계정 하도록 허용하고 싶습니다.
<a name="security_iam_troubleshoot-cross-account-access"></a>

다른 계정의 사용자 또는 조직 외부의 사람이 리소스에 액세스할 때 사용할 수 있는 역할을 생성할 수 있습니다. 역할을 수임할 신뢰할 수 있는 사람을 지정할 수 있습니다. 리소스 기반 정책 또는 액세스 제어 목록(ACL)을 지원하는 서비스의 경우, 이러한 정책을 사용하여 다른 사람에게 리소스에 대한 액세스 권한을 부여할 수 있습니다.

자세한 내용은 다음을 참조하세요.
+ 에서 이러한 기능을 AWS WAF 지원하는지 여부를 알아보려면 섹션을 참조하세요[AWS WAF 에서 IAM을 사용하는 방법](security_iam_service-with-iam.md).
+ 소유 AWS 계정 한의 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 [IAM 사용 설명서의 소유한 다른의 IAM 사용자에게 액세스 권한 제공을 참조 AWS 계정 하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html). ** 
+ 리소스에 대한 액세스 권한을 타사에 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [타사 AWS 계정 소유에 대한 액세스 권한 제공을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) AWS 계정참조하세요.
+ ID 페더레이션을 통해 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [외부에서 인증된 사용자에게 액세스 권한 제공(ID 페더레이션)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)을 참조하세요.
+ 크로스 계정 액세스에 대한 역할과 리소스 기반 정책 사용의 차이점을 알아보려면 *IAM 사용 설명서*의 [IAM의 크로스 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

# 에 대한 서비스 연결 역할 사용 AWS WAF
<a name="using-service-linked-roles"></a>

이 섹션에서는 서비스 연결 역할을 사용하여 계정 AWS 의 리소스에 대한 AWS WAF 액세스 권한을 부여하는 방법을 설명합니다.

AWS WAF 는 AWS Identity and Access Management (IAM)[ 서비스 연결 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) 사용합니다. 서비스 연결 역할은 직접 연결된 고유한 유형의 IAM 역할입니다 AWS WAF. 서비스 연결 역할은에서 사전 정의 AWS WAF 하며 서비스가 사용자를 대신하여 다른 AWS 서비스를 호출하는 데 필요한 모든 권한을 포함합니다.

필요한 권한을 수동으로 추가할 필요가 없으므로 서비스 연결 역할을 더 AWS WAF 쉽게 설정할 수 있습니다.는 서비스 연결 역할의 권한을 AWS WAF 정의하며, 달리 정의되지 않은 한 만 해당 역할을 수임 AWS WAF 할 수 있습니다. 정의된 권한에는 신뢰 정책과 권한 정책이 포함됩니다. 이 권한 정책은 다른 어떤 IAM 엔터티에도 연결할 수 없습니다.

먼저 역할의 관련 리소스를 삭제해야 서비스 연결 역할을 삭제할 수 있습니다. 이렇게 하면 AWS WAF 리소스에 대한 액세스 권한을 실수로 제거할 수 없기 때문에 리소스가 보호됩니다.

서비스 연결 역할을 지원하는 기타 서비스에 대한 자세한 내용은 [IAM으로 작업하는AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)를 참조해 **서비스 연결 역할** 열이 **예(Yes)**인 서비스를 찾으세요. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 **예(Yes)** 링크를 선택합니다.

## 에 대한 서비스 연결 역할 권한 AWS WAF
<a name="slr-permissions"></a>

AWS WAF 는 서비스 연결 역할을 `AWSServiceRoleForWAFV2Logging` 사용하여 Amazon Data Firehose에 로그를 작성합니다. 이 역할은 로그인을 활성화한 경우에만 사용됩니다 AWS WAF. 로깅에 대한 추가 정보는 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 섹션을 참조하세요.

이 서비스 연결 역할은 AWS 관리형 정책에 연결됩니다`WAFV2LoggingServiceRolePolicy`. 관리형 정책에 대한 자세한 내용은 [AWS 관리형 정책: WAFV2LoggingServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-WAFV2LoggingServiceRolePolicy)섹션을 참조하세요.

`AWSServiceRoleForWAFV2Logging` 서비스 연결 역할은 역할을 수임하기 위해 `wafv2.amazonaws.com`서비스를 신뢰합니다.

역할의 권한 정책을 통해는 지정된 리소스에서 다음 작업을 AWS WAF 완료할 수 있습니다.
+ Amazon Data Firehose 작업: 이름이 `aws-waf-logs-`로 시작하는 Firehose 데이터 스트림 리소스의 `PutRecord` 및 `PutRecordBatch`. 예를 들어 `aws-waf-logs-us-east-2-analytics`입니다.
+ AWS Organizations 작업: Organizations 조직 리소스`DescribeOrganization`.

IAM 콘솔에서 전체 서비스 연결 역할: [AWSServiceRoleForWAFV2Logging](https://console.aws.amazon.com/iam/home#/roles/details/AWSServiceRoleForWAFV2Logging)을 참조하세요.

IAM 엔터티(사용자, 그룹, 역할 등)가 서비스 연결 역할을 생성하고 편집하거나 삭제할 수 있도록 권한을 구성할 수 있습니다. 자세한 내용은 IAM 사용 설명서**의 [서비스 연결 역할 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) 섹션을 참조하세요.

## 에 대한 서비스 연결 역할 생성 AWS WAF
<a name="create-slr"></a>

서비스 연결 역할은 수동으로 생성할 필요가 없습니다. 에 대한 AWS WAF 로깅을 활성화 AWS Management Console하거나 AWS WAF CLI 또는 AWS WAF API에서 `PutLoggingConfiguration` 요청하면가 서비스 연결 역할을 AWS WAF 생성합니다.

로깅을 활성화하려면 `iam:CreateServiceLinkedRole` 권한이 있어야 합니다.

이 서비스 연결 역할을 삭제했다가 다시 생성해야 하는 경우 동일한 프로세스를 사용하여 계정에서 역할을 다시 생성할 수 있습니다. AWS WAF 로깅을 활성화하면가 서비스 연결 역할을 다시 AWS WAF 생성합니다.

## 에 대한 서비스 연결 역할 편집 AWS WAF
<a name="edit-slr"></a>

AWS WAF 에서는 `AWSServiceRoleForWAFV2Logging` 서비스 연결 역할을 편집할 수 없습니다. 서비스 연결 역할을 생성한 후에는 다양한 엔터티가 역할을 참조할 수 있기 때문에 역할 이름을 변경할 수 없습니다. 하지만 IAM을 사용하여 역할의 설명을 편집할 수 있습니다. 자세한 내용은 IAM 사용 설명서**의 [서비스 연결 역할 편집](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)을 참조하세요.

## 에 대한 서비스 연결 역할 삭제 AWS WAF
<a name="delete-slr"></a>

서비스 연결 역할이 필요한 기능 또는 서비스가 더 이상 필요 없는 경우에는 해당 역할을 삭제하는 것이 좋습니다. 따라서 적극적으로 모니터링하거나 유지하지 않는 미사용 엔터티가 없도록 합니다. 단, 서비스 연결 역할에 대한 리소스를 먼저 정리해야 수동으로 삭제할 수 있습니다.

**참고**  
리소스를 삭제하려고 할 때 AWS WAF 서비스가 역할을 사용하는 경우 삭제에 실패할 수 있습니다. 이 문제가 발생하면 몇 분 기다렸다가 작업을 다시 시도하세요.

**에서 사용하는 AWS WAF 리소스를 삭제하려면 `AWSServiceRoleForWAFV2Logging`**

1.  AWS WAF 콘솔에서 모든 웹 ACL에서 로깅을 제거합니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 단원을 참조하십시오.

1. API 또는 CLI를 사용하여 로깅이 활성화된 각 웹 ACL에 대한 `DeleteLoggingConfiguration` 요청을 제출합니다. 자세한 내용은 [AWS WAF API 참조](https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html)를 참조하세요.

**IAM을 사용하여 수동으로 서비스 연결 역할을 삭제하려면 다음을 수행하세요.**

IAM 콘솔, IAM CLI 또는 IAM API를 사용하여 `AWSServiceRoleForWAFV2Logging` 서비스 연결 역할을 삭제합니다. 자세한 내용은 *IAM 사용 설명서*의 [서비스 연결 역할 삭제](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)를 참조하세요.

## AWS WAF 서비스 연결 역할에 지원되는 리전
<a name="slr-regions"></a>

AWS WAF 는 서비스를 사용할 수 있는 모든 리전에서 서비스 연결 역할 사용을 지원합니다. 자세한 내용은 [AWS WAF 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/waf.html)을 참조하세요.

# 에서 로깅 및 모니터링 AWS WAF
<a name="waf-incident-response"></a>

이 섹션에서는의 이벤트를 모니터링하고 응답하기 위한 AWS 도구를 사용하는 방법을 설명합니다 AWS WAF.

모니터링은 AWS WAF 및 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다. 다중 지점 장애가 발생할 경우 보다 쉽게 디버깅할 수 있도록 AWS 솔루션의 모든 부분에서 모니터링 데이터를 수집해야 합니다.는 AWS WAF 리소스를 모니터링하고 잠재적 이벤트에 대응하기 위한 몇 가지 도구를 AWS 제공합니다.

**Amazon CloudWatch 경보**  
CloudWatch 경보를 사용하면 지정한 기간 동안 단일 지표를 감시할 수 있습니다. 지표가 지정된 임계값을 초과하면 CloudWatch가 Amazon SNS 주제 또는 AWS Auto Scaling 정책으로 알림을 전송합니다. 자세한 내용은 [Amazon CloudWatch를 사용한 모니터링](monitoring-cloudwatch.md) 단원을 참조하십시오.

**AWS CloudTrail 로그**  
CloudTrail은 사용자, 역할 또는 AWS 서비스가 수행한 작업에 대한 레코드를 제공합니다 AWS WAF. CloudTrail에서 수집한 정보를 사용하여 수행된 요청, 요청이 수행된 AWS WAF IP 주소, 요청을 수행한 사람, 요청이 수행된 시간 및 추가 세부 정보를 확인할 수 있습니다. 자세한 내용은 [을 사용하여 AWS CloudTrail API 호출 로깅](logging-using-cloudtrail.md) 단원을 참조하십시오.

**AWS WAF 보호 팩(웹 ACL) 트래픽 로깅**  
AWS WAF 는 보호 팩(웹 ACLs)이 분석하는 트래픽에 대한 로깅을 제공합니다. 로그에는가 보호된 AWS 리소스로부터 요청을 AWS WAF 받은 시간, 요청에 대한 세부 정보, 요청이 일치하는 규칙에 대한 작업 설정과 같은 정보가 포함됩니다. 자세한 내용은 [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md) 단원을 참조하십시오.

# 에서 규정 준수 검증 AWS WAF
<a name="waf-compliance"></a>

이 섹션에서는 사용 시 규정 준수 책임을 설명합니다 AWS WAF.

 AWS 서비스 가 특정 규정 준수 프로그램의 범위 내에 있는지 알아보려면 [AWS 서비스 규정 준수 프로그램 제공 범위 내](https://aws.amazon.com/compliance/services-in-scope/)를 참조하고 관심 있는 규정 준수 프로그램을 선택합니다. 일반 정보는 [AWS 규정 준수 프로그램](https://aws.amazon.com/compliance/programs/).

를 사용하여 타사 감사 보고서를 다운로드할 수 있습니다 AWS Artifact. 자세한 내용은 [Downloading Reports inDownloading AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)을 참조하세요.

사용 시 규정 준수 책임은 데이터의 민감도, 회사의 규정 준수 목표 및 관련 법률과 규정에 따라 AWS 서비스 결정됩니다. 사용 시 규정 준수 책임에 대한 자세한 내용은 [AWS 보안 설명서를](https://docs.aws.amazon.com/security/) AWS 서비스참조하세요.

# 에서 복원력을 위한 구축 AWS WAF
<a name="disaster-recovery-resiliency"></a>

이 섹션에서는 AWS 아키텍처가에 대한 데이터 중복을 지원하는 방법을 설명합니다 AWS WAF.

 AWS 글로벌 인프라는 AWS 리전 및 가용 영역을 중심으로 구축됩니다.는 지연 시간이 짧고 처리량이 많으며 중복성이 높은 네트워킹과 연결된 물리적으로 분리되고 격리된 여러 가용 영역을 AWS 리전 제공합니다. 가용 영역을 사용하면 중단 없이 가용 영역 간에 자동으로 장애 조치가 이루어지는 애플리케이션 및 데이터베이스를 설계하고 운영할 수 있습니다. 가용 영역은 기존의 단일 또는 복수 데이터 센터 인프라보다 가용성, 내결함성, 확장성이 뛰어납니다.

 AWS 리전 및 가용 영역에 대한 자세한 내용은 [AWS 글로벌 인프라를](https://aws.amazon.com/about-aws/global-infrastructure/) 참조하세요.

# 의 인프라 보안 AWS WAF
<a name="infrastructure-security"></a>

이 섹션에서는가 서비스 트래픽을 AWS WAF 격리하는 방법을 설명합니다.

관리형 서비스인는 AWS 글로벌 네트워크 보안으로 보호 AWS WAF 됩니다. AWS 보안 서비스 및가 인프라를 AWS 보호하는 방법에 대한 자세한 내용은 [AWS 클라우드 보안을](https://aws.amazon.com/security/) 참조하세요. 인프라 보안 모범 사례를 사용하여 환경을 설계하려면 *보안 원칙 AWS Well‐Architected Framework*의 [인프라 보호를](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) 참조하세요 AWS .

 AWS 에서 게시한 API 호출을 사용하여 네트워크를 AWS WAF 통해에 액세스합니다. 클라이언트는 다음을 지원해야 합니다.
+ Transport Layer Security(TLS). TLS 1.2는 필수이며 TLS 1.3을 권장합니다.
+ DHE(Ephemeral Diffie-Hellman) 또는 ECDHE(Elliptic Curve Ephemeral Diffie-Hellman)와 같은 완전 전송 보안(PFS)이 포함된 암호 제품군. Java 7 이상의 최신 시스템은 대부분 이러한 모드를 지원합니다.

# AWS WAF 할당량
<a name="limits"></a>

**참고**  
의 최신 버전입니다 AWS WAF. AWS WAF Classic의 경우 섹션을 참조하세요[AWS WAF 클래식](classic-waf-chapter.md).

AWS WAF 에는 다음 할당량(이전에는 제한이라고 함)이 적용됩니다. 이러한 할당량은를 AWS WAF 사용할 수 있는 모든 리전에서 동일합니다. 각 리전에 이러한 할당량이 개별적으로 적용됩니다. 할당량은 리전을 교차하여 누적되지 않습니다.

AWS WAF 에는 계정당 보유할 수 있는 최대 엔터티 수에 대한 기본 할당량이 있습니다. 이 할당량의 [증가를 요청](https://console.aws.amazon.com/servicequotas/home/services/wafv2/quotas)할 수 있습니다.


| Resource | 리전별 계정당 기본 할당량 | 
| --- | --- | 
|  보호 팩(웹 ACL) 최대 수  |  100  | 
|  최대 규칙 그룹 수   |  100  | 
| 최대 IP 집합 수  |  100  | 
| 보호 팩(웹 ACL)당 초당 최대 요청 수  |  100,000건  | 
| 보호 팩(웹 ACL) 또는 규칙 그룹당 사용자 지정 요청 헤더 최대 수 | 100 | 
| 보호 팩(웹 ACL) 또는 규칙 그룹당 사용자 지정 응답 헤더 최대 수 | 100 | 
| 보호 팩(웹 ACL) 또는 규칙 그룹당 사용자 지정 응답 본문 최대 수 | 50 | 
| 보호 팩(웹 ACL) 토큰 도메인 목록의 최대 토큰 도메인 수 | 10 | 
| 정규식 패턴 세트의 최대 수  |  10  | 
| 보호 팩(웹 ACL)당 Application Load Balancer 최대 연결 수 | 100  | 

CloudFront AWS WAF 에서에 허용되는 초당 최대 요청 수(RPS)는 CloudFront에서 설정하며 [CloudFront 개발자 안내서](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)에 설명되어 있습니다.

AWS WAF 에는 리전별 계정당 다음 개체 설정에 대한 고정 할당량이 있습니다. 이러한 할당량은 변경할 수 없습니다.


| Resource | 리전별 계정당 할당량 | 
| --- | --- | 
|  보호 팩(웹 ACL)당 최대 보호 팩(웹 ACL) 용량 단위(WCU)\$1  |  5,000  | 
| 규칙 그룹당 최대 WCU |  5,000  | 
| 규칙 그룹당 최대 참조 문 수 규칙 그룹에서 참조문은 IP 집합 또는 정규식 패턴 집합을 참조할 수 있습니다. |  50  | 
| 보호 팩(웹 ACL)당 최대 참조 문 수. 보호 팩(웹 ACL)에서 참조문은 규칙 그룹, IP 집합 또는 정규식 패턴 집합을 참조할 수 있습니다. |  50  | 
| IP 집합당 CIDR 표기법으로 표기된 최대 IP 주소 수 |  10,000  | 
| 보호 팩(웹 ACL)당 최대 속도 기반 규칙 수  |  10  | 
| 규칙 그룹당 최대 속도 기반 규칙 수 |  4  | 
| 비율 기반 규칙에 대해 정의할 수 있는 최소 요청 비율 |  10  | 
| 요금제 기반 규칙당 속도 제한할 수 있는 최대 고유 IP 주소 수 |  10,000  | 
| 문자열 일치 문에 허용되는 최대 문자 수 |  200  | 
| 각 정규식 패턴에 허용되는 최대 문자 수 |  200  | 
| 정규식 패턴 세트당 고유 정규식 패턴의 최대 수 |  10  | 
| Application Load Balancer 및 AWS AppSync 보호를 검사할 수 있는 웹 요청 본문의 최대 크기 |  8KB  | 
| CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access 보호\$1\$1를 검사할 수 있는 웹 요청 본문의 최대 크기 |  64KB  | 
| 규칙 문당 최대 텍스트 변환 횟수 |  10  | 
| 단일 사용자 지정 응답 정의에 대한 사용자 지정 응답 본문 콘텐츠의 최대 크기 |  4KB  | 
| 단일 사용자 지정 응답 정의에 대한 최대 사용자 지정 헤더 수 |  10  | 
| 단일 사용자 지정 요청 정의에 대한 사용자 지정 헤더 최대 수 |  10  | 
| 단일 규칙 그룹 또는 단일 보호 팩(웹 ACL)에 대한 모든 응답 본문 콘텐츠를 합산한 최대 크기 |  50KB  | 
| 단일 규칙 내의 지역 일치 국가 코드의 최대 수  |  50  | 

\$1보호 팩(웹 ACL)에서 1,500개가 넘는 WCU를 사용하면 기본 보호 팩(웹 ACL) 가격을 초과하는 비용이 발생합니다. 자세한 내용은 [의 웹 ACL 용량 단위(WCUs) AWS WAF](aws-waf-capacity-units.md) 및 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

\$1\$1기본적으로 본문 검사 한도는 CloudFront, API Gateway, Amazon Cognito, App Runner 및 Verified Access 리소스에 대해 16KB로 설정되지만 보호 팩(웹 ACL) 구성의 이러한 리소스에 대해 최대 나열된 한도까지 늘릴 수 있습니다. 자세한 내용은 [에서 본문 검사 관리에 대한 고려 사항 AWS WAF](web-acl-setting-body-inspection-limit.md) 단원을 참조하십시오.

AWS WAF 에는 리전별 계정당 호출에 대해 다음과 같은 고정 할당량이 있습니다. 이러한 할당량은 CLI, AWS CloudFormation, REST API, SDK 등 사용 가능한 수단을 통한 전체 서비스 호출 수에 적용됩니다. 이러한 할당량은 변경할 수 없습니다.


| 호출 유형 | 리전별 계정당 할당량 | 
| --- | --- | 
| AssociateWebACL에 대한 최대 호출 수 |  2초당 요청 한 개   | 
| DisassociateWebACL에 대한 최대 호출 수 |  2초당 요청 한 개   | 
| GetWebACLForResource에 대한 최대 호출 수  |  1초당 요청 한 개  | 
| ListResourcesForWebACL에 대한 최대 호출 수 |  1초당 요청 한 개  | 
| GetDecryptedAPIKey에 대한 최대 호출 수 |  2초당 요청 한 개  | 
| 개별 Get 또는 List 작업에 대한 최대 호출 수(다른 할당량이 정의되지 않은 경우)  |  1초당 요청 다섯 개  | 
| 개별 Create, Put, 또는 Update 작업에 대한 최대 호출 수(다른 할당량이 정의되지 않은 경우)  |  1초당 요청 한 개  | 

AWS WAF 에는의 단일 조직에 있는 모든 계정의 호출에 대해 다음과 같은 고정 할당량이 있습니다 AWS Organizations. 이러한 할당량은 CLI, AWS CloudFormation, REST API, SDK 등 사용 가능한 수단을 통한 전체 서비스 호출 수에 적용됩니다. 이러한 할당량은 변경할 수 없습니다.


| 호출 유형 | 단일 리전의 조직당 할당량 | 
| --- | --- | 
| 조직의 모든 계정에서 미국 동부(버지니아 북부)(us-east-1), 미국 서부(오리건)(us-west-2) 또는 유럽(아일랜드)(eu-west-1) 리전의 단일 리전에서 ListResourcesForWebACL에 대한 최대 호출 수입니다. |  초당 요청 12개  | 
| 조직의 모든 계정에서 이 테이블에 나열된 다른 할당량이 없는 단일 리전의 ListResourcesForWebACL에 대한 최대 호출 수입니다. |  초당 요청 6개  | 

# AWS WAF Classic 리소스를 로 마이그레이션 AWS WAF
<a name="waf-migrating-from-classic"></a>

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

**참고**  
이는 **AWS WAF** 설명서입니다. 2019년 11월 AWS WAF 이전에에서 규칙 및 웹 ACLs과 같은 리소스를 생성하고 AWS WAF 아직 최신 버전으로 마이그레이션하지 않은 경우에만이 버전을 사용해야 합니다. 웹 ACL 마이그레이션하려면 [AWS WAF Classic 리소스를 로 마이그레이션 AWS WAF](#waf-migrating-from-classic) 섹션을 참조하세요.  
**의 최신 버전은 AWS WAF** 단원을 참조하십시오[AWS WAF](waf-chapter.md).

이 섹션에서는 규칙 및 보호 팩(웹 ACLs AWS WAF Classic에서 로 마이그레이션하기 위한 지침을 제공합니다 AWS WAF. 2019년 11월에 릴리스 AWS WAF 되었습니다. AWS WAF Classic을 사용하여 규칙 및 보호 팩(웹 ACLs)과 같은 리소스를 생성한 경우 AWS WAF Classic을 사용하여 리소스를 사용하거나이 최신 버전으로 마이그레이션해야 합니다.

**주의**  
AWS WAF 클래식 지원은 2025년 9월 30일에 종료됩니다.

마이그레이션 작업을 시작하기 전에에서 AWS WAF 를 읽고에 익숙해지세요[AWS WAF](waf-chapter.md).

**Topics**
+ [로 마이그레이션하는 이유는 무엇입니까 AWS WAF?](waf-migrating-why-migrate.md)
+ [마이그레이션 경고 및 제한 사항](waf-migrating-caveats.md)
+ [마이그레이션 작동 방식](waf-migrating-how-it-works.md)
+ [AWS WAF Classic에서 로 보호 팩(웹 ACL) 마이그레이션 AWS WAF](waf-migrating-procedure.md)

# 로 마이그레이션하는 이유는 무엇입니까 AWS WAF?
<a name="waf-migrating-why-migrate"></a>

최신 버전의 AWS WAF 는 이전 버전에 비해 많은 개선 사항을 제공하는 동시에 익숙한 대부분의 개념과 용어를 유지합니다.

다음 목록은 최신 AWS WAF의 주요 변경 사항에 대해 설명합니다. 마이그레이션을 계속하기 전에 잠시 시간을 내어이 목록을 검토하고 AWS WAF 가이드의 나머지 부분을 숙지하십시오.
+ ** AWS WAF Classic에 대한 지원은 2025년 9월 30일에 종료됩니다. ** 
+ **AWS 에 대한 관리형 규칙 AWS WAF** - 이제 AWS 관리형 규칙을 통해 사용할 수 있는 규칙 그룹은 일반적인 웹 위협에 대한 보호를 제공합니다. 이러한 규칙 그룹의 대부분은에 무료로 포함됩니다 AWS WAF. 자세한 내용은 [AWS 관리형 규칙 규칙 그룹 목록](aws-managed-rule-groups-list.md) 및 블로그 게시물 [에 대한 AWS 관리형 규칙 발표를 AWS WAF](https://aws.amazon.com/blogs/aws/announcing-aws-managed-rules-for-aws-waf/) 참조하세요.
+ **새 AWS WAF API** - 새 API를 사용하면 단일 API 세트를 사용하여 모든 AWS WAF 리소스를 구성할 수 APIs. 리전 애플리케이션과 글로벌 애플리케이션을 구분하기 위해 새 API에는 `scope` 설정이 포함되어 있습니다. API에 대한 자세한 내용은 [AWS WAFV2 작업](https://docs.aws.amazon.com/waf/latest/APIReference/API_Operations_AWS_WAFV2.html) 및 [AWS WAFV2 데이터 유형](https://docs.aws.amazon.com/waf/latest/APIReference/API_Types_AWS_WAFV2.html) 섹션을 참조하세요.

  APIs에서 SDKs, CLIs 및 AWS CloudFormation AWS WAF Classic은 명명 체계를 유지하며`v2`,이 최신 버전의 AWS WAF 는 컨텍스트에 따라 `V2` 또는가 추가된 상태로 참조됩니다.
+ **간소화된 서비스 할당량(한도) **- AWS WAF 이제 보호 팩당 더 많은 규칙(웹 ACL)을 허용하고 더 긴 정규식 패턴을 표현할 수 있습니다. 자세한 내용은 [AWS WAF 할당량](limits.md) 단원을 참조하십시오.
+ **컴퓨팅 요구 사항에 따라 용량 제한 결정 ** - 보호 팩(웹 ACLs)에 대한 제한은 이제 보호 팩(웹 ACL) 용량 단위(WCUs.는 필요한 운영 용량에 따라 규칙의 WCUs를 AWS WAF 계산합니다. 보호 팩(웹 ACL)의 총 WCU는 모든 규칙 및 규칙 그룹의 WCU 합계와 같습니다.

  WCU에 대한 일반적인 정보는 [AWS WAF 작동 방식](how-aws-waf-works.md) 섹션을 참조하세요. 각 규칙의 WCU 사용에 대한 자세한 내용은 [에서 규칙 문 사용 AWS WAF](waf-rule-statements.md) 섹션을 참조하세요.
+ **문서 기반 규칙 작성** – 이제 규칙, 규칙 그룹 및 보호 팩(웹 ACL)을 JSON 형식으로 작성하고 표현할 수 있습니다. 더 이상 개별 API 호출을 사용하여 다른 조건을 생성한 후 조건을 규칙에 연결할 필요가 없습니다. 이렇게 하면 더욱 쉽게 코드를 작성하고 유지 관리할 수 있습니다. **보호 팩(웹 ACL)을 JSON으로 다운로드**를 선택하면 보호 팩(웹 ACL)을 볼 때 콘솔에서 JSON 형식의 보호 팩(웹 ACL)에 액세스할 수 있습니다. 고유한 규칙을 생성할 때 **규칙 JSON 편집기**를 선택하면 해당 JSON 표현에 액세스할 수 있습니다.
+ **규칙 중첩 및 전체 논리적 작업 지원** – 논리적 규칙 문을 사용하고 중첩을 사용하여 복잡한 결합 규칙을 작성할 수 있습니다. `[A AND NOT(B OR C)]` 같은 문을 작성할 수 있습니다. 자세한 내용은 [에서 논리적 규칙 문 사용 AWS WAF](waf-rule-statements-logical.md) 단원을 참조하십시오.
+ **속도 기반 규칙 개선 -** 최신 버전의 AWS WAF에서는 규칙이 평가하는 기간과 규칙이 요청을 집계하는 방법을 사용자 지정할 수 있습니다. 여러 웹 요청 특성의 조합을 사용하여 집계를 사용자 지정할 수 있습니다. 또한 최신 속도 기반 규칙은 트래픽 변화에 더 빠르게 반응합니다. 자세한 내용은 [에서 속도 기반 규칙 문 사용 AWS WAF](waf-rule-statement-type-rate-based.md) 단원을 참조하십시오.
+ **IP 집합에 대한 가변적 CIDR 범위 지원** – 이제 IP 집합 사양에서 IP 범위의 유연성이 높아졌습니다. IPv4의 경우는 `/1`를 AWS WAF 지원합니다`/32`. IPv6의 경우는 `/1`를 AWS WAF 지원합니다`/128`. IP 집합에 대한 자세한 내용은 [IP 집합 일치 규칙 문](waf-rule-statement-type-ipset-match.md) 단원을 참조하세요.
+ **연결 가능한 텍스트 변환 **- AWS WAF 는 검사하기 전에 웹 요청 콘텐츠에 대해 여러 텍스트 변환을 수행할 수 있습니다. 자세한 내용은 [에서 텍스트 변환 사용 AWS WAF](waf-rule-statement-transformation.md) 단원을 참조하십시오.
+ **콘솔 환경 개선** - 새로운 AWS WAF 콘솔은 시각적 규칙 빌더와 보다 사용자 직관적인 콘솔 디자인을 제공합니다.
+ **Firewall Manager AWS WAF 정책에 대한 확장된 옵션** - Firewall Manager AWS WAF 보호 팩(웹 ACLs) 관리에서 이제 먼저 AWS WAF 처리하는 규칙 그룹 세트와 마지막으로 AWS WAF 처리하는 규칙 그룹 세트를 생성할 수 있습니다. AWS WAF 정책을 적용한 후 로컬 계정 소유자는이 두 세트 사이에서를 AWS WAF 처리하는 자체 규칙 그룹을 추가할 수 있습니다. Firewall Manager AWS WAF 정책에 대한 자세한 내용은 [Firewall Manager에서 AWS WAF 정책 사용](waf-policies.md) 섹션을 참조하세요.
+ 는 **AWS CloudFormation 모든 규칙 문 유형에 대해 지원** - AWS WAF AWS CloudFormation 는 AWS WAF 콘솔 및 API가 지원하는 모든 규칙 문 유형을 지원합니다. 또한 JSON 형식으로 작성한 규칙을 YAML 형식으로 쉽게 변환할 수 있습니다.



# 마이그레이션 경고 및 제한 사항
<a name="waf-migrating-caveats"></a>

마이그레이션은 보호 팩(웹 ACL) 구성만 처리하며, 보호 팩(웹 ACL) 마이그레이션은 AWS WAF Classic에 있는 설정과 동일한 모든 설정을 가져오지 않습니다. 일부 구성 항목은 AWS WAF (v2)에서 수동 구성이 필요합니다. 몇 가지 사항은 두 버전 간에 정확히 매핑되지 않으므로 AWS WAF (v2)에서 기능을 구성하는 방법을 결정해야 합니다. AWS 리소스와 보호 팩(웹 ACL)의 연결 같은 일부 설정은 처음에 새 버전에서 비활성화되어 있기 때문에 나중에 준비되었을 때 추가하면 됩니다.

다음 목록에서는 마이그레이션 경고와 경고에 대응하여 취할 수 있는 조치에 대해 설명합니다. 마이그레이션을 계획할 때는 아래 개요를 사용하십시오. 자세한 마이그레이션 단계는 나중에 마이그레이션 권장 단계를 통해 알아보겠습니다.
+ **단일 계정 마이그레이션** - 모든 계정의 AWS WAF Classic 리소스만 동일한 계정의 AWS WAF 리소스로 마이그레이션할 수 있습니다.
+ **보호 팩(웹 ACL) 구성만 ** - 마이그레이션은 보호 팩(웹 ACL) 및 보호 팩(웹 ACL)이 사용 중인 리소스만 마이그레이션합니다. 마이그레이션된 웹 ACL에서 사용하지 않는 규칙 그룹 또는 IP 세트와 같은 리소스를 마이그레이션하려면 AWS WAF (v2)에서 리소스를 수동으로 생성합니다.
+ ** AWS Marketplace 관리형 규칙 없음** - 마이그레이션은 AWS Marketplace 판매자의 관리형 규칙을 가져오지 않습니다. 일부 AWS Marketplace 판매자에는 다시 구독할 수 AWS WAF 있는 동등한 관리형 규칙이 있습니다. 이렇게 하기 전에의 최신 버전과 함께 제공되는 AWS 관리형 규칙을 검토하세요 AWS WAF. 이 중 대부분은 AWS WAF 사용자에게 무료입니다. 관리형 규칙에 대한 자세한 내용은 [에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md) 단원을 참조하세요.
+ **보호 팩(웹 ACL) 연결 없음** – 마이그레이션하더라도 보호 팩(웹 ACL) 및 보호 리소스 간 연결까지 가져오지는 않습니다. 기본적으로 프로덕션 워크로드에 영향을 미치지 않도록 설계되어 있기 때문입니다. 따라서 모든 항목이 올바르게 마이그레이션되었는지 확인한 후 새 보호 팩(웹 ACL)을 리소스와 연결합니다.
+ **로깅 비활성화** – 마이그레이션된 보호 팩(웹 ACL)에 대한 로깅은 기본적으로 비활성화됩니다. 이것은 설계에 따른 것입니다. AWS WAF Classic에서 로 전환할 준비가 되면 로깅을 활성화합니다 AWS WAF.
+ ** AWS Firewall Manager 규칙 그룹 없음** - 마이그레이션은 Firewall Manager에서 관리하는 규칙 그룹을 처리하지 않습니다. Firewall Manager에서 관리하는 보호 팩(웹 ACL)은 마이그레이션이 가능하지만 규칙 그룹까지 가져오지는 못합니다. 이러한 보호 팩(웹 ACL)에 마이그레이션 도구를 사용하는 것보다는 Firewall Manager에서 새 AWS WAF 에 대한 정책을 다시 생성합니다.
**참고**  
Firewall Manager가 AWS WAF Classic에 대해 관리한 규칙 그룹은 Firewall Manager 규칙 그룹이었습니다. 의 새 버전 AWS WAF에서는 규칙 그룹이 AWS WAF 규칙 그룹입니다. 하지만 기능적으로는 두 규칙 그룹 모두 동일합니다.
+ **AWS WAF 보안 자동화 주의 **- AWS WAF 보안 자동화를 마이그레이션하려고 하지 마세요. 마이그레이션하더라도 Lambda 함수는 변환되지 않습니다. 자동화에서 사용될 수도 있기 때문입니다. 대신 최신 버전의 자동화를 배포하는 것이 좋습니다. 자세한 내용은 [AWS WAF 보안 자동화](https://aws.amazon.com/solutions/aws-waf-security-automations/)를 참조하세요.

# 마이그레이션 작동 방식
<a name="waf-migrating-how-it-works"></a>

여러 방법을 사용하여 웹 ACLs에서 AWS WAF v2로 마이그레이션 AWS WAF Classic 할 수 있습니다. 다음 단계에 따라 마이그레이션을 완료합니다.

**에서 AWS WAF v2 AWS WAF Classic 로 마이그레이션하려면**

1.  AWS WAF Classic 웹 ACLs
   +  AWS Health 대시보드에서 웹 ACLs 목록을 봅니다.
   + [AWS WAF Classic 웹 ACL 정리 스크립트](         https://github.com/aws-samples/sample-for-waf-classic-to-wafv2-migrate-and-cleanup/tree/main/scripts/waf-classic-cleanup          )를 사용하여 모든 웹 ACL 및 해당 연결 목록을 가져옵니다. 이를 통해 리소스를 적극적으로 보호하는 웹 ACL을 식별하고 사용하지 않는 웹 ACL을 삭제할 수 이습니다.

1. 개별 웹 ACL 마이그레이션:
   + [AWS WAF 개발자 안내서](https://docs.aws.amazon.com/waf/latest/developerguide/waf-migrating-procedure.html)의 마이그레이션 프로세스를 따릅니다.
   + 마이그레이션 마법사를 사용하여 AWS WAF Classic 웹 ACL을 구문 분석하고 AWS CloudFormation 템플릿을 생성합니다.
   + 생성된 템플릿을 사용하여 동등한 AWS WAF v2 웹 ACL을 생성하고 마이그레이션을 완료합니다.

1. 여러 적격 웹 ACL 경우:
   + [AWS WAF 대량 마이그레이션 스크립트](https://github.com/aws-samples/sample-for-waf-classic-to-wafv2-migrate-and-cleanup/tree/main/scripts/waf-classic-migration          )를 사용하여 여러 적격 AWS WAF Classic 웹 ACLs.

1. 다음에서 관리하는 웹 ACLs 경우 AWS Firewall Manager:
   + Firewall Manager 정책은 AWS WAF Classic 정책과 함께 AWS WAF Classic 웹 ACLs 사용합니다. 2022년 1월 이전에 생성된 Shield Advanced 정책의 경우 Firewall Manager는 AWS WAF Classic 웹 ACLs도 사용합니다. AWS WAF v2 웹 ACLs을 사용하려면 이러한 정책을 마이그레이션해야 합니다.

     [Firewall Manager에서 AWS WAF Classic 웹 ACLs 마이그레이션](migrate-waf-classic-fms.md)의 지침을 따릅니다.

**중요**  
마이그레이션된 각 웹 ACL을 검토하여 리소스와 연결하기 전에 보안 요구 사항을 충족하는지 확인하는 것이 좋습니다.

# AWS WAF Classic에서 로 보호 팩(웹 ACL) 마이그레이션 AWS WAF
<a name="waf-migrating-procedure"></a>

자동 마이그레이션은 대부분의 AWS WAF Classic 보호 팩(웹 ACL) 구성을 전달하므로 수동으로 처리해야 하는 몇 가지 사항을 남깁니다.

**참고**  
일부 보호 구성은 자동으로 마이그레이션할 수 없으며 AWS WAF (v2)에서 수동 구성이 필요합니다. [마이그레이션 경고 및 제한 사항](waf-migrating-caveats.md)의 목록을 참조하세요.

다음은 보호 팩(웹 ACL)을 마이그레이션하기 위한 고급 단계 목록입니다.

1. 자동 마이그레이션은 AWS WAF Classic에서 아무것도 수정하거나 삭제하지 않고 기존 보호 팩(웹 ACL)과 관련된 모든 것을 읽습니다. 와 호환되는 웹 ACL 및 관련 리소스의 표현을 생성합니다 AWS WAF. 새 보호 팩(웹 ACL)에 대한 CloudFormation 템플릿을 생성하여 Amazon S3 버킷에 저장합니다.

1. 에서 보호 팩(웹 ACL) 및 관련 리소스를 다시 생성하기 CloudFormation위해 템플릿을에 배포합니다 AWS WAF.

1. 보호 팩(웹 ACL)을 검토하고 마이그레이션을 수동으로 완료하면 새 보호 팩(웹 ACL)에서 최신 AWS WAF기능을 모두 이용할 수 있습니다.

1. 보호된 리소스를 새 보호 팩(웹 ACL)으로 수동 전환합니다.

**Topics**
+ [보호 팩(웹 ACL) 마이그레이션: 자동 마이그레이션](waf-migrating-procedure-automatic.md)
+ [보호 팩(웹 ACL) 마이그레이션: 수동 후속 단계](waf-migrating-procedure-manual-finish.md)
+ [보호 팩(웹 ACL) 마이그레이션: 추가 고려 사항](waf-migrating-procedure-additional.md)
+ [보호 팩(웹 ACL) 마이그레이션: 전환](waf-migrating-procedure-switchover.md)

# 보호 팩(웹 ACL) 마이그레이션: 자동 마이그레이션
<a name="waf-migrating-procedure-automatic"></a>

**AWS WAF Classic에서 로 보호 팩(웹 ACL) 구성을 자동으로 마이그레이션하려면 AWS WAF**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. ** AWS WAF Classic으로 전환을** 선택하고 보호 팩(웹 ACL)의 구성 설정을 검토합니다. 이전 단원 [마이그레이션 경고 및 제한 사항](waf-migrating-caveats.md)에서 설명한 경고 및 제한 사항을 생각하면서 설정을 기록합니다.

1. 상단의 정보 대화 상자에서 **보호 팩(웹 ACL) 마이그레이션**으로 시작하는 문장을 찾아 **마이그레이션 마법사**로 연결되는 링크를 선택합니다. 그러면 마이그레이션 마법사가 시작됩니다.

   정보 대화가 표시되지 않으면 AWS WAF Classic 콘솔을 시작한 이후 대화가 종료되었을 수 있습니다. 탐색 모음에서 **새로 전환을 AWS WAF** 선택한 다음 ** AWS WAF 클래식으로 전환을** 선택하면 정보 대화 상자가 다시 나타납니다.

1. 마이그레이션할 보호 팩(웹 ACL)을 선택합니다.

1. **마이그레이션 구성**에서 템플릿에 사용할 Amazon S3 버킷을 입력합니다. 생성한 AWS CloudFormation 템플릿을 저장하려면 마이그레이션 API에 대해 올바르게 구성된 Amazon S3 버킷이 필요합니다.
   + 버킷이 암호화된 경우 Amazon S3(SSE-S3) 키를 사용해야 합니다. 마이그레이션은 AWS Key Management Service (SSE-KMS) 키를 사용한 암호화를 지원하지 않습니다.
   + 버킷 이름은 `aws-waf-migration-`로 시작해야 합니다. 예를 들어 `aws-waf-migration-my-web-acl`입니다.
   + 버킷은 템플릿을 배포할 리전에 속해야 합니다. 예를 들어 `us-west-2`의 보호 팩(웹 ACL)이라고 가정할 경우 `us-west-2`에 속한 Amazon S3 버킷을 사용하고, 템플릿 스택을 `us-west-2`에 배포해야 합니다.

1. **S3 bucket policy(S3 버킷 정책)**에서는 **Auto apply the bucket policy required for migration(마이그레이션에 필요한 버킷 정책을 자동 적용)**을 선택하는 것이 좋습니다. 그 밖에 버킷을 직접 관리하고 싶다면 다음 버킷 정책을 수동으로 적용해야 합니다.
   + 글로벌 Amazon CloudFront 애플리케이션(`waf`)의 경우:

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "apiv2migration.waf.amazonaws.com"
                 },
                 "Action": "s3:PutObject",
                 "Resource": "arn:aws:s3:::<BUCKET_NAME>/AWSWAF/<CUSTOMER_ACCOUNT_ID>/*"
             }
         ]
     }
     ```

------
   + 리전 Amazon API Gateway 또는 Application Load Balancer 애플리케이션(`waf-regional`)의 경우:

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "apiv2migration.waf-regional.amazonaws.com"
                 },
                 "Action": "s3:PutObject",
                 "Resource": "arn:aws:s3:::<BUCKET_NAME>/AWSWAF/<CUSTOMER_ACCOUNT_ID>/*"
             }
         ]
     }
     ```

------

1. **Choose how to handle rules that cannot be migrated(마이그레이션할 수 없는 규칙 처리 방법 선택)**에서 마이그레이셔할 수 없는 규칙을 제외하거나 마이그레이션을 중지하도록 선택합니다. 마이그레이션할 수 없는 규칙에 대한 자세한 내용은 [마이그레이션 경고 및 제한 사항](waf-migrating-caveats.md) 단원을 참조하세요.

1. **다음**을 선택합니다.

1. ** CloudFormation 템플릿 생성**에서 설정을 확인한 다음 ** CloudFormation 템플릿 생성 시작**을 선택하여 마이그레이션 프로세스를 시작합니다. 이 작업은 보호 팩(웹 ACL)의 복잡성에 따라 몇 분 정도 걸릴 수 있습니다.

1. ** CloudFormation 스택 생성 및 실행에서 마이그레이션을 완료하기** 위해 AWS CloudFormation 콘솔로 이동하여 템플릿에서 스택을 생성하고 새 보호 팩(웹 ACL)과 해당 리소스를 생성하도록 선택할 수 있습니다. 이렇게 하려면 ** CloudFormation 스택 생성을** 선택합니다.

자동 마이그레이션 프로세스가 완료되면 수동 후속 단계를 진행할 수 있습니다. [보호 팩(웹 ACL) 마이그레이션: 수동 후속 단계](waf-migrating-procedure-manual-finish.md)을(를) 참조하세요.

# 보호 팩(웹 ACL) 마이그레이션: 수동 후속 단계
<a name="waf-migrating-procedure-manual-finish"></a>

자동 마이그레이션이 완료되면 새롭게 생성된 보호 팩(웹 ACL)을 검토하고 마이그레이션으로도 가져올 수 없는 구성 요소를 입력합니다. 다음 절차에서는 마이그레이션에서 처리하지 못하는 보호 팩(웹 ACL) 관리의 측면을 다룹니다. 목록은 [마이그레이션 경고 및 제한 사항](waf-migrating-caveats.md) 단원을 참조하세요.

**기본 마이그레이션을 완료하려면 - 수동 단계**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) AWS WAF 콘솔을 엽니다.

1. 콘솔은의 최신 버전을 자동으로 사용해야 합니다 AWS WAF. 이를 확인하려면 탐색 창에서 ** AWS WAF 클래식으로 전환** 옵션이 표시되는지 확인합니다. **새 버전으로 전환 AWS WAF**이 표시되면 해당 항목을 선택하여 최신 버전으로 전환합니다.

1. 탐색 창에서 **보호 팩(웹 ACL)**을 선택합니다.

1. **보호 팩(웹 ACL)** 페이지에서 새 보호 팩(웹 ACL)을 생성한 리전의 목록에서 새 보호 팩(웹 ACL)을 찾습니다. 보호 팩(웹 ACL)의 이름을 선택하여 보호 팩(웹 ACL)에 대한 설정을 표시합니다.

1. 이전 AWS WAF Classic 웹 ACL과 비교하여 새 보호 팩(웹 ACL)의 모든 설정을 검토합니다. 기본적으로 로깅 및 보호 리소스 연결은 비활성화됩니다. 이 두 가지 설정은 나중에 전환할 준비가 되었을 때 활성화합니다.

1.  AWS WAF Classic 보호 팩(웹 ACL)에 관리형 규칙 그룹이 있는 경우 마이그레이션에서 규칙 그룹 포함을 가져오지 않았습니다. 관리형 규칙 그룹을 새 보호 팩(웹 ACL)에 추가할 수 있습니다. 의 새 버전에서 사용할 수 있는 관리형 규칙 목록을 포함하여 AWS 관리형 규칙 그룹에 대한 정보를 검토합니다 AWS WAF[에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md). 관리형 규칙 그룹을 추가하려면 다음을 수행합니다.

   1. 보호 팩(웹 ACL) 설정 페이지에서 보호 팩(웹 ACL) **규칙** 탭을 선택합니다.

   1. **규칙 추가**를 선택한 다음 **Add managed rule groups(관리형 규칙 그룹 추가)**를 선택합니다.

   1. 원하는 공급업체 목록을 확장하고 추가할 규칙 그룹을 선택합니다. AWS Marketplace 판매자의 경우 규칙 그룹을 구독해야 할 수 있습니다. 보호 팩(웹 ACL)에서 관리형 규칙 그룹 사용에 대한 자세한 내용은 [에서 관리형 규칙 그룹 사용 AWS WAF](waf-managed-rule-groups.md) 및 [에서 규칙 및 규칙 그룹과 함께 보호 팩(웹 ACLs) 사용 AWS WAF](web-acl-processing.md) 섹션을 참조하세요.

기본 마이그레이션 프로세스를 마친 후에는 자신의 요건을 검토하고 추가 옵션의 필요성을 살펴보는 것이 좋습니다. 그래야만 새로운 구성 효율을 최대한 높이는 동시에 최신 보안 옵션을 사용할 수 있기 때문입니다. [보호 팩(웹 ACL) 마이그레이션: 추가 고려 사항](waf-migrating-procedure-additional.md)을(를) 참조하세요.

# 보호 팩(웹 ACL) 마이그레이션: 추가 고려 사항
<a name="waf-migrating-procedure-additional"></a>

새 보호 팩(웹 ACL)을 검토하고 새에서 사용할 수 있는 옵션을 고려하여 구성이 최대한 효율적이고 사용 가능한 최신 보안 옵션을 사용하고 있는지 AWS WAF 확인합니다.

**추가 AWS 관리형 규칙**  
보호 팩(웹 ACL)에 추가 AWS 관리형 규칙을 구현하여 애플리케이션의 보안 태세를 강화하는 것이 좋습니다. 이러한 규칙은 추가 비용 없이 AWS WAF 에 포함됩니다. AWS 관리형 규칙은 다음과 같은 유형의 규칙 그룹을 제공합니다.
+ 기본 규칙 그룹은 알려진 잘못된 입력이 애플리케이션에 삽입되지 않도록 막거나 관리자 페이지 액세스를 차단하는 등 여러 가지 일반적인 위협에서 보호하는 기능을 제공합니다.
+ 사용 사례별 규칙 그룹은 다양한 사용 사례 및 환경에 대해 점진적 보호 기능을 제공합니다.
+ IP 평판 목록은 클라이언트의 소스 IP를 기반으로 위협 인텔리전스를 제공합니다.

자세한 내용은 [AWS 에 대한 관리형 규칙 AWS WAF](aws-managed-rule-groups.md) 단원을 참조하십시오.

**규칙 최적화 및 정리**  
이전 규칙을 다시 살펴보고 다시 작성하거나 오래된 규칙을 제거하여 최적화하는 것이 좋습니다. 예를 들어 과거에 OWASP Top 10 Web Application Vulnerabilities, [Prepare for the OWASP Top 10 Web Application Vulnerabilities Using AWS WAF 및 새로운 백서에](https://aws.amazon.com/blogs/aws/prepare-for-the-owasp-top-10-web-application-vulnerabilities-using-aws-waf-and-our-new-white-paper/) 대한 기술 백서의 AWS CloudFormation 템플릿을 배포한 경우 이를 AWS 관리형 규칙으로 대체하는 것이 좋습니다. 문서 내에 있는 개념은 여전히 적용 가능하며 자체 규칙을 작성하는 데 도움이 될 수 있지만 템플릿에서 생성된 규칙은 주로 AWS 관리형 규칙으로 대체되었습니다.

**Amazon CloudWatch 지표 및 경보**  
Amazon CloudWatch 지표를 보관하고 필요에 따라 경보를 설정합니다. 마이그레이션은 CloudWatch 경보를 전달하지 않기 때문에 지표 이름이 원하는 것과 다를 수 있습니다.

**애플리케이션 팀과 검토**  
애플리케이션 팀과 협력하여 보안 상태를 확인하십시오. 애플리케이션에서 자주 구문 분석하는 필드를 찾아 그에 따른 입력 내용을 검열할 수 있는 규칙을 추가합니다. 극단적 사례가 있는지 확인하고, 애플리케이션의 비즈니스 로직이 이러한 사례를 처리하지 못할 경우 해당 사례를 찾아낼 수 있는 규칙을 추가합니다.

**전환 계획**  
애플리케이션 팀과 함께 전환 시점을 계획합니다. 이전 보호 팩(웹 ACL) 연결에서 새 보호 팩(웹 ACL) 연결로의 전환 시 리소스가 저장된 모든 영역으로 전파되기까지 약간의 시간이 걸릴 수 있습니다. 전파 시간은 몇 초\$1몇 분이 걸릴 수 있습니다. 이 기간 동안 일부 요청은 이전 보호 팩(웹 ACL)에서 처리되고 일부 요청은 새 보호 팩(웹 ACL)에서 처리됩니다. 전환 내내 리소스가 보호되지만 전환이 진행될 때는 요청 처리에서 불일치 사항이 발견될 수 있습니다.

전환할 준비가 되면 [보호 팩(웹 ACL) 마이그레이션: 전환](waf-migrating-procedure-switchover.md)의 절차를 따르십시오.

# 보호 팩(웹 ACL) 마이그레이션: 전환
<a name="waf-migrating-procedure-switchover"></a>

새 보호 팩(웹 ACL) 설정을 확인한 후에는 AWS WAF Classic 보호 팩(웹 ACL) 대신 사용할 수 있습니다.

**새 AWS WAF 보호 팩(웹 ACL) 사용을 시작하려면**

1. 의 지침에 따라 AWS WAF 보호 팩(웹 ACL)을 보호하려는 리소스와 연결합니다[보호와 AWS 리소스의 연결 또는 연결 해제](web-acl-associating-aws-resource.md). 이를 통해 이전 보호 팩(웹 ACL)에서 리소스 연결이 자동으로 해제됩니다.

   전환 시 전파하는 데는 몇 초\$1몇 분이 걸릴 수 있습니다. 이 기간 동안 일부 요청은 이전 보호 팩(웹 ACL)에서 처리되고 다른 요청은 새 보호 팩(웹 ACL)에서 처리될 수 있습니다. 전환 내내 리소스가 보호되지만 완료될 때까지는 요청 처리에서 불일치 사항이 발견될 수 있습니다.

1. [AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md)의 지침에 따라 새 보호 팩(웹 ACL)에 대한 로깅을 구성합니다.

1. (선택 사항) AWS WAF Classic 보호 팩(웹 ACL)이 더 이상 리소스와 연결되지 않는 경우 AWS WAF Classic에서 완전히 제거하는 것이 좋습니다. 자세한 내용은 [웹 ACL 삭제](classic-web-acl-deleting.md) 섹션을 참조하세요.