AWS WAF 사용자 지정 규칙이 작동하지 않는 이유는 무엇입니까?

3분 분량
0

사용자 지정 AWS WAF 규칙을 생성했지만 예상대로 작동하지 않습니다. 문제를 해결하려면 어떻게 해야 합니까?

해결 방법

사용자 지정 AWS WAF 규칙이 예상대로 작동하지 않는 경우 다음을 확인하십시오.

  • 규칙의 우선순위
  • 텍스트 변환
  • 부울 논리

규칙의 우선순위

사용자 지정 규칙의 우선 순위가 올바른지 확인합니다. 자세한 내용은 웹 ACL에서 규칙 및 규칙 그룹의 처리 순서를 참조하세요.

규칙이 정의된 규칙 그룹 또는 웹 ACL에서 이름으로 규칙에 액세스할 수 있습니다.

AWS WAF 규칙 평가 순서는 위에서 아래로 이동한 다음 일치하는 첫 번째 종료 Allow, Block, 또는 CAPTCHA 규칙에서 중지됩니다. 요청이 사용자 지정 규칙 위에 있는 종료 규칙 중 하나와 일치하면 AWS WAF가 해당 규칙에 지정된 작업을 수행합니다. 해당 요청은 사용자 지정 규칙에 따라 평가되지 않습니다. 자세한 내용은 웹 ACL에서 규칙 및 규칙 그룹 작업의 기본 처리를 참조하십시오.

예를 들어 AWS Managed Rule 그룹(AMR)이 차단하는 요청을 허용하는 사용자 지정 허용 규칙을 생성한다고 가정해 보겠습니다. 사용자 지정 규칙을 요청을 차단하는 AMR보다 위(낮은 숫자 우선 순위)로 배치해야 합니다.

웹 ACL 및 규칙 그룹에 사용할 수 있는 AWS WAF 콘솔 규칙 빌더를 통해 우선순위 순서를 관리할 수 있습니다. AWS API를 사용하여 우선 순위를 변경하려면UpdateWebACLUpdateRuleGroup API 호출을 사용합니다. AWS CLI를 사용하여 우선 순위를 변경하려면 update-web-aclupdate-rule-group 명령을 사용합니다.

텍스트 변환

사용자 지정 규칙에서 텍스트 변형을 사용하는 경우 올바른 방식으로 텍스트 변형을 적용했는지 확인합니다. 자세한 내용은 AWS WAF 텍스트 변환을 참조하십시오.

AWS WAF는 요청을 검사하기 전에 변환을 적용합니다. 변환을 두 개 이상 지정하는 경우 AWS WAF는 나열된 순서대로 처리합니다. 사용자 지정 규칙에서 여러 변환을 사용하는 경우, 변형 및 변형 순서를 확인해야 합니다.

예를 들어 query 인수의 문자열에 대해 Base64 디코딩URL 디코딩을 수행하는 사용자 지정 규칙을 생성한 경우입니다. AWS WAF는 먼저 수신 요청에서 쿼리 문자열의 Base64 디코딩을 수행합니다. Base64 디코딩 결과 문자열은 URL 디코딩을 사용하여 추가로 변환됩니다. 그런 다음 URL 디코딩 결과 문자열이 규칙 구성에서 제공한 문자열을 검사합니다.

부울 논리

논리 규칙 문을 사용하는 경우, 사용자 지정 규칙에 사용된 AND, OR, 또는 NOT 논리가 올바른지 확인합니다. 자세한 내용은 규칙 문 목록을 참조하고 논리 규칙 문의 지침을 따릅니다.

Boolean 논리를 사용하여 이를 확인하려면 다음 예제를 고려해 보십시오.

조건이 있는 요청과 일치하는 사용자 지정 규칙을 생성하는 경우: 요청에 URI “/test”가 있으며 그리고 소스 IP가 IP 집합 X에 위치한 경우 차단합니다.

요청 1

요청에 URI "/test"(부울 1)이 있으며 그리고 IP가 IP 세트 X(부울 0)에 위치하지 않는 경우, 부울 1과 그리고 부울 0은 부울 0이 됩니다.

이 요청은 사용자 지정 규칙과 일치하지 않습니다.

요청 2

요청에 URI "/test"(부울 0)이 없으며 그리고 IP가 IP 세트 X(부울 0)에 위치하지 않는 경우, 부울 0과 그리고 부울 0은 부울 0이 됩니다.

이 요청은 사용자 지정 규칙과 일치하지 않습니다.

요청 3

요청에 URI "/test"(부울 1)이 있으며 그리고 IP가 IP 세트 X(부울 1)에 위치하는 경우, 부울 1과 그리고 부울 1은 부울 1이 됩니다.

이 요청은 사용자 지정 규칙과 일치합니다.


AWS 공식
AWS 공식업데이트됨 2년 전