我的 Application Load Balancer 返回 HTTP 403 禁止错误。我应该如何排查此问题?
解决方法
请按照您的情景执行以下排查步骤。
**重要信息:**在开始之前,请确保已为 Application Load Balancer 启用了访问日志记录。有关说明,请参阅启用访问日志记录。
AWS WAF Web 访问控制列表(Web ACL)经配置后,可监控向 Application Load Balancer 发出的请求,并阻止了一项请求。
负载均衡器则会向访问日志发送 HTTP 错误,并增加如下所示的 HTTPCode_ELB_4XX_Count 指标:
elb_status_code = 403
target_status_code = -
actions_executed = waf
这意味着负载均衡器会将请求转发到 AWS WAF,以确定是否应将请求转发到目标。然后,AWS WAF 决定是否拒绝该请求。要诊断规则配置,请查看 AWS WAF 日志。有关更多信息,请参阅管理 Web ACL 的日志记录。
Application Load Balancer 可能配置了固定响应操作的规则,以便提供 HTTP 403 响应。
检查访问日志中是否有如下所示内容的固定响应操作:
elb_status_code = 403
target_status_code = -
actions_executed = fixed-response
此日志表示规则配置具有提供 HTTP 403 错误的固定响应操作。
目标以 HTTP 403 错误响应后,Application Load Balancer 将此响应转发给客户端。
检查访问日志中是否有 403 条目,以获取如下所示的值:
elb_status_code = 403
target_status_code = 403
如果 target_status_code 和 elb_status_code 值相匹配,则目标应用程序会发送 HTTP 403 响应。要确定目标应用程序生成了 HTTP 403 禁止错误的原因,请咨询您的应用程序供应商。您还可以使用 X-Amzn-Trace-Id 标头通过 Application Load Balancer 跟踪请求。有关更多信息,请参阅如何使用 X-Amzn-Trace-Id 跟踪 Application Load Balancer 请求?
相关信息
排查 Application Load Balancer 问题
HTTP 403:禁止