OR 规则语句 - AWS WAF, AWS Firewall Manager,以及 AWS Shield Advanced

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

OR 规则语句

这些区域有:OR 规则语句将嵌套语句与 OR 逻辑,因此其中一个嵌套语句必须与 OR 要匹配的语句。这至少需要两个嵌套语句。

例如,如果您想阻止来自特定国家/地区或包含特定查询字符串的请求,则可以创建一个 OR 语句并在其中嵌入一个国家的地理匹配语句和一个用于查询字符串的字符串匹配语句。

相反,如果你想屏蔽不是来自特定国家/地区或包含特定查询字符串的请求,则需要修改之前的 OR 语句将地理匹配语句嵌套在低一层,内部 NOT 网页。这种嵌套级别要求您使用JSON格式,因为控制台仅支持一个级别的嵌套。

规则语句特征

嵌套 – 您可以嵌套此语句类型。

WCUs— 取决于嵌套语句。

在何处查找规则语句

  • 控制台上的规则生成器 – 对于如果有请求,选择至少匹配其中一条语句 (OR),然后填写嵌套语句。

  • APIOrStatement

示例

以下清单显示了的用法 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规则清单包括 OR 语句嵌套在 AND 网页。

{ "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" } }