

# ビューワーと CloudFront の間の通信に HTTPS を要求する
<a name="using-https-viewers-to-cloudfront"></a>

CloudFront ディストリビューション内で 1 つ以上のキャッシュ動作を設定して、ビューワーと CloudFront との通信で HTTPS を必須にできます。また、1 つ以上のキャッシュ動作で HTTP と HTTPS の両方を許可するように設定して、CloudFront における一部のオブジェクトで HTTPS を必須にすることもできます。設定手順はオブジェクト URL 内で使用しているドメイン名によって異なります。
+ CloudFront がディストリビューションに割り当てたドメイン名を使用している場合 (d111111abcdef8.cloudfront.net など)、1 つ以上のキャッシュ動作の [**ビューワープロトコルポリシー**] 設定を変更して、HTTPS 通信を必須にします。この設定で、CloudFront は SSL/TLS 証明書を提供します。

  CloudFront コンソールを使用して [**ビューワープロトコルポリシー**] の値を変更するには、このセクションで後述する手順を参照してください。

  CloudFront API を使用して `ViewerProtocolPolicy` 要素の値を変更する方法については、*Amazon CloudFront API リファレンス*の「[UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)」を参照してください。
+ 独自のドメイン名 (example.com など) を使用している場合、CloudFront のいくつかの設定を変更する必要があります。また、AWS Certificate Manager (ACM) が提供する SSL/TLS 証明書を使用するか、サードパーティー認証機関からの証明書を ACM または IAM 証明書ストアにインポートする必要があります。詳細については、「[代替ドメイン名と HTTPS を使用する](using-https-alternate-domain-names.md)」を参照してください。

**注記**  
ビューワーが CloudFront から取得するオブジェクトに関して、CloudFront がそのオブジェクトをオリジンから取得した段階で暗号化されていることを保証するには、CloudFront とオリジンとの間で必ず HTTPS を使用します。最近になって CloudFront とオリジンとの間で HTTP から HTTPS に変更した場合、CloudFront エッジロケーションのオブジェクトを無効にすることをお勧めします。CloudFront は、ビューワーが使用しているプロトコル (HTTP または HTTPS) について、CloudFront がオブジェクトを取得するのに使用したプロトコルと一致するかどうかに関係なく、オブジェクトをビューワーに返します。ディストリビューション内のオブジェクトの削除または置き換えの詳細については、「[CloudFront が配信するコンテンツを追加、削除、または置き換える](AddRemoveReplaceObjects.md)」を参照してください。

## ビューワーに HTTPS を要求する
<a name="configure-cloudfront-HTTPS-viewers"></a>

1 つ以上のキャッシュ動作でビューワーと CloudFront との間で HTTPS を必須にするには、次の手順を実行します。<a name="using-https-viewers-to-cloudfront-procedure"></a>

**ビューワーと CloudFront の間で HTTPS が必須になるよう CloudFront を設定するには**

1. AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

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

1. **[動作]** タブで、更新するキャッシュ動作を選択し、**[編集]** を選択します。

1. **[ビューワープロトコルポリシー]** で、次のいずれかの値を指定します。  
**Redirect HTTP to HTTPS**  
ビューワーは両方のプロトコルを使用できます。HTTP `GET` および `HEAD` リクエストは自動的に HTTPS リクエストにリダイレクトされます。CloudFront は新しい HTTPS URL とともに HTTP ステータスコード 301 (Moved Permanently) を返します。ビューワーはこの HTTPS URL を使用して CloudFront にリクエストを再送信します。  
`POST`、`PUT`、`DELETE`、`OPTIONS`、`PATCH` を HTTP 経由で HTTP から HTTPS キャッシュ動作にして HTTP 1.1 以降のリクエストプロトコルバージョンで送信すると、CloudFront はそのリクエストを HTTP ステータスコード 307 (Temporary Redirect) で HTTPS の場所にリダイレクトします。これはリクエストが同じメソッドと本文ペイロードを使用して新しい場所に再度送信されることを保証するものです。  
`POST`、`PUT`、`DELETE`、`OPTIONS`、`PATCH` のリクエストを HTTP 経由で HTTPS キャッシュ動作に HTTP 1.1 以前のリクエストプロトコルバージョンで送信すると、CloudFront は HTTP ステータスコード 403 (Forbidden) を返します。
ビューワーが作成した HTTP リクエストが HTTPS リクエストにリダイレクトされた場合、CloudFront では両方のリクエストに対する課金が発生します。HTTP リクエストの場合は、リクエストの料金と、CloudFront がビューワーに返すヘッダーの料金のみが課金されます。HTTPS リクエストの場合、リクエストの料金と、オリジンが返すヘッダーとオブジェクトの料金が課金されます。  
**HTTPS のみ**  
ビューワーは、HTTPS を使用している場合にのみ、コンテンツにアクセスできます。ビューワーが HTTPS リクエストではなく HTTP リクエストを送信した場合、CloudFront は HTTP ステータスコード 403 (Forbidden) を返し、オブジェクトは返しません。

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

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

1. 本番環境で更新された情報を使用する前に、次を確認してください。
   + ビューワーに HTTPS の使用が必要とされるリクエストにのみ、各キャッシュ動作のパスパターンが適用されている。
   + CloudFront が評価する順番にキャッシュ動作がリストされている。詳細については、「[パスパターン](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern)」を参照してください。
   + キャッシュ動作は、リクエストを正しいオリジンにルーティングします。