【发布时间】:2022-04-06 09:28:35
【问题描述】:
我在 AWS Cloudfront 后面有一个 API,多年来它在我们的前端应用程序中运行良好。最近,在功能发布后,我注意到一些用户报告数据未保存并且应用程序只是挂起。经过长时间的调查,我发现当 PUT 请求的 JSON 正文大于 8kb 时,我们的 Cloudfront 分发将返回 403 Forbidden 错误。任何东西都可以正常工作,任何东西都返回 403。我通过发送 PUT 请求来验证这一点,并减少正文数据大小,直到我得到预期的 201 Created 响应,然后检查发送的正文的大小。 JSON 格式正确。
错误在大约 170 毫秒内返回并包含来自 Cloudfront X-Cache: Error from cloudfront 的标头
我已经寻找大小限制的设置,我已经尝试禁用 WAF 规则,我已经尝试将“压缩对象”同时打开/关闭。启用实时日志会以某种方式影响接受的最大数据吗?看起来很疯狂,但我对这个问题有点困惑。
我很想向大家展示一些来自 Cloudwatch 的日志以提供帮助,但未通过 Cloudfront 的请求不会在 Cloudwatch 中记录,而且我无法设置任何类型的日志以变得更好深入了解它为什么会呕吐。
【问题讨论】:
-
另外,另一个指针将检查最新版本中的内容。
-
对不起,这与这个问题无关。也就是多源,我指的是请求体大小
-
我确实在 WAF 的 AWS 托管规则集中找到了一个 SizeRestrictions_BODY 规则,它“验证请求正文大小最多为 8 KB(8,192 字节)”我已将该规则覆盖为“计数“但问题仍然存在。我会寻找其他可能显示的地方
-
这似乎是一个 8kB 的限制,但 WAF 甚至没有在其日志中显示任何 DENY 操作。有谁知道 Cloudfront dist 的其他地方可能有 8kb 的正文长度限制?
标签: amazon-web-services amazon-cloudfront