OR规则语句 - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

OR规则语句

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

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

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

嵌套的— 你可以嵌套这个语句类型。

WCU— 取决于嵌套语句。

此语句的查找位置

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

  • API 语句OrStatement

示例

下面的列表显示了的使用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" } }