对带有特定标签的请求进行速率限制 - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

对带有特定标签的请求进行速率限制

要限制各种类别的请求数量,您可以将速率限制与任何为请求添加标签的规则或规则组结合使用。为此,您需要按以下方式配置您的网站ACL:

  • 添加添加标签的规则或规则组,并对其进行配置,使其不会阻止或允许您想要限制速率的请求。如果您使用托管规则组,则可能需要覆盖某些规则组规则操作以 Count 来实现这种行为。

  • 将基于费率的规则添加到您的 Web ACL 中,其优先级数设置高于标签规则和规则组。 AWS WAF 按数字顺序评估规则,从最低顺序开始,因此基于速率的规则将在标签规则之后运行。在规则的范围缩小语句中结合使用标签匹配和标签聚合,从而在标签上配置速率限制。

以下示例使用 Amazon IP 信誉列表 AWS 托管规则规则组。规则组规则AWSManagedIPDDoSList检测并标记已知IPs正在积极参与DDoS活动的请求。规则的操作配置为 Count 在规则组定义中。有关规则组的更多信息,请参阅 Amazon IP 声誉列表托管规则组

以下 Web ACL JSON 列表使用 IP 信誉规则组,后面是基于标签匹配速率的规则。基于速率的规则使用范围缩小语句来筛选已由规则组规则标记的请求。基于速率的规则语句按其 IP 地址对筛选后的请求进行聚合和速率限制。

{ "Name": "test-web-acl", "Id": ... "ARN": ... "DefaultAction": { "Allow": {} }, "Description": "", "Rules": [ { "Name": "AWS-AWSManagedRulesAmazonIpReputationList", "Priority": 0, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesAmazonIpReputationList" } }, "OverrideAction": { "None": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesAmazonIpReputationList" } }, { "Name": "test-rbr", "Priority": 1, "Statement": { "RateBasedStatement": { "Limit": 100, "EvaluationWindowSec": 300, "AggregateKeyType": "IP", "ScopeDownStatement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList" } } } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "test-rbr" } } ], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "test-web-acl" }, "Capacity": 28, "ManagedByFirewallManager": false, "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:" }