

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

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

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

# 문자열 매칭 조건 작업
<a name="classic-web-acl-string-conditions"></a>

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

**참고**  
이것은 **AWS WAF Classic** 설명서입니다. 2019년 11월 AWS WAF 이전에에서 규칙 및 웹 ACLs과 같은 리소스를 생성하고 AWS WAF 아직 최신 버전으로 마이그레이션하지 않은 경우에만이 버전을 사용해야 합니다. 웹 ACL 마이그레이션하려면 [AWS WAF Classic 리소스를 로 마이그레이션 AWS WAF](waf-migrating-from-classic.md) 섹션을 참조하세요.  
**의 최신 버전은 AWS WAF** 단원을 참조하십시오[AWS WAF](waf-chapter.md).

요청에 나타나는 문자열에 근거하여 웹 요청을 허용하거나 차단하려는 경우, 문자열 매칭 조건을 하나 이상 생성합니다. 문자열 일치 조건은 검색할 문자열과 AWS WAF Classic이 문자열을 검사할 지정된 헤더 또는 쿼리 문자열과 같은 웹 요청 부분을 식별합니다. 이 프로세스에서 나중에 웹 ACL을 생성할 때 문자열이 포함된 요청을 허용할지 또는 차단할지를 지정합니다.

**Topics**
+ [문자열 매칭 조건 생성](#classic-web-acl-string-conditions-creating)
+ [문자열 매칭 조건을 생성하거나 편집할 때 지정하는 값](#classic-web-acl-string-conditions-values)
+ [문자열 매칭 조건에서 필터 추가 및 삭제](#classic-web-acl-string-conditions-editing)
+ [문자열 매칭 조건 삭제](#classic-web-acl-string-conditions-deleting)

## 문자열 매칭 조건 생성
<a name="classic-web-acl-string-conditions-creating"></a>

문자열 일치 조건을 생성할 때 검색할 문자열과 AWS WAF Classic이 URI 또는 쿼리 문자열과 같이 해당 문자열을 검사할 웹 요청의 부분을 식별하는 필터를 지정합니다. 문자열 매칭 조건에 두 개 이상의 필터를 추가하거나 각 필터에 대해 별도의 문자열 매칭 조건을 생성할 수 있습니다. 각 구성이 AWS WAF Classic 동작에 미치는 영향은 다음과 같습니다.
+ **문자열 일치 조건당 필터 1**개 - 별도의 문자열 일치 조건을 규칙에 추가하고 규칙을 웹 ACL에 추가하는 경우 웹 요청은 AWS WAF Classic이 조건에 따라 요청을 허용하거나 차단하기 위한 모든 조건과 일치해야 합니다.

  예컨대, 두 개의 조건을 생성한다고 가정합시다. 하나는 `User-Agent` 헤더에 `BadBot`라는 값이 포함된 웹 요청과 일치합니다. 다른 하나는 쿼리 문자열에 `BadParameter`라는 값이 포함된 웹 요청과 일치합니다. 두 조건을 모두 동일한 규칙에 추가하고 규칙을 웹 ACL에 추가하면 AWS WAF Classic은 두 값이 모두 포함된 경우에만 요청을 허용하거나 차단합니다.
+ **문자열 일치 조건당 두 개 이상의 필터** - 규칙에 여러 필터가 포함된 문자열 일치 조건을 추가하고 규칙을 웹 ACL에 추가하는 경우 AWS WAF Classic이 한 조건을 기반으로 요청을 허용하거나 차단하려면 웹 요청은 문자열 일치 조건의 필터 중 하나와만 일치하면 됩니다.

  두 개 대신 하나의 조건을 생성하고, 하나의 조건에 이전 예제와 동일한 두 개의 필터가 포함되어 있다고 가정해 보겠습니다. AWS WAF Classic은 `User-Agent` 헤더 또는 쿼리 문자열**`BadBot`에가 포함된 경우 요청을 허용*하거나* 차단`BadParameter`합니다.

**참고**  
규칙에 문자열 일치 조건을 추가할 때 조건의 값과 *일치하지 않는* 웹 요청을 허용하거나 차단하도록 AWS WAF Classic을 구성할 수도 있습니다.<a name="classic-web-acl-string-conditions-creating-procedure"></a>

**문자열 매칭 조건을 생성하려면**

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

   탐색 창에 ** AWS WAF 클래식으로 전환**이 표시되면 선택합니다.

1. 탐색 창에서 **문자열 및 정규식 일치**를 선택합니다.

1. **조건 생성**을 선택합니다.

1. 해당 필터 설정값을 지정합니다. 자세한 설명은 [문자열 매칭 조건을 생성하거나 편집할 때 지정하는 값](#classic-web-acl-string-conditions-values) 섹션을 참조하세요.

1. **필터 추가**를 선택합니다.

1. 다른 필터를 추가하려는 경우, 4 \$1 5단계를 반복합니다.

1. 필터 추가를 완료했으면 [**Create**]를 선택합니다.

## 문자열 매칭 조건을 생성하거나 편집할 때 지정하는 값
<a name="classic-web-acl-string-conditions-values"></a>

문자열 매칭 조건을 생성하거나 업데이트할 때 다음 값을 지정합니다.

**이름**  
문자열 매칭 조건의 명칭을 입력합니다. 명칭은 영숫자(A-Z, a-z, 0-9) 또는 특수 문자(\$1-\$1"\$1`\$1\$1\$1,./)만 포함할 수 있습니다. 조건을 생성한 후에는 조건의 명칭을 변경할 수 없습니다.

**타입**  
[**String match**]를 선택합니다.

**요청 중 필터링할 부분**  
 AWS WAF Classic이 **일치시킬 값에** 지정한 문자열을 검사할 각 웹 요청의 부분을 선택합니다.    
**헤더**  
지정된 요청 헤더입니다(예: `User-Agent` 또는 `Referer` 헤더). [**Header**]를 선택하는 경우, [**Header**] 필드에서 헤더의 명칭을 지정합니다.  
**HTTP 메서드**  
요청이 오리진에게 수행할 것을 요구하고 있는 작업의 타입을 표시하는 HTTP 메서드입니다. CloudFront는 다음 메서드를 지원합니다: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT`.  
**쿼리 문자열**  
URL 중 `?` 문자 뒤에 나타나는 부분입니다(있는 경우).  
**URI**  
리소스를 식별하는 요청의 URI 경로(예: `/images/daily-ad.jpg`). 여기에는 URI의 쿼리 문자열 또는 조각 구성 요소는 포함되지 않습니다. 자세한 설명은 [Uniform Resource Identifier (URI): Generic Syntax](https://tools.ietf.org/html/rfc3986#section-3.3) 섹션을 참조하세요.  
**변환**을 지정하지 않는 한 URI는 정규화되지 않으며가 요청의 일부로 클라이언트로부터 AWS 수신하는 것처럼 검사됩니다. **변환**은 지정된 대로 URI를 다시 포맷합니다.  
**바디**  
요청 중 HTTP 요청 본문으로서 웹 서버에 보낼 추가 데이터(예: 양식의 데이터)가 들어 있는 부분입니다.  
**요청 중 필터링할 부분** 값으로 **본문**을 선택하는 경우, AWS WAF Classic은 처음 8192바이트(8KB)만 검사합니다. 본문이 8192바이트보다 긴 요청을 허용하거나 차단하려면 크기 제약 조건을 생성할 수 있습니다. (AWS WAF Classic은 요청 헤더에서 본문의 길이를 가져옵니다.) 자세한 내용은 [크기 제약 조건 작업](classic-web-acl-size-conditions.md) 단원을 참조하십시오.  
**단일 쿼리 파라미터(값만 해당)**  
쿼리 문자열의 일부로 정의한 모든 파라미터입니다. 예컨대, URL이 "www.xyz.com?UserName=abc&SalesRegion=seattle"인 경우, *UserName* 또는 *SalesRegion* 파라미터에 필터를 추가할 수 있습니다.  
쿼리 문자열에 중복 파라미터가 표시될 경우, 값이 "OR"로 평가됩니다. 즉, 두 값 중 하나가 일치를 트리거합니다. 예컨대, URL "www.xyz.com?SalesRegion=boston&SalesRegion=seattle"에서 **매칭시킬 값**의 "boston" 또는 "seattle"이 일치를 트리거합니다.  
**Single query parameter (value only)(단일 쿼리 파라미터(값만 해당))**를 선택하는 경우, **Query parameter name(쿼리 파라미터 명칭)**도 지정합니다. 검사할 쿼리 문자열의 파라미터입니다(예: *UserName* 또는 *SalesRegion*). **Query parameter name(쿼리 파라미터 명칭)**의 최대 길이는 30자입니다. **Query parameter name(쿼리 파라미터 명칭)**은 대/소문자를 구분하지 않습니다. 예를 들어, *UserName*을 **쿼리 파라미터 명칭**으로 지정하는 경우, 이 명칭은 *사용자 명칭* 및 *UserName*과 같은 *UserName*의 모든 변형과 일치합니다.  
**모든 쿼리 파라미터(값만 해당)**  
**단일 쿼리 파라미터(값만 해당)**와 비슷하지만 단일 파라미터의 값을 검사하는 대신 AWS WAF Classic은 쿼리 문자열 내의 모든 파라미터 값을 검사**하여 일치하는 값이** 있는지 확인합니다. 예컨대, URL이 "www.xyz.com?UserName=abc&SalesRegion=seattle"이며 **모든 쿼리 파라미터(값만 해당)**를 선택할 경우, AWS WAF Classic은 *UserName* 또는 *SalesRegion* 값이 **매칭시킬 값**으로 지정되면 일치를 트리거합니다.

**헤더("요청 중 필터링할 부분"이 "헤더"인 경우에만)**  
**필터링할 요청의 목록에서** **헤더**를 선택한 경우 일반 헤더 목록에서 헤더를 선택하거나 AWS WAF Classic에서 검사할 헤더의 이름을 입력합니다.

**일치 타입**  
 AWS WAF Classic이 검사할 요청 부분 내에서 **일치시킬 값의** 문자열이이 필터와 일치해야 하는 위치를 선택합니다.    
**포함**  
문자열이 요청의 지정된 부분에 아무 곳이나 나타납니다.  
**단어 포함**  
웹 요청의 지정된 부분에 [**Value to match**]가 포함되어야 하며 [**Value to match**]에는 영숫자 문자 또는 밑줄(A-Z, a-z, 0-9 또는 \$1)만 포함되어야 합니다. 또한 [**Value to match**]는 하나의 단어여야 합니다. 따라서 이 값은 다음 중 하나일 수 있습니다.  
+ [**Value to match**]가 웹 요청의 지정된 부분의 값(예: 헤더의 값)과 정확히 일치합니다.
+ [**Value to match**]가 웹 요청의 지정된 부분의 시작 부분에 있고 그 뒤에 영숫자 또는 밑줄(\$1)을 제외한 다른 문자가 있습니다(예: `BadBot;`).
+ [**Value to match**]가 웹 요청의 지정된 부분의 끝 부분에 있고 그 앞에 영숫자 또는 밑줄(\$1)을 제외한 다른 문자가 있습니다(예: `;BadBot`).
+ [**Value to match**]가 웹 요청의 지정된 부분의 중간에 있고 그 앞과 뒤에 영숫자 또는 밑줄(\$1)을 제외한 다른 문자가 있습니다(예: `-BadBot;`).  
**정확히 일치**  
문자열과 요청의 지정된 부분의 값이 같습니다.  
**다음으로 시작**  
문자열이 요청의 지정된 부분의 시작 부분에 나타납니다.  
**다음으로 끝남**  
문자열이 요청의 지정된 부분의 끝에 나타납니다.

**트랜스포메이션**  
 AWS WAF Classic이 요청을 검사하기 전에 변환이 웹 요청의 형식을 다시 지정합니다. 이렇게 하면 공격자가 AWS WAF Classic을 우회하기 위해 웹 요청에 사용하는 몇 가지 비정상적인 형식이 제거됩니다.  
단일 타입의 텍스트 변환만을 지정할 수 있습니다.  
변환 기능을 사용하여 다음 작업을 수행할 수 있습니다.    
**없음**  
AWS WAF Classic은 **일치시킬 값의** 문자열을 검사하기 전에 웹 요청에 대해 텍스트 변환을 수행하지 않습니다.  
**소문자로 변환**  
AWS WAF Classic은 대문자(A\$1Z)를 소문자(a\$1z)로 변환합니다.  
**HTML 디코딩**  
AWS WAF Classic은 HTML 인코딩 문자를 인코딩되지 않은 문자로 바꿉니다.  
+ `&quot;`를 `&`로 바꿈
+ `&nbsp;`를 줄 바꿈하지 않는 공백으로 바꿈
+ `&lt;`를 `<`로 바꿈
+ `&gt;`를 `>`로 바꿈
+ 16진수 형식으로 표현된 문자 `&#xhhhh;`를 해당 문자로 바꿈
+ 십진수 형식으로 표현된 문자 `&#nnnn;`을 해당 문자로 바꿈  
**공백 표준화**  
AWS WAF Classic은 다음 문자를 공백 문자(10진수 32)로 바꿉니다.  
+ \$1f, 양식 피드, 십진수 12
+ \$1t, 탭, 십진수 9
+ \$1n, 줄 바꿈, 십진수 10
+ \$1r, 캐리지 리턴, 십진수 13
+ \$1v, 세로 탭, 십진수 11
+ 줄 바꿈하지 않는 공백, 십진수 160
또한 이 옵션은 여러 개의 공백을 하나의 공백으로 바꿉니다.  
**명령행 간소화**  
공격자가 작동 시스템 명령행 명령을 삽입하고 이상한 형식을 사용하여 명령의 일부 또는 전부를 위장하고 있는지 우려되는 경우, 이 옵션을 사용하여 다음 변환을 수행합니다.  
+ 다음 문자를 삭제: \$1 " ' ^
+ 다음 문자 앞에 있는 공백 삭제: / (
+ 다음 문자를 공백으로 바꿈: , ;
+ 여러 개의 공백을 하나의 공백으로 바꿈
+ 대문자(A-Z)를 소문자(a-z)로 변환  
**URL 디코딩**  
URL 인코딩된 요청을 디코딩합니다.

**값이 base64로 인코딩됨**  
[**Value to match**]의 값이 base64로 인코딩되는 경우, 이 확인란을 선택합니다. base64 인코딩을 사용하여 공격자가 요청에 포함시키는 인쇄할 수 없는 문자(예: 탭 및 줄 바꿈)를 지정합니다.

**매칭시킬 값**  
 AWS WAF Classic이 웹 요청에서 검색할 값을 지정합니다. 최대 길이는 50바이트입니다. 값을 base64로 인코딩하는 경우, 값을 인코딩하기 전에 50바이트 최대 길이가 값에 적용됩니다.

## 문자열 매칭 조건에서 필터 추가 및 삭제
<a name="classic-web-acl-string-conditions-editing"></a>

문자열 매칭 조건에 필터를 추가하거나 필터를 삭제할 수 있습니다. 필터를 변경하려면 새 명칭을 추가하고 기존 명칭을 삭제합니다.<a name="classic-web-acl-string-conditions-editing-procedure"></a>

**문자열 매칭 조건에서 필터를 추가하거나 삭제하려면**

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

   탐색 창에 ** AWS WAF 클래식으로 전환**이 표시되면 선택합니다.

1. 탐색 창에서 **문자열 및 정규식 일치**를 선택합니다.

1. 필터를 추가하거나 삭제하려는 조건을 선택합니다.

1. 필터를 추가하려면 다음 단계를 수행합니다.

   1. **필터 추가**를 선택합니다.

   1. 해당 필터 설정값을 지정합니다. 자세한 설명은 [문자열 매칭 조건을 생성하거나 편집할 때 지정하는 값](#classic-web-acl-string-conditions-values) 섹션을 참조하세요.

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

1. 필터를 삭제하려면 다음 단계를 수행합니다.

   1. 삭제하려는 필터를 선택합니다.

   1. [**Delete Filter**]를 선택합니다.

## 문자열 매칭 조건 삭제
<a name="classic-web-acl-string-conditions-deleting"></a>

문자열 매칭 조건을 삭제하려는 경우, 먼저 다음 절차의 설명에 따라 조건에 있는 모든 필터를 삭제하고 조건을 사용하고 있는 모든 규칙에서 조건을 제거해야 합니다.<a name="classic-web-acl-string-conditions-deleting-procedure"></a>

**문자열 매칭 조건을 삭제하려면**

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

   탐색 창에 ** AWS WAF 클래식으로 전환**이 표시되면 선택합니다.

1. 문자열 매칭 조건을 사용하고 있는 규칙에서 해당 조건을 제거합니다.

   1. 탐색 창에서 **규칙**을 선택합니다.

   1. 삭제하려는 문자열 매칭 조건을 사용하고 있는 규칙의 명칭을 선택합니다.

   1. 오른쪽 창에서 [**Edit rule**]을 선택합니다.

   1. 삭제하려는 조건 옆의 [**X**]를 선택합니다.

   1. **업데이트**를 선택합니다.

   1. 삭제하려는 문자열 매칭 조건을 사용하고 있는 나머지 모든 규칙에 대해 반복합니다.

1. 삭제하려는 조건에서 필터를 제거합니다.

   1. 탐색 창에서 **문자열 및 정규식 일치**를 선택합니다.

   1. 삭제하려는 문자열 매칭 조건의 명칭을 선택합니다.

   1. 오른쪽 창에서 [**Filter**] 옆의 확인란을 선택하여 필터를 모두 선택합니다.

   1. [**Delete filter**]를 선택합니다.

1. 탐색 창에서 **문자열 및 정규식 일치**를 선택합니다.

1. [**String and regex match conditions**] 창에서 삭제하려는 문자열 매칭 조건을 선택합니다.

1. **삭제**를 선택하여 선택한 조건을 삭제합니다.