ウェブサイトエンドポイント
バケットを静的ウェブサイトとして設定すると、そのウェブサイトは、バケットの 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)__Host-
プレフィックスの付いた Cookie の使用をお勧めします。このプラクティスは、クロスサイトリクエストフォージェリ (CSRF) 攻撃からドメインを防ぐ際に役立ちます。詳細については、Mozilla 開発者ネットワークの「Set-Cookie
ウェブサイトを公開したい場合、顧客がウェブサイトエンドポイントにあるコンテンツにアクセスできるようにするには、すべてのコンテンツがパブリックに読み取り可能になっている必要があります。詳細については、「ウェブサイトアクセスのアクセス許可の設定」を参照してください。
重要
Amazon S3 ウェブサイトエンドポイントは HTTPS またはアクセスポイントをサポートしていません。HTTPS を使用する場合は、Amazon CloudFront を使用して Amazon S3 でホストされている静的ウェブサイトを提供できます。詳細については、CloudFront を使用して Amazon S3 バケットに対する HTTPS リクエストを処理するにはどうすればよいですか?
「リクエスタ支払い」バケットに、ウェブサイトエンドポイントを介してアクセスすることはできません。このようなバケットへのリクエストに対しては 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.
を参照する DNS CNAME エントリを追加できます。Region
.amazonaws.comhttp://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 エンドポイントとクォータ」を参照してください。