

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

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

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

# 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)