Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

デフォルトのルートオブジェクトを指定する

フォーカスモード
デフォルトのルートオブジェクトを指定する - Amazon CloudFront

ユーザー (ビューワー) がディストリビューション内のオブジェクトではなくディストリビューションのルート URL をリクエストした場合に、特定のオブジェクト (デフォルトルートオブジェクト) を返すように CloudFront を設定できます。デフォルトルートオブジェクトを使用して、ディストリビューションのコンテンツの公開を回避できます。

デフォルトルートオブジェクトを指定する方法

ディストリビューションのコンテンツが公開されたり、エラーが返されたりすることを回避するには、ディストリビューションのデフォルトルートオブジェクトを指定します。正確なファイル名またはファイルへのパスを指定できます。例えば、ルートオブジェクトが index.html ファイルの場合、そのファイル名を指定できます。index.html ファイルが別のフォルダにある場合は、代わりに exampleFolderName/index.html などのパスを指定します。デフォルトルートオブジェクトへのパスを設定すると、ディストリビューションのルート URL へのビューワーリクエストはそのパスから指定したファイルを返します。ファイルパスを使用すると、デフォルトルートオブジェクトをルートレベルではなくフォルダに配置できるため、オリジンでコンテンツをより柔軟に整理できます。

ディストリビューションのデフォルトルートオブジェクトを指定するには
  1. デフォルトルートオブジェクトを、ディストリビューションが指しているオリジンにアップロードします。

    ファイルには、CloudFront でサポートされるあらゆるタイプを使用できます。ファイル名に対する制約事項のリストについては、「Amazon CloudFront API Reference」の「DistributionConfig」で DefaultRootObject エレメントを参照してください。

    注記

    デフォルトルートオブジェクトのファイル名が長すぎるか、そのファイル名に無効な文字が含まれている場合、CloudFront はエラー HTTP 400 Bad Request - InvalidDefaultRootObject を返します。また、CloudFront はコードをキャッシュに (デフォルトで) 10 秒間保持し、結果をアクセスログに書き込みます。

  2. オブジェクトのアクセス許可によって CloudFront に少なくとも読み取りアクセス権が付与されていることを確認します。

    Amazon S3 のアクセス権限の詳細については、Amazon Simple Storage Service ユーザーガイドの「Amazon S3 での Identity and Access Management」を参照してください。

  3. CloudFront コンソールまたは CloudFront API を使用して、デフォルトルートオブジェクトを参照するようにディストリビューションを更新します。

    CloudFront コンソールを使用してデフォルトルートオブジェクトを指定するには:

    1. AWS Management Console にサインインし、https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます。

    2. 上部ペインにあるディストリビューションのリストで、更新するディストリビューションを選択します。

    3. [Settings] (設定) ペインで、[General] (一般) タブの [Edit] (編集) を選択します。

    4. [設定を編集] ダイアログボックスの [デフォルトルートオブジェクト] フィールドに、デフォルトルートオブジェクトのファイル名またはパスを入力します。

      ヒント

      文字列をスラッシュ (/) で始めることはできません。オブジェクト名またはオブジェクトへのパスのみを指定します。例えば、index.html または exampleFolderName/index.html を使用します。/exampleFolderName/index.html または /index.html を指定すると、403 アクセス拒否エラーが発生する可能性があります。

    5. [Save changes] (変更の保存) をクリックします。

    CloudFront API を使用して設定を更新するには、ディストリビューションの DefaultRootObject エレメントの値を指定します。CloudFront API を使用してデフォルトのルートオブジェクトを指定する方法については、Amazon CloudFront API リファレンスの「UpdateDistribution」を参照してください。

  4. ルート URL を要求することで、デフォルトルートオブジェクトが有効になっていることを確認します。ブラウザにデフォルトルートオブジェクトが表示されない場合、以下のステップを実行します。

    1. CloudFront コンソールにディストリビューションのステータスを表示し、ディストリビューションが完全にデプロイされていることを確認します。

    2. ステップ 2 と 3 を繰り返し、適切な許可を付与したこと、およびデフォルトルートオブジェクトを指定するようにディストリビューションの構成を適切に更新したことを確認します。

デフォルトのルートオブジェクトの仕組み

次のリクエストはオブジェクト image.jpg を指すとします。

https://d111111abcdef8.cloudfront.net/image.jpg

これに対して、最初の例のように、次のリクエストは特定のオブジェクトではなく、同じディストリビューションのルート URL を指します。

https://d111111abcdef8.cloudfront.net/

デフォルトルートオブジェクトを定義した場合、ディストリビューションのルートを呼び出すエンドユーザーリクエストはデフォルトルートオブジェクトを返します。たとえば、ファイル index.html をデフォルトルートオブジェクトとして指定したと仮定します。

https://d111111abcdef8.cloudfront.net/

戻り値:

https://d111111abcdef8.cloudfront.net/index.html

注記

CloudFront は、末尾に複数のスラッシュ (https://d111111abcdef8.cloudfront.net///) が付いている URL が https://d111111abcdef8.cloudfront.net/ と等しいかどうかを判断しません。オリジンサーバーがその比較を行います。

デフォルトルートオブジェクトを定義しても、ディストリビューションのサブディレクトリに対するエンドユーザーリクエストはデフォルトルートオブジェクトを返しません。例えば、index.html がデフォルトルートオブジェクトであり、CloudFront が CloudFront ディストリビューション下の install ディレクトリに対するエンドユーザーリクエストを受け取ったと仮定します。

https://d111111abcdef8.cloudfront.net/install/

index.html のコピーが install ディレクトリ内にあっても、CloudFront はデフォルトルートオブジェクトを返しません。ただし、デフォルトルートオブジェクトへのパス (install/index.html) を指定すると、CloudFront は install ディレクトリへのエンドユーザーリクエストにデフォルトルートオブジェクトを返します。

CloudFront がサポートするすべての HTTP メソッドを許可するようにディストリビューションを設定する場合、デフォルトのルートオブジェクトがすべてのメソッドに適用されます。例えば、デフォルトのルートオブジェクトが index.php であり、POST リクエストをドメインのルート (https://example.com) に送信するようにアプリケーションを作成するなら、CloudFront はリクエストを https://example.com/index.php に送信します。

CloudFront のデフォルトルートオブジェクトの動作は、Amazon S3 のインデックスドキュメントの動作とは異なります。Amazon S3 バケットをウェブサイトとして設定し、インデックスドキュメントを指定した場合、ユーザーがバケット内のサブディレクトリを要求しても、Amazon S3 はインデックスドキュメントを返します。(インデックスドキュメントのコピーがすべてのサブディレクトリに含まれる必要があります)。Amazon S3 バケットをウェブサイトとして設定する方法とインデックスドキュメントの詳細については、Amazon Simple Storage Service ユーザーガイドの「Amazon S3 でのウェブサイトのホスティング」を参照してください。

重要

デフォルトルートオブジェクトは CloudFront ディストリビューションにのみ適用されることに注意してください。オリジンのセキュリティを依然として管理する必要があります。例えば、Amazon S3 オリジンを使用する場合、Amazon S3 バケットの ACL も依然として適切に設定する必要があり、バケットに対する必要なアクセスレベルを確保する必要があります。

ルートオブジェクトを定義しない場合の CloudFront の動作

デフォルトルートオブジェクトを定義しない場合、ディストリビューションのルートの要求はオリジンサーバーに渡されます。Amazon S3 オリジンを使用する場合、以下のいずれかが返される場合があります。

  • Amazon S3 バケットのコンテンツのリスト – 以下のいずれかの条件が満たされる場合、CloudFront を使用してディストリビューションにアクセスするユーザーにオリジンのコンテンツが表示されます。

    • バケットが適切に構成されていない。

    • ディストリビューションに関連付けられているバケット、およびバケット内のオブジェクトに対する Amazon S3 アクセス許可で、すべてのユーザーにアクセスが付与されている。

    • エンドユーザーがオリジンのルート URL を使用してオリジンにアクセスしている。

  • オリジンのプライベートコンテンツのリスト – オリジンをプライベートディストリビューション (設定者と CloudFront のみがアクセス可能) として設定している場合、ディストリビューションに関連付けられた Amazon S3 バケットのコンテンツは、CloudFront 経由でディストリビューションにアクセスできる認証情報を持っているユーザーにも表示されます。この場合、ユーザーは、オリジンのルート URL を使用してコンテンツにアクセスできません。プライベートコンテンツの配信の詳細については、「署名付き URL と署名付き Cookie を使用したプライベートコンテンツを提供する」を参照してください。

  • Error 403 Forbidden – CloudFront は、ディストリビューションに関連付けられた Amazon S3 バケットに対する許可またはそのバケット内のオブジェクトに対する許可によって CloudFront およびすべてのユーザーのアクセスが拒否された場合にこのエラーを返します。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.