AWS WAF 레이블 매칭 예제 - AWS WAF, AWS Firewall Manager 및 AWS Shield Advanced

AWS WAF 레이블 매칭 예제

이 섹션에서는 레이블 일치 규칙 문에 대한 일치 사양의 예를 제공합니다.

참고

이러한 JSON 목록은 콘솔에서 레이블 일치 사양과 함께 규칙을 웹 ACL에 추가한 다음 규칙을 편집하고 나서 규칙 JSON 편집기로 전환하여 생성했습니다. API 또는 명령줄 인터페이스를 통해 규칙 그룹 또는 웹 ACL에 대한 JSON을 가져올 수도 있습니다.

로컬 레이블과 일치

다음 JSON 목록은 이 규칙과 동일한 컨텍스트에서 웹 요청에 로컬로 추가된 레이블에 대한 레이블 일치 문을 보여줍니다.

Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }

웹 ACL testWebACL에 대해 정의하는 규칙에서 계정 111122223333에 이 일치 문을 사용하면 다음 레이블과 일치하게 됩니다.

awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
awswaf:111122223333:webacl:testWebACL:testNS1:testNS2:header:encoding:utf8

레이블 문자열이 정확히 일치하지 않기 때문에 다음 레이블과 일치하지 않을 수 있습니다.

awswaf:111122223333:webacl:testWebACL:header:encoding2:utf8

컨텍스트가 동일하지 않아 접두사가 일치하지 않으므로 다음 레이블과 일치하지 않을 수 있습니다. 규칙이 정의된 웹 ACL testWebACLproductionRules 규칙 그룹을 추가한 경우에도 마찬가지입니다.

awswaf:111122223333:rulegroup:productionRules:header:encoding:utf8

다른 컨텍스트의 레이블과 일치

다음 JSON 목록은 사용자가 만든 규칙 그룹 내 규칙의 레이블과 일치하는 레이블 일치 규칙을 보여줍니다. 지정된 규칙 그룹에 속하지 않는 웹 ACL에서 실행되는 모든 규칙의 사양에는 접두사가 필요합니다. 이 예제 레이블 사양은 정확한 레이블만 일치시킵니다.

Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "awswaf:111122223333:rulegroup:testRules:header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }

관리형 규칙 그룹 레이블과 일치

이는 일치 규칙의 레이블이 아닌 다른 컨텍스트의 레이블을 대상으로 일치시키는 특별한 경우입니다. 다음 JSON 목록은 관리형 규칙 그룹 레이블의 레이블 일치 문을 보여줍니다. 이 경우 레이블 일치 문의 키 설정에 지정된 것과 정확히 일치하는 레이블만 일치시킵니다.

Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "awswaf:managed:aws:managed-rule-set:header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }

로컬 네임스페이스와 일치

다음 JSON 목록은 로컬 네임스페이스의 레이블 일치 문을 보여줍니다.

Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "NAMESPACE", Key: "header:encoding:" } }, Labels: [ ...generate_more_labels... ], Action: { Block: {} } }

로컬 Label 일치와 마찬가지로, 웹 ACL testWebACL에 대해 정의하는 규칙에서 계정 111122223333에 이 명령문을 사용하면 다음 레이블과 일치하게 됩니다.

awswaf:111122223333:webacl:testWebACL:header:encoding:utf8

계정이 동일하지 않아 접두사가 일치하지 않으므로 다음 레이블과 일치하지 않을 수 있습니다.

awswaf:444455556666:webacl:testWebACL:header:encoding:utf8

또한 다음과 같이 접두사가 관리형 규칙 그룹에서 적용한 어떤 레이블과도 일치하지 않습니다.

awswaf:managed:aws:managed-rule-set:header:encoding:utf8

관리형 규칙 그룹 네임스페이스와 일치

다음 JSON 목록은 관리형 규칙 그룹 네임스페이스의 레이블 일치 문을 보여줍니다. 소유한 규칙 그룹의 경우 규칙 컨텍스트 외부에 있는 네임스페이스와 일치시키려면 접두사도 제공해야 합니다.

Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "NAMESPACE", Key: "awswaf:managed:aws:managed-rule-set:header:" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }

이 사양은 다음 예제 레이블과 일치합니다.

awswaf:managed:aws:managed-rule-set:header:encoding:utf8
awswaf:managed:aws:managed-rule-set:header:encoding:unicode

다음 레이블과는 일치하지 않습니다.

awswaf:managed:aws:managed-rule-set:query:badstring