跳至內容

如何對 CloudFront「HTTP 403」錯誤進行疑難排解?

2 分的閱讀內容
0

我使用 Amazon CloudFront 傳送內容,但我的檢視者收到「HTTP 403」錯誤。

解決方法

若要對 CloudFront「HTTP 403」錯誤進行疑難排解,請根據您的發佈項目組態完成以下動作。

將網域名稱與發佈項目上的 CNAME 建立關聯

如果您使用 DNS 將自訂網域名稱指向發佈項目,但未新增備用網域名稱 (CNAME),請檢查您的組態。如果您未新增 CNAME,即使該 CNAME 在 DNS 層級重新導向至 CloudFront,CloudFront 仍會傳回「403」錯誤。

若要使用 CNAME 取代預設的 CloudFront 網址,請依照說明新增替代網域名稱。如需詳細資訊,請參閱替代 CNAME 設定不正確

檢查您的 CloudFront 地理限制設定

CloudFront 地理限制可能會阻止特定國家/地區的使用者存取您的內容。檢查您的地理限制設定,以允許或拒絕對您的 CloudFront 發佈項目的存取。

如需詳細資訊,請參閱如何使用 CloudFront 地理限制來控制對我的網路內容的存取?

檢查您的 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 的伺服器標頭,則自訂原始伺服器可能傳回該錯誤。

簽章網址或簽章 Cookie 設定錯誤導致「403」錯誤

如果您在 CloudFront 發佈項目的行為組態中開啟了 Restrict viewer access (限制檢視者存取),請確保您使用的是簽章網址與簽章 Cookie。如需更多資訊,請參閱使用簽署網址和簽署 Cookie 提供私有內容

若要進一步進行疑難排解,請參閱如何針對 CloudFront 中與簽章網址或簽章 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 錯誤進行疑難排解?

如何對 Application Load Balancer HTTP 403 禁止錯誤進行疑難排解?

HTTP 403 狀態碼 (權限遭拒)

AWS 官方已更新 8 個月前