

# HTTP 403 ステータスコード (Permission Denied)
<a name="http-403-permission-denied"></a>

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

**Topics**
+ [代替 CNAME の設定が適切でない](#alternate-cname-incorrectly-configured)
+ [CloudFront ディストリビューションまたはオリジンで AWS WAF が設定されている場合](#aws-waf-configured-on-distribution-origin)
+ [カスタムオリジンが 403 エラーを返す場合](#custom-origin-returning-403)
+ [Amazon S3 オリジンが 403 エラーを返す場合](#s3-origin-403-error)
+ [地理的制限が 403 エラーを返す場合](#geolocation-403)
+ [署名付き URL または署名付き Cookie 設定が 403 エラーを返す場合](#signed-URLs-cookies-403)
+ [スタックディストリビューションが 403 エラーを引き起こす場合](#stacked-distributions-403)

## 代替 CNAME の設定が適切でない
<a name="alternate-cname-incorrectly-configured"></a>

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

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

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

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

## CloudFront ディストリビューションまたはオリジンで AWS WAF が設定されている場合
<a name="aws-waf-configured-on-distribution-origin"></a>

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

403 ステータスコードのソースを検索するには、AWS WAF ウェブアクセスコントロールリスト (ACL) ルールでブロックされたリクエストを確認します。詳細については、以下の各トピックを参照してください。
+ [AWS WAF ウェブアクセスコントロールリスト (ウェブ ACL)](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl.html)
+ [AWS WAF 保護のテストと調整](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-testing.html)

## カスタムオリジンが 403 エラーを返す場合
<a name="custom-origin-returning-403"></a>

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

カスタムオリジンがエラーの原因である場合は、オリジンログを調べて、エラーの原因となっている可能性がある要因を特定します。詳細については、以下のトラブルシューティングトピックを参照してください。
+ [API ゲートウェイからの HTTP 403 エラーをトラブルシューティングする方法を教えてください。](https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-troubleshoot-403-forbidden/ )
+ [Application Load Balancer の HTTP 403 forbidden エラーのトラブルシューティング方法を教えてください。](https://repost.aws/knowledge-center/alb-http-403-error)

## Amazon S3 オリジンが 403 エラーを返す場合
<a name="s3-origin-403-error"></a>

403 エラーが発生する理由:
+ CloudFront に Amazon S3 バケットへのアクセス権限がない。これは、オリジンアクセスアイデンティティ (OAI) またはオリジンアクセスコントロール (OAC) がディストリビューションに対して有効になっておらず、バケットがプライベートである場合に発生する可能性がある。
+ リクエストされた URL で指定されたパスが正しくない。
+ リクエストされたオブジェクトが存在しない。
+ ホストヘッダーが REST API エンドポイントで転送された。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「[HTTP ホストヘッダーバケットの仕様](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#VirtualHostingSpecifyBucket)」を参照してください。**
+ カスタムエラーページを設定している。詳細については、「[カスタムエラーページが設定されている場合に CloudFront がエラーを処理する方法](HTTPStatusCodes.md#HTTPStatusCodes-custom-error-pages)」を参照してください。

## 地理的制限が 403 エラーを返す場合
<a name="geolocation-403"></a>

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

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

## 署名付き URL または署名付き Cookie 設定が 403 エラーを返す場合
<a name="signed-URLs-cookies-403"></a>

ディストリビューションの動作設定で **[ビューワーのアクセスを制限する]** を有効にした場合、署名付き Cookie または署名付き URL を使用しないリクエストは 403 エラーになります。詳細については、以下の各トピックを参照してください。
+ [署名付き URL と署名付き Cookie を使用したプライベートコンテンツを提供する](PrivateContent.md)
+ [CloudFront の署名付き URL または署名付き Cookie に関連する問題をトラブルシューティングする方法を教えてください。](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-troubleshoot-signed-url-cookies/)

## スタックディストリビューションが 403 エラーを引き起こす場合
<a name="stacked-distributions-403"></a>

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