AWS 负载均衡器返回 403 响应?
Posted
技术标签:
【中文标题】AWS 负载均衡器返回 403 响应?【英文标题】:AWS load balancer returns a 403 response? 【发布时间】:2021-10-04 20:44:47 【问题描述】:当调用到达特定 URL 时,AWS 负载均衡器会返回 403 响应。清除浏览器缓存后,它将开始工作。它偶尔会发生。是什么原因? WAF 日志中未记录此类响应。这是因为应用程序负载均衡器吗?最近有人从 AWS 遇到过此类问题吗?
【问题讨论】:
您是否使用 ALB 的 URL 或您的 ALB 前面的任何其他内容? @AshBlake 是的,所需的 URL 被 CNAMED 到 alb 可以改为使用A记录。您是否将 WAF 连接到 ALB?我觉得是浏览器本身的原因 是的@AshBlake 我将 WAF 附加到 ALB 我认为您应该检查 3 个原因:1. 浏览器 (10%), 2. 您的应用程序 (10%) 3. WAF (80%) 如果出现以下情况,您可以阅读日志您会看到缓存和没有缓存的标题不同。并且WAF被拒绝了,你应该仔细检查一下 【参考方案1】:如果您将 AWS WAF 与 ALB 一起使用,则 WAF 可能会阻止请求。以下文档可能会有所帮助。
[1] 对应用程序负载均衡器进行故障排除 - HTTP 403:禁止 - https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#http-403-issues
如果您启用了访问日志,请检查访问日志中的“已采取的操作”字段。如果它的值为“waf”,则表示负载均衡器将请求转发到 AWS WAF 以确定是否应将请求转发到目标。如果这是最后的操作,AWS WAF 确定应拒绝该请求。请查看以下文档以供参考。
[2] 应用程序负载均衡器的访问日志 - 采取的操作 - https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#actions-taken
另一方面,如果目标发送 HTTP 403 并且 ALB 将其转发回客户端也有可能。检查访问日志中的“target_status_code”字段是否为403。您还将看到“elb_status_code”是相同的,因为 ALB 会将相同的代码发送到客户端。
在这种情况下,“action”字段的值为“forward”。
ALB 访问日志格式/语法的 PFB 文档。
[3] 应用程序负载均衡器的访问日志 - 语法 - https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-log-entry-syntax
我希望这会有所帮助!
【讨论】:
以上是关于AWS 负载均衡器返回 403 响应?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS 负载均衡器响应中禁用 Apache HTTP 标头信息?
如何为 AutoScale 实例使用 AWS 负载均衡器代理协议?