ウェブサイトエンドポイント - Amazon Simple Storage Service

ウェブサイトエンドポイント

バケットを静的ウェブサイトとして設定すると、そのウェブサイトは、バケットの AWS リージョン 固有のウェブサイトエンドポイントで利用できます。ウェブサイトエンドポイントは、REST API リクエストを送信するエンドポイントとは別のものです。エンドポイントの違いの詳細については、「ウェブサイトエンドポイントと REST API エンドポイントの主な違い」を参照してください。

使用しているリージョンに応じて、Amazon S3 ウェブサイトエンドポイントは以下の 2 つの形式のいずれかになります。

  • s3-website ダッシュ (-) リージョンhttp://bucket-name.s3-website-Region.amazonaws.com

  • s3-website ドット (.) リージョンhttp://bucket-name.s3-website.Region.amazonaws.com

これらの URL にアクセスすると、ウェブサイト用に設定したデフォルトのインデックスドキュメントが返されます。Amazon S3 ウェブサイトエンドポイントの完全なリストについては、「Amazon S3 ウェブサイトエンドポイント」を参照してください。

注記

Amazon S3 の静的ウェブサイトのセキュリティを強化するために、Amazon S3 ウェブサイトのエンドポイントドメイン (s3-website-us-east-1.amazonaws.com や s3-website.ap-south-1.amazonaws.com など) はパブリックサフィックスリスト (PSL) に登録されています。セキュリティ強化のため、Amazon S3 統計 ウェブサイトのドメイン名に機密な Cookie を設定する必要が生じた場合は、__Host- プレフィックスの付いた Cookie の使用をお勧めします。このプラクティスは、クロスサイトリクエストフォージェリ (CSRF) 攻撃からドメインを防ぐ際に役立ちます。詳細については、Mozilla 開発者ネットワークの「Set-Cookie」ページを参照してください。

ウェブサイトを公開したい場合、顧客がウェブサイトエンドポイントにあるコンテンツにアクセスできるようにするには、すべてのコンテンツがパブリックに読み取り可能になっている必要があります。詳細については、「ウェブサイトアクセスのアクセス許可の設定」を参照してください。

重要

Amazon S3 ウェブサイトエンドポイントは HTTPS またはアクセスポイントをサポートしていません。HTTPS を使用する場合は、Amazon CloudFront を使用して Amazon S3 でホストされている静的ウェブサイトを提供できます。詳細については、CloudFront を使用して Amazon S3 バケットに対する HTTPS リクエストを処理するにはどうすればよいですか? を参照してください。カスタムドメインで HTTPS を使用するには、Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定を参照してください。

「リクエスタ支払い」バケットに、ウェブサイトエンドポイントを介してアクセスすることはできません。このようなバケットへのリクエストに対しては 403 Access Denied レスポンスを受け取ります。詳細については、「ストレージ転送と使用量のリクエスタ支払いバケットの使用」を参照してください。

ウェブサイトエンドポイントの例

以下の例では、静的ウェブサイトとして設定されている Amazon S3 バケットにアクセスする方法を示しています。

例 — ルートレベルでのオブジェクトのリクエスト

バケットのルートレベルに保存されている特定のオブジェクトをリクエストするには、以下の URL 構造を使用します。

http://bucket-name.s3-website.Region.amazonaws.com/object-name

たとえば、以下の URL は、バケットのルートレベルに保存されている photo.jpg オブジェクトをリクエストするものです。

http://example-bucket.s3-website.us-west-2.amazonaws.com/photo.jpg
例 — プレフィックスでのオブジェクトのリクエスト

バケット内のフォルダに保存されているオブジェクトをリクエストするには、以下の URL 構造を使用します。

http://bucket-name.s3-website.Region.amazonaws.com/folder-name/object-name

以下の URL は、バケット内の docs/doc1.html オブジェクトをリクエストするものです。

http://example-bucket.s3-website.us-west-2.amazonaws.com/docs/doc1.html

DNS CNAME の追加

登録済みのドメインをお持ちの場合、Amazon S3 ウェブサイトエンドポイントを指し示す DNS CNAME エントリを追加することができます。たとえば、ドメイン www.example-bucket.com を登録した場合は、バケット www.example-bucket.com を作成し、www.example-bucket.com.s3-website.Region.amazonaws.com を参照する DNS CNAME エントリを追加できます。http://www.example-bucket.com へのリクエストはすべて、www.example-bucket.com.s3-website.Region.amazonaws.com にルーティングされます。

詳細については、「CNAME レコードを使用した Amazon S3 URL のカスタマイズ」を参照してください。

Route 53 でのカスタムドメインの使用

Amazon S3 ウェブサイトエンドポイントを使用してウェブサイトにアクセスする代わりに、Amazon Route 53 に登録された独自のドメイン (example.com など) を使用して、コンテンツを提供できます。ルートドメインでウェブサイトをホストするために、Amazon S3 を Route 53 とともに使用することができます。例えば、ルートドメインが example.com で、ウェブサイトを Amazon S3 でホスティングする場合に、そのウェブサイトにブラウザからアクセスするには「http://www.example.com」または「http://example.com」を入力します。

チュートリアル例については、「チュートリアル: Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定」を参照してください。

ウェブサイトエンドポイントと REST API エンドポイントの主な違い

Amazon S3 ウェブサイトエンドポイントは、ウェブブラウザを介してアクセスするように最適化されています。以下の表は、REST API エンドポイントとウェブサイトエンドポイントの主な違いをまとめたものです。

主な違い REST API エンドポイント ウェブサイトエンドポイント
アクセスコントロール

パブリックコンテンツとプライベートコンテンツの両方をサポートします。

公開で読み取り可能なコンテンツのみをサポートします。
エラーメッセージの処理

XML 形式のエラーレスポンスを返します。

HTML ドキュメントを返します。
リダイレクトのサポート

該当しません

オブジェクトレベルとバケットレベルの両方のリダイレクトをサポートします。
サポートされるリクエスト

バケットおよびオブジェクトのすべてのオペレーションをサポートします。

オブジェクトに対しては GET リクエストと HEAD リクエストのみをサポートします。
バケットのルートでの GET リクエストと HEAD リクエストにレスポンスします。 バケット内のオブジェクトキーのリストを返します。 ウェブサイト設定で指定されているインデックスドキュメントを返します。
Secure Sockets Layer (SSL) のサポート SSL 接続をサポートします。 SSL 接続をサポートしません。

Amazon S3 エンドポイントの完全なリストについては、AWS 全般のリファレンス の「Amazon S3 エンドポイントとクォータ」を参照してください。