CloudFront と Amazon S3 オリジンの間の通信に HTTPS を要求する - Amazon CloudFront

CloudFront と Amazon S3 オリジンの間の通信に HTTPS を要求する

オリジンが Amazon S3 バケットの場合、CloudFront との通信に HTTPS を使用するためのオプションは、バケットの使用方法によって異なります。Amazon S3 バケットがウェブサイトエンドポイントとして設定されている場合、オリジンとの通信に HTTPS を使用するように CloudFront を設定することはできません。Amazon S3 はその設定で HTTPS 接続をサポートしていないためです。

オリジンが HTTPS 通信をサポートする Amazon S3 バケットの場合、CloudFront はビューワーがリクエストを送信するのに使ったプロトコルを必ず使用して S3 にリクエストを転送します。プロトコル (カスタムオリジンのみ) 設定のデフォルト設定は [Match Viewer (ビューワーに合わせる)] で、変更できません。

CloudFront と Amazon S3 との間の通信で HTTPS を必須にする場合、[ビューワープロトコルポリシー] の値を [Redirect HTTP to HTTPS (HTTP から HTTPS へのリダイレクト)] または [HTTPS Only (HTTPS のみ)] に変更する必要があります。このセクションで後述する手順では、CloudFront コンソールを使用して [ビューワープロトコルポリシー] を変更する方法について説明します。CloudFront API を使用してディストリビューションの ViewerProtocolPolicy 要素を更新する方法については、Amazon CloudFront API リファレンスの「UpdateDistribution」を参照してください。

HTTPS 通信をサポートする Amazon S3 バケットで HTTPS を使用する場合、Amazon S3 では SSL/TLS 証明書を使用できるため、この通信を使用する必要はありません。

Amazon S3 オリジンに HTTPS を要求する

次の手順は、Amazon S3 オリジンに HTTPS を要求するように CloudFront を設定する方法を示しています。

Amazon S3 オリジン接続時の HTTPS を必須にするよう CloudFront を設定するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます。

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

  3. [Behaviors] タブで、更新するキャッシュ動作を選択した後、[Edit] を選択します。

  4. [Viewer Protocol Policy] として次のいずれかの値を指定します。

    Redirect HTTP to HTTPS

    ビューワーは両方のプロトコルを使用できますが、HTTP リクエストは自動的に HTTPS リクエストにリダイレクトされます。CloudFront は新しい HTTPS URL とともに HTTP ステータスコード 301 (Moved Permanently) を返します。ビューワーはこの HTTPS URL を使用して CloudFront にリクエストを再送信します。

    重要

    CloudFront は、HTTP から HTTPS に DELETEOPTIONSPATCHPOST、または PUT リクエストをリダイレクトしません。HTTPS にリダイレクトするようにキャッシュ動作を設定した場合、CloudFront は HTTP ステータスコード 403 (Forbidden) を使用してそのキャッシュ動作の HTTP DELETEOPTIONSPATCHPOST、または PUT リクエストに応答します。

    ビューワーが作成した HTTP リクエストが HTTPS リクエストにリダイレクトされた場合、CloudFront では両方のリクエストに対する課金が発生します。HTTP リクエストの場合は、リクエストの料金と、CloudFront がビューワーに返すヘッダーの料金のみが課金されます。HTTPS リクエストの場合、リクエストの料金と、オリジンが返すヘッダーとオブジェクトの料金が課金されます。

    HTTPS Only

    ビューワーは、HTTPS を使用している場合にのみ、コンテンツにアクセスできます。ビューワーが HTTPS リクエストではなく HTTP リクエストを送信した場合、CloudFront は HTTP ステータスコード 403 (Forbidden) を返し、オブジェクトは返しません。

  5. [Yes, Edit (はい、編集します)] を選択します。

  6. ビューワーと CloudFront、および CloudFront と S3 との間で HTTPS を必須にする追加のキャッシュ動作ごとに、ステップ 3 から 5 を繰り返します。

  7. 本番環境で更新された情報を使用する前に、次を確認してください。

    • ビューワーに HTTPS の使用が必要とされるリクエストにのみ、各キャッシュ動作のパスパターンが適用されている。

    • CloudFront が評価する順番にキャッシュ動作がリストされている。詳細については、「パスパターン」を参照してください。

    • キャッシュ動作は、リクエストを正しいオリジンにルーティングします。