跳至内容

如何对 CloudFront 的 "HTTP 403" 错误进行故障排除?

2 分钟阅读
0

我使用 Amazon CloudFront 分发我的内容,但是我的查看器收到了 "HTTP 403" 错误。

解决方法

要对 CloudFront "HTTP 403" 错误进行故障排除,请根据您的分配配置完成以下操作。

将域名与分配中的 CNAME 相关联

如果您使用 DNS 将自定义域名指向您的分配,但未添加备用域名 (CNAME),请检查您的配置。如果您不添加 CNAME,即使 CNAME 在 DNS 级别重定向到 CloudFront,CloudFront 也会返回 "403" 错误。

要使用 CNAME 而不是默认 CloudFront URL,请按照添加备用域名的说明进行操作。有关详细信息,请参阅备用 CNAME 配置有误

查看 CloudFront 地理限制设置

CloudFront 地理限制可能会阻止特定国家/地区的用户访问您的内容。检查您的地理限制设置,允许或拒绝访问您的 CloudFront 分配。

有关详细信息,请参阅如何使用 CloudFront 地理限制来控制对 Web 内容的访问权限?

查看您的 AWS WAF 规则配置

如果您错误配置了 AWS WAF 规则,则可能会收到 "403" 错误。

要解决此问题,请参阅如何解决 CloudFront 中的 "403 Error - The request could not be satisfied.Request Blocked" 错误?

Amazon S3 源返回 "403" 错误

根据您的 Amazon Simple Storage Service (Amazon S3) 源端点配置,请参阅以下文章:

为什么我在使用 Amazon S3 网站端点作为 CloudFront 分配的源时收到 "403 access denied" 错误?

为什么我在使用 S3 REST API 端点作为 CloudFront 分配的源时收到 "403 Access Denied" 错误?

**注意:**如果您在 S3 源上指定了源路径,请确保 S3 源路径与 CloudFront URI 路径字符完全匹配。

自定义源返回 "403" 错误

由于应用程序防火墙或原始服务器的错误配置设置,自定义源可能会返回 "403" 错误。

要验证错误是否从自定义源返回,请检查源 HTTP 访问日志。

如果您无法检查源 HTTP 访问日志,请执行以下操作:

  • 检查 CloudFront 访问日志。如果请求的 time-taken 字段小于 time-taken 字段的平均值,则响应可能并非来自源。time-taken 字段中的较低值表示边缘站点发送了响应。
  • 直接向源发起请求,而不是通过 CloudFront。如果您可以复制错误,则源可能已返回 "403" 错误。
  • 如果响应中包含不带值 CloudFront 的服务器标头,则自定义源可能会返回错误。

签名 URL 或签名 Cookie 的配置错误导致 "403" 错误

如果您为 CloudFront 分配的行为配置启用了限制查看器访问,请确保使用签名 URL 和签名 Cookie。有关详细信息,请参阅使用签名 URL 和签名 Cookie 提供私有内容

要进一步进行故障排除,请参阅如何排查与 CloudFront 中的签名 URL 或签名 Cookie 相关的 "403 Access Denied" 错误?

链式分配返回 "403" 错误

如果您在向源端点发出的请求链中存在两个或更多分配,则 CloudFront 会返回 403 错误。最佳做法是不要将一个分配置于另一个分配之前。

检查 HTTP 和 HTTPS 的查看器协议策略配置

如果请求通过 HTTP 发起,但您将 CloudFront 分配配置为仅允许 HTTPS 请求,则可能会收到 "403" 错误。

要解决此问题,请参阅如何解决 CloudFront 中的 "403 ERROR - The request could not be satisfied.Bad Request" 错误?

相关信息

如何对 Amazon API Gateway 中的 HTTP 403 错误进行故障排除?

如何对应用程序负载均衡器 HTTP 403 禁止访问错误进行故障排除?

HTTP 403 状态代码(权限遭拒)