如何识别正在阻止我的请求或响应“403 Forbidden(403 禁止访问)”错误的 AWS WAF 规则?
简短描述
如果请求与设置为 Block(阻止)的 AWS WAF 规则匹配,则默认情况下,AWS WAF 会返回“403 Forbidden(403 禁止访问)”错误。如果您为阻止操作设置了自定义响应,则 AWS WAF 会返回您配置的响应。
要排查“403 Forbidden(403 禁止访问)”错误,请执行以下操作:
- 识别正在阻止请求的 AWS WAF 规则或规则组。
- 更改已识别的规则以允许您的请求。
解决方法
识别已阻止请求的 AWS WAF 规则或规则组
有两个选项可用于识别在正阻止请求的 AWS WAF 规则或规则组。
选项 1:采样请求
如果请求采样已启用,并且您的请求在过去三个小时内被阻止,则查看被阻止的请求的 Web 请求示例。
**注意:**如果您的请求已被阻止三个小时以上,您可以重新发送相同的请求以生成新的采样请求。
使用 Sampled requests(采样请求)表识别哪个规则或规则组阻止了请求:
- 使用 Source IP(源 IP)和 URI 列标识请求。
- 使用 Metric name(指标名称)列标识与请求匹配的规则或规则组。如果请求被规则组阻止,则使用 Rule inside rule group(规则组内的规则)列来标识规则。
- 借助 Action(操作)列,确认识别的规则已设置为 Block(阻止)。
记录阻止请求的规则或规则组。然后,继续更改 AWS WAF 规则以允许您的请求。
选项 2:AWS WAF 日志
如果 AWS WAF 日志记录已启用,您可以分析日志以找到阻止请求的规则或规则组。
- 查看您的 AWS WAF 日志。
- 在日志中识别被阻止的请求。
- 查看 terminatingRuleId 字段,识别阻止请求的 AWS WAF 规则或规则组。
记录阻止请求的规则或规则组。然后,继续更改 AWS WAF 规则以允许您的请求。
**注意:**如果您在请求时没有启用 AWS WAF 日志记录,您必须先启用 AWS WAF 日志记录。然后,重现请求,在 AWS WAF 日志中识别阻止请求的规则。有关更多信息,请参阅如何启用 AWS WAF 日志记录并将日志发送到 CloudWatch、Amazon S3 或 Kinesis Data Firehose?
更改 AWS WAF 规则以允许您的请求
识别阻止请求的规则或规则组后,适当更改规则或规则组,以便允许特定请求。