HTTP 403 ステータスコード (Permission Denied) - Amazon CloudFront

HTTP 403 ステータスコード (Permission Denied)

HTTP 403 エラーは、リクエストされたリソースに対してクライアントにアクセス権限がないことを意味します。クライアントはリクエストを把握していても、ビューワーアクセスを承認できません。CloudFront がこのステータスコードを返す一般的な原因は、以下のとおりです。

代替 CNAME の設定が適切でない

ディストリビューションで適正な CNAME が指定されていることを確認します。デフォルトの CloudFront URL の代わりに代替 CNAME を使用するには、以下を実行します。

  1. CNAME が CloudFront ディストリビューション URL をポイントするように、DNS に CNAME レコードを作成します。

  2. CloudFront ディストリビューション設定に、この CNAME を追加します。

DNS レコードを作成しても、CloudFront ディストリビューション設定に CNAME を追加しないと、リクエストは 403 エラーを返します。カスタム CNAME の設定の詳細については、「代替ドメイン名 (CNAME) を追加することによって、カスタム URL を使用する」を参照してください。

CloudFront ディストリビューションまたはオリジンで AWS WAF が設定されている場合

AWS WAF がクライアントと CloudFront の間に配置されている場合、CloudFront はオリジンから返される 403 エラーコードと、リクエストがブロックされた際に AWS WAF から返される 403 エラーコードを区別できません。

403 ステータスコードのソースを検索するには、AWS WAF ウェブアクセスコントロールリスト (ACL) ルールでブロックされたリクエストを確認します。詳細については、以下の各トピックを参照してください。

カスタムオリジンが 403 エラーを返す場合

カスタムオリジンを使用していて、オリジンにカスタムファイアウォール設定があると、403 エラーが返される場合があります。トラブルシューティングを行うには、オリジンに直接リクエストを行います。CloudFront を使用せずにエラーをレプリケートできる場合、オリジンが 403 エラーの原因です。

カスタムオリジンがエラーの原因である場合は、オリジンログを調べて、エラーの原因となっている可能性がある要因を特定します。詳細については、以下のトラブルシューティングトピックを参照してください。

Amazon S3 オリジンが 403 エラーを返す場合

403 エラーが発生する理由:

  • CloudFront に Amazon S3 バケットへのアクセス権限がない。これは、オリジンアクセスアイデンティティ (OAI) またはオリジンアクセスコントロール (OAC) がディストリビューションに対して有効になっておらず、バケットがプライベートである場合に発生する可能性がある。

  • リクエストされた URL で指定されたパスが正しくない。

  • リクエストされたオブジェクトが存在しない。

  • ホストヘッダーが REST API エンドポイントで転送された。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「HTTP ホストヘッダーバケットの仕様」を参照してください。

  • カスタムエラーページを設定している。詳細については、「カスタムエラーページが設定されている場合に CloudFront がエラーを処理する方法」を参照してください。

地理的制限が 403 エラーを返す場合

地理的制限 (ジオブロッキングとも呼ばれる) を使用すると、CloudFront ディストリビューションを介して配信しているコンテンツに対して特定の地域のユーザーのアクセスを阻止することができます。

詳細については、「コンテンツの地理的配分を制限する」を参照してください。

署名付き URL または署名付き Cookie 設定が 403 エラーを返す場合

ディストリビューションの動作設定で [ビューワーのアクセスを制限する] を有効にした場合、署名付き Cookie または署名付き URL を使用しないリクエストは 403 エラーになります。詳細については、以下の各トピックを参照してください。

スタックディストリビューションが 403 エラーを引き起こす場合

オリジンエンドポイントへのリクエストチェーン内に複数のディストリビューションがある場合、CloudFront は 403 エラーを返します。あるディストリビューションを別のディストリビューションの前に配置することはお勧めしません。