我想使用 AWS WAF 在 Amazon API Gateway REST API 上实施基于速率的规则。
解决方法
**注意:**AWS WAF 目前仅支持 API Gateway REST API。
要使用 AWS WAF 在 REST API 上应用基于速率的规则,请创建包含基于速率的规则的保护包,并与您的 REST API 进行关联。
创建 Web ACL
完成以下步骤。
- 打开 AWS WAF 控制台。
- 在导航窗格中,选择 AWS WAF。
- 选择 Resources & protection packs(资源和保护包)。
- 选择 Create protection pack(创建保护包)。
- 要设置保护包,请配置以下值:
在 App category(应用程序类别)下拉列表中,选择 API & integration services(API 和集成服务)。
- 在 Select resources to protect(选择要保护的资源)下,选择 Add resources(添加资源)。
- 选择 Add regional resources(添加区域资源)
- 从列表中选择您的 API。
- 在 Choose protection pack(选择保护包)下,选择 Build your own pack from all of the protections AWS WAF offers(从 AWS WAF 提供的所有保护中创建自己的保护包)。
- 在右侧窗格中,选择 Custom rule(自定义规则),然后选择 next(下一步)。
- 选择 Rate-based rule(基于速率的规则),然后选择 next(下一步)。
对于 Action(操作),请选择 Block(阻止)。
对于 Rule name(规则名称),输入规则的名称。
对于 Rate limit(速率限制),输入一个介于 10 和 2,000,000,000 之间的数字。
对于 Evaluation window(评估窗口),选择您的评估窗口。
- 在 Rule configuration(规则配置)下,对于 Request aggregation(请求聚合),选择以下选项之一:
选择 Source IP address(源 IP 地址),根据客户端 IP 字段设置速率限制。
-or-
选择标头中的 IP 地址,根据 IP address in header(标头中的 IP 地址)设置速率限制。
注意:如果您的流量流经代理或内容分发网络 (CDN),请使用标头中的 IP 地址。有关详细信息,请参阅在 AWS WAF 中使用转发的 IP 地址。
对于 Scope of inspection and rate limiting(检查范围和速率限制),选择以下选项之一:
选择 Consider all requests(考虑所有请求),为 Web ACL 检查的所有请求创建规则。
-or-
选择 Only consider requests that match the criteria in a rule statement(仅考虑符合规则语句中相应条件的请求)以应用范围缩小语句。
对于 Name(名称),输入 Web ACL 的名称。
选择 Create rule(创建规则)。
- 在 Name and describe(名称和描述)下,输入保护包的名称。
- 选择 Create protection pack(创建保护包)。
相关信息
在 AWS WAF 中聚合基于速率的规则
三条最重要的基于速率的 AWS WAF 规则
如何使用聚合密钥在 AWS WAF 中配置速率限制规则?