Amazon S3 オリジンとともに CloudFront を使用しています。自分のファイルにアクセスできないのはなぜですか?

最終更新日: 2022 年 4 月 7 日

Amazon CloudFront ディストリビューションのオリジンとして Amazon Simple Storage Service (Amazon S3) バケットを使用していますが、S3 バケット内のファイルにアクセスしたり、ダウンロードしたりできません。この問題を解決するにはどうすればよいですか?

解決方法

「403 Access Denied」(403 アクセス拒否) エラーをトラブルシューティングする

CloudFront が「403 Access Denied」(403 アクセス拒否) エラーを返す場合は、ユースケースに基づいて次のガイドを参照してください。

CloudFront の地理的制限を確認する

ディストリビューションで地理的制限を使用している場合は、リクエストの発信元である国を制限していないことを確認します。

詳細については、「コンテンツの地理的ディストリビューションの制限」を参照してください。

S3 ウェブサイトのエンドポイントで HTTPS を強制していないことを確認する

Amazon S3 ウェブサイトのエンドポイントは HTTPS をサポートしていません。CLI、API、または SDK を使用して CloudFront ディストリビューションを設定した場合は、S3 ウェブサイトのエンドポイントオリジンで HTTPS を強制していないことを確認します。

HTTPS を使用しているかどうかを確認するには、GetDistributionConfig API または get-distribution-config CLI コマンドを使用してディストリビューション設定を取得します。OriginProtocolPolicyhttps-only に設定されている場合は、http-only を使用するように OriginProtocolPolicy を変更します。

HTTPS を使用するには、S3 REST API エンドポイントオリジンとともに CloudFront を使用します。詳細については、「CloudFront を使用して Amazon S3 バケット向けに HTTPS リクエストを提供するにはどうすればよいですか」を参照してください。

S3 オブジェクトが 30 GB 未満であることを確認する

HTTP GET、POST、および PUT リクエストで許可される最大ファイルサイズは 30 GB です。ファイルが 30 GB より大きい場合、400「BadRequest」エラーが表示されます。

詳細については、「ディストリビューションの一般的なクォータ」を参照してください。

S3 オブジェクトキー名に特殊文字が含まれていないか確認する

S3 オブジェクトキー名に特殊文字を使用している場合、特殊な処理が必要になることがあります。詳細については、「オブジェクトキーの命名のガイドライン」を参照してください。

サブディレクトリのデフォルトルートオブジェクトを使用していないことを確認する

CloudFront ディストリビューションは、オブジェクトがディストリビューションで設定されている場合でも、サブディレクトリからデフォルトのルートオブジェクトを返しません。詳細については、「デフォルトのルートオブジェクトの指定」を参照してください。

この問題を回避するには、Lambda@Edge を使用してサブディレクトリからデフォルトのルートオブジェクトを返すことができます。設定例については、「Implementing Default Directory Indexes in Amazon S3-backed Amazon CloudFront Origins Using Lambda@Edge」(Lambda@Edge を使用した Amazon S3-backed の Amazon CloudFront オリジンでのデフォルトのディレクトリインデックスの実装) を参照してください。

S3 オリジンでホストヘッダーを使用していないことを確認する

Amazon S3 オリジンでは、Host ヘッダーに基づくキャッシュ、または Host ヘッダーの転送はサポートされていません。詳細については、「Selecting the headers to base caching on」(キャッシュをベースにするヘッダーの選択) を参照してください。

「No 'Access-Control-Allow-Origin' header is present on the requested resource」(リクエストされたリソースに「Access-Control-Allow-Origin」ヘッダーがありません) というエラーをトラブルシューティングする


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?