

# キャッシュ動作の設定
<a name="DownloadDistValuesCacheBehavior"></a>

キャッシュ動作を設定すると、ウェブサイトにあるファイルの特定の URL パスパターンに応じてさまざまな CloudFront 機能を設定できます。たとえば、CloudFront のオリジンサーバーとして使用しているウェブサーバーの `.jpg` ディレクトリ内にあるすべての `images` ファイルに 1 つのキャッシュ動作を適用することができます。キャッシュ動作ごとに構成可能な機能には以下のようなものがあります。
+ パスパターン
+ CloudFront ディストリビューションに対して複数のオリジンを構成した場合、CloudFront でリクエストを転送するオリジン。
+ クエリ文字列をオリジンに転送するかどうか
+ 指定したファイルへのアクセスに署名付き URL を必要とするかどうか
+ これらのファイルへのアクセスに HTTPS を使用するようユーザーに要求するかどうか
+ オリジンがファイルに追加する `Cache-Control` ヘッダーの値に関係なく、これらのファイルを CloudFront キャッシュに保持する最小時間

新しいディストリビューションを作成する場合、デフォルトのキャッシュ動作の設定を指定します。デフォルトのキャッシュ動作では、ディストリビューションの作成時に指定されたオリジンにすべてのリクエストが自動的に転送されます。ディストリビューションを作成した後、追加のキャッシュ動作を作成し、パスパターン (例: `*.jpg`) に一致するオブジェクトのリクエストを受け取ったときに CloudFront がどのように応答するかを定義できます。追加のキャッシュ動作を定義した場合、デフォルトのキャッシュ動作は常に最後に処理されます。他のキャッシュ動作は、CloudFront コンソールに表示された順序で処理されるか、CloudFront API が使用されている場合は、ディストリビューションの `DistributionConfig` エレメントに示された順序で処理されます。詳細については、「[パスパターン](#DownloadDistValuesPathPattern)」を参照してください。

キャッシュ動作を作成するときに、CloudFront がオブジェクトの取得先とするオリジンを 1 つ指定します。結果として、CloudFront がすべてのオリジンからオブジェクトを配信する場合、少なくともオリジンと同じ数のキャッシュ動作 (デフォルトのキャッシュ動作を含む) が必要です。2 つのオリジンとデフォルトのキャッシュ動作のみがある場合、デフォルトのキャッシュ動作によって、CloudFront は 1 つのオリジンからオブジェクトを取得します。その他のオリジンは一切使用されません。

ディストリビューションに対して作成できるキャッシュ動作の現在の最大数、またはクォータの引き上げを要求するキャッシュ動作の最大数については、「[ディストリビューションの一般的なクォータ](cloudfront-limits.md#limits-web-distributions)」を参照してください。

**Topics**
+ [パスパターン](#DownloadDistValuesPathPattern)
+ [オリジンまたはオリジングループ](#DownloadDistValuesTargetOriginId)
+ [ビューワープロトコルポリシー](#DownloadDistValuesViewerProtocolPolicy)
+ [許可される HTTP メソッド](#DownloadDistValuesAllowedHTTPMethods)
+ [フィールドレベル暗号化の設定](#DownloadDistValuesFieldLevelEncryption)
+ [キャッシュされる HTTP メソッド](#DownloadDistValuesCachedHTTPMethods)
+ [HTTP/2 経由で gRPC リクエストを許可する](#enable-grpc-distribution)
+ [選択されたリクエストヘッダーに基づいたキャッシュ](#DownloadDistValuesForwardHeaders)
+ [許可リストヘッダー](#DownloadDistValuesAllowlistHeaders)
+ [オブジェクトキャッシュ](#DownloadDistValuesObjectCaching)
+ [最小 TTL](#DownloadDistValuesMinTTL)
+ [最大 TTL](#DownloadDistValuesMaxTTL)
+ [デフォルト TTL](#DownloadDistValuesDefaultTTL)
+ [cookie の転送](#DownloadDistValuesForwardCookies)
+ [許可リスト Cookie](#DownloadDistValuesAllowlistCookies)
+ [クエリ文字列の転送とキャッシュ](#DownloadDistValuesQueryString)
+ [クエリ文字列の許可リスト](#DownloadDistValuesQueryStringAllowlist)
+ [スムーズストリーミング](#DownloadDistValuesSmoothStreaming)
+ [ビューワーのアクセス制限 (署名付き URL または署名付き cookie の使用)](#DownloadDistValuesRestrictViewerAccess)
+ [信頼された署名者](#DownloadDistValuesTrustedSigners)
+ [AWS アカウント番号](#DownloadDistValuesAWSAccountNumbers)
+ [オブジェクトを自動的に圧縮する](#DownloadDistValuesCompressObjectsAutomatically)
+ [CloudFront イベント](#DownloadDistValuesEventType)
+ [Lambda 関数の ARN](#DownloadDistValuesLambdaFunctionARN)
+ [ボディを含める](#include-body)

## パスパターン
<a name="DownloadDistValuesPathPattern"></a>

パスパターン (例: `images/*.jpg`) は、このキャッシュ動作をどのリクエストに割り当てるかを指定します。CloudFront がエンドユーザーリクエストを受け取ると、リクエストされたパスは、ディストリビューションに含まれるキャッシュ動作の順序でパスパターンと照合されます。最初の一致によって、そのリクエストに適用されるキャッシュ動作が決まります。たとえば、以下の 3 つのパスパターンを持つ 3 つのキャッシュ動作がこの順序で設定されているとします。
+ `images/*.jpg`
+ `images/*`
+ `*.gif`

**注記**  
オプションで、`/images/*.jpg` などのように、パスパターンの先頭にスラッシュ (/) を含めることができます。CloudFront の動作は先頭のスラッシュ (/) の有無で変化しません。パスの先頭に / を指定しなくても、この文字は自動的に暗黙で使用されます。CloudFront は、先頭に / があってもなくても、パスを同じように扱います。例えば、CloudFront は `/*product.jpg` を `*product.jpg` と同じように扱います。

ファイル `images/sample.gif` のリクエストは 1 番目のパスパターンを満たさないため、関連付けられたキャッシュ動作はこのリクエストに適用されません。ファイルは 2 番目のパスパターンを満たします。リクエストは 3 番目のパスパターンにも一致しますが、2 番目のパスパターンに関連付けられたキャッシュ動作が適用されます。

**注記**  
新しいディストリビューションを作成すると、デフォルトのキャッシュ動作の [**Path Pattern (パスパターン)**] の値は **\$1** (すべてのファイル) に設定され、この値は変更できません。この値によって、CloudFront は、オブジェクトに対するすべてのリクエストを、[オリジンドメイン](DownloadDistValuesOrigin.md#DownloadDistValuesDomainName) フィールドに指定されたオリジンに転送します。オブジェクトのリクエストが、他のどのキャッシュ動作のパスパターンにも一致しない場合、CloudFront は、デフォルトのキャッシュ動作に指定された動作を適用します。

**重要**  
パスパターンとその順序を慎重に定義します。適切に定義されていない場合、コンテンツへの意図されないアクセスがユーザーに与えられる場合があります。たとえば、リクエストが、2 つのキャッシュ動作のパスパターンに一致したと仮定します。最初のキャッシュ動作は署名付き URL を要求しませんが、2 番目のキャッシュ動作は署名付き URL を要求します。ユーザーは署名付き URL を使用せずにオブジェクトにアクセスできます。これは、CloudFront が、最初の一致に関連付けられたキャッシュ動作を処理するためです。

MediaPackage チャネルを使用する場合は、オリジンのエンドポイントタイプに対して定義するキャッシュ動作に特定のパスパターンを含める必要があります。たとえば、DASH エンドポイントの場合は、[**Path Pattern (パスパターン)**] に「`*.mpd`」と入力します。詳細と具体的な手順については、「[AWS Elemental MediaPackage でフォーマットされたライブ動画を配信する](live-streaming.md#live-streaming-with-mediapackage)」を参照してください。

指定されたパスは、指定されたディレクトリ内のあらゆるファイル、および指定されたディレクトリ以下のサブディレクトリ内のあらゆるファイルのリクエストに適用されます。CloudFront はパスパターンを評価する際にクエリ文字列や Cookie を考慮しません。たとえば、`images` ディレクトリに `product1` および `product2` サブディレクトリが含まれる場合、パスパターン `images/*.jpg` は、`images`、`images/product1`、および `images/product2` ディレクトリ内のあらゆる .jpg ファイルのリクエストに適用されます。異なるキャッシュ動作を、`images/product1` および `images` ディレクトリのファイルではなく `images/product2` ディレクトリのファイルに割り当てる場合、`images/product1` 用の独立したキャッシュ動作を作成し、そのキャッシュ動作を `images` ディレクトリ用のキャッシュ動作の上 (前) の位置に移動します。

パスパターンには、以下のワイルドカード文字を使用できます。
+ `*` は、0 個以上の文字に一致します。
+ `?` は、正確に 1 個の文字に一致します。

以下の例を使用して、ワイルドカード文字がどのように機能するかを示します。


****  

| パスパターン | パスパターンに一致するファイル | 
| --- | --- | 
|  `*.jpg`  |  すべての .jpg ファイル。  | 
|  `images/*.jpg`  |  `images` ディレクトリ内、および `images` ディレクトリ下のサブディレクトリ内のすべての .jpg ファイル。  | 
|  `a*.jpg`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesCacheBehavior.html)  | 
|  `a??.jpg`  |  ファイル名が `a` で始まり、ファイル名の後に正確に他の 2 文字が続くすべての .jpg ファイル (例: `ant.jpg`、`abe.jpg`)。  | 
|  `*.doc*`  |  ファイル名拡張子が `.doc` で始まるすべてのファイル (例: `.doc`、`.docx`、`.docm` ファイル)。この場合、パスパターン `*.doc?` を使用することはできません。このパスパターンは `.doc` ファイルのリクエストに適用されないためです。`?` ワイルドカード文字は正確に 1 個の文字を置き換えるものです。  | 

パスパターンの最大長は 255 文字です。値には以下の文字を含めることができます。
+ A～Z、a～z

  パスパターンでは大文字と小文字が区別されるので、パスパターン `*.jpg` はファイル `LOGO.JPG` には適用されません。
+ 0-9
+ \$1 - . \$1 \$1 / \$1 " ' @ : \$1
+ & (`&amp;` として受け渡しされます)

### パスの正規化
<a name="path-normalization"></a>

CloudFront は [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986#section-6) に従って URI パスを正規化し、そのパスを正しいキャッシュ動作と照合します。キャッシュ動作が一致すると、CloudFront は未加工の URI パスをオリジンに送信します。一致しない場合、リクエストは代わりにデフォルトのキャッシュ動作と照合されます。

複数のスラッシュ (`//`) やピリオド (`..`) など、一部の文字は正規化されてパスから削除されます。これにより、CloudFront が使用する URL が意図したキャッシュ動作に合わせて変更される場合があります。

**Example 例**  
キャッシュビヘイビアの `/a/b*` パスと `/a*` パスを指定します。  
+ `/a/b?c=1` パスを送信するビューワーは、`/a/b*` キャッシュビヘイビアと一致します。
+ `/a/b/..?c=1` パスを送信するビューワーは、`/a*` キャッシュビヘイビアと一致します。

パスの正規化を回避するには、リクエストパスまたはキャッシュ動作のパスパターンを更新できます。

## オリジンまたはオリジングループ
<a name="DownloadDistValuesTargetOriginId"></a>

この設定は、既存のディストリビューションのキャッシュ動作を作成または更新する場合のみ適用されます。

既存のオリジンまたはオリジングループの値を入力します。これは、リクエスト (https://example.com/logo.jpg など) がキャッシュ動作 (\$1.jpg) またはデフォルトキャッシュ動作 (\$1) のパスパターンに一致するときに、CloudFront にリクエストをルーティングさせる宛先となるオリジンまたはオリジングループを識別します。

## ビューワープロトコルポリシー
<a name="DownloadDistValuesViewerProtocolPolicy"></a>

CloudFront エッジロケーションのコンテンツへのアクセスに使用するビューワーのプロトコルポリシーを選択します。
+ [**HTTP and HTTPS (HTTP と HTTPS)**]: ビューワーは両方のプロトコルを使用できます。
+ [**Redirect HTTP to HTTPS (HTTP を HTTPS にリダイレクト)**]: ビューワーは両方のプロトコルを使用できますが、HTTP リクエストは自動的に HTTPS リクエストにリダイレクトされます。
+ [**HTTPS Only (HTTPS のみ)**]: ビューワーは HTTPS を使用している場合にのみコンテンツにアクセスできます。

詳細については、「[ビューワーと CloudFront の間の通信に HTTPS を要求する](using-https-viewers-to-cloudfront.md)」を参照してください。

## 許可される HTTP メソッド
<a name="DownloadDistValuesAllowedHTTPMethods"></a>

CloudFront が処理してオリジンに転送する HTTP メソッドを指定します。
+ [**GET, HEAD**]: CloudFront を使用して、オリジンからのオブジェクトの取得またはオブジェクトヘッダーの取得のみを行うことができます。
+ [**GET, HEAD, OPTIONS**]: CloudFront を使用して、オリジンからのオブジェクトの取得、オブジェクトヘッダーの取得、またはオリジンサーバーがサポートするオプションのリスト取得のみを行うことができます。
+ [**GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE**]: CloudFront を使用して、オブジェクトの取得、追加、更新、削除、およびオブジェクトヘッダーの取得を行うことができます。また、ウェブフォームからのデータの送信など、その他の POST 操作も実行できます。
**注記**  
ワークロードで gRPC を使用している場合は、**GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE** を選択する必要があります。gRPC ワークロードには `POST` メソッドが必要です。詳細については、「[CloudFront ディストリビューションでの gRPC の使用](distribution-using-grpc.md)」を参照してください。  
CloudFront は、`GET` リクエスト、`HEAD` リクエスト、および (オプションで) `OPTIONS` リクエストに対する応答をキャッシュします。`OPTIONS` リクエストへのレスポンスは、`GET` および `HEAD` リクエストへのレスポンスとは別にキャッシュされます (`OPTIONS` メソッドは、`OPTIONS` リクエストの[キャッシュキー](understanding-the-cache-key.md)内にあります)。CloudFront はその他のメソッドを使用するリクエストへのレスポンスをキャッシュしません。

**重要**  
[**GET, HEAD, OPTIONS**] または [**GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE**] を選択した場合は、望ましくない操作がユーザーによって実行されないように、Amazon S3 バケットまたはカスタムオリジンへのアクセスを制限する必要が生じることがあります。以下の例は、アクセスを制限する方法を示しています。  
**ディストリビューションのオリジンとして Amazon S3 を使用している場合:** Amazon S3 コンテンツへのアクセスを制限するための CloudFront オリジンアクセスコントロールを作成し、そのオリジンアクセスコントロールにアクセス許可を付与します。例えば、`PUT` を使用したいという*だけ*の理由で、上記のメソッドを受け入れて転送するように CloudFront を設定する場合は、Amazon S3 バケットのポリシーを `DELETE` リクエストを適切に処理するように引き続き設定する必要があります。詳しくは、「[Amazon S3 オリジンへのアクセスを制限する](private-content-restricting-access-to-s3.md)」を参照してください。
**カスタムオリジンを使用している場合:** すべてのメソッドを処理するようにオリジンサーバーを設定します。たとえば、`POST` を使用したいという*だけ*の理由で、上記のメソッドを受け入れて転送するように CloudFront を構成するという場合は、オリジンサーバーを `DELETE` リクエストを適切に処理するように引き続き構成する必要があります。

## フィールドレベル暗号化の設定
<a name="DownloadDistValuesFieldLevelEncryption"></a>

特定のデータフィールドにフィールドレベル暗号化を適用する場合は、ドロップダウンリストからフィールドレベル暗号化の設定を選択します。

詳細については、「[フィールドレベル暗号化を使用した機密データの保護](field-level-encryption.md)」を参照してください。

## キャッシュされる HTTP メソッド
<a name="DownloadDistValuesCachedHTTPMethods"></a>

ビューワーから `OPTIONS` リクエストが送信されたときに、オリジンからの応答を CloudFront でキャッシュするかどうかを指定します。CloudFront は、`GET` リクエストと `HEAD` リクエストへの応答を常にキャッシュします。

## HTTP/2 経由で gRPC リクエストを許可する
<a name="enable-grpc-distribution"></a>

ディストリビューションで gRPC リクエストを許可するかどうかを指定します。gRPC を有効にするには、以下の設定を選択します。
+ **[[許可された HTTP メソッド]](#DownloadDistValuesAllowedHTTPMethods)** で、**GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE** メソッドを選択します。gRPC には `POST` メソッドが必要です。
+ `POST` メソッドの選択後に表示される gRPC チェックボックスをオンにします。
+ **[[サポートされる HTTP バージョン](DownloadDistValuesGeneral.md#DownloadDistValuesSupportedHTTPVersions)]** で、**[HTTP/2]** を選択します。

詳細については、「[CloudFront ディストリビューションでの gRPC の使用](distribution-using-grpc.md)」を参照してください。

## 選択されたリクエストヘッダーに基づいたキャッシュ
<a name="DownloadDistValuesForwardHeaders"></a>

指定したヘッダーの値に基づいてオブジェクトを CloudFront でキャッシュするかどうかを指定します。
+ [**None (improves caching) (なし (キャッシュを改善))**] – CloudFront はヘッダー値に基づいたオブジェクトのキャッシュを行いません。
+ **[許可リスト]** – CloudFront は、指定されたヘッダー値のみに基づいてオブジェクトをキャッシュします。**[許可リストヘッダー]** を使って、CloudFront がキャッシュ対象とすりするヘッダーを選択します。
+ [**All (すべて)**] – CloudFront は、このキャッシュ動作に関連付けられているオブジェクトをキャッシュしません。その代わりに、CloudFront はすべてのリクエストをオリジンに送信します (Amazon S3 オリジンには推奨されません)。

選択したオプションにかかわらず、CloudFront は特定のヘッダーをオリジンに転送し、転送するヘッダーに基づいて特定のアクションを実行します。CloudFront がヘッダーの転送を処理する方法の詳細については、「[HTTP リクエストヘッダーと CloudFront の動作 (カスタムオリジンおよび Amazon S3 オリジン)](RequestAndResponseBehaviorCustomOrigin.md#request-custom-headers-behavior)」を参照してください。

リクエストヘッダーを使用した CloudFront でのキャッシュの設定方法の詳細については、「[リクエストヘッダーに基づいてコンテンツをキャッシュする](header-caching.md)」を参照してください。

## 許可リストヘッダー
<a name="DownloadDistValuesAllowlistHeaders"></a>

これらの設定は、[**選択されたリクエストヘッダーに基づくキャッシュ**] で [**許可リスト**] を選択した場合にのみ適用されます。

オブジェクトをキャッシュする際に CloudFront が考慮するヘッダーを指定します。使用可能なヘッダーのリストからヘッダーを選択し、[**Add (追加)**] を選択します。カスタムヘッダーを転送するには、フィールドにそのヘッダーの名前を入力して [**Add Custom (カスタムの追加)**] を選択します。

キャッシュ動作ごとに許可リストに追加できるヘッダーの現在の最大数、またはクォータ (以前は制限と呼ばれていました) の引き上げを要求するヘッダーの最大数については、「[ヘッダーのクォータ](cloudfront-limits.md#limits-custom-headers)」を参照してください。

## オブジェクトキャッシュ
<a name="DownloadDistValuesObjectCaching"></a>

オリジンサーバーが `Cache-Control` ヘッダーをオブジェクトに追加して、オブジェクトを CloudFront キャッシュに保持する期間を制御している場合、`Cache-Control` の値を変更しないときは、[**Use Origin Cache Headers (オリジンキャッシュヘッダーの使用)**] を選択します。

`Cache-Control` ヘッダーに関係なくオブジェクトを CloudFront キャッシュに保持する最小および最大期間を指定するには、また、オブジェクトに `Cache-Control` ヘッダーがないときにオブジェクトを CloudFront キャッシュに保持するデフォルトの期間を指定するには、[**Customize (カスタマイズ)**] を選択します。次に、[**Minimum TTL (最小 TTL)**]、[**Default TTL (デフォルト TTL)**]、[**Maximum TTL (最大 TTL)**] の各フィールドで値を指定します。

詳細については、「[コンテンツをキャッシュに保持する期間 (有効期限) を管理する](Expiration.md)」を参照してください。

## 最小 TTL
<a name="DownloadDistValuesMinTTL"></a>

オブジェクトに更新あったかどうかを照会するため、CloudFront が次のリクエストをオリジンに送信するまでの期間、オブジェクトを CloudFront キャッシュに保持しておきたい最小時間 (秒単位) を指定します。

**警告**  
最小 TTL が 0 より大きい場合は、オリジンヘッダーに `Cache-Control: no-cache`、`no-store`、`private` ディレクティブが含まれていても、CloudFront はキャッシュポリシーの最小 TTL で指定された期間以上コンテンツをキャッシュします。

詳細については、「[コンテンツをキャッシュに保持する期間 (有効期限) を管理する](Expiration.md)」を参照してください。

## 最大 TTL
<a name="DownloadDistValuesMaxTTL"></a>

オブジェクトが更新されたかどうかを CloudFront がオリジンに照会するまでに、オブジェクトを CloudFront キャッシュに保持する最大期間 (秒) を指定します。[**Maximum TTL (最大 TTL)**] に指定する値は、オリジンが `Cache-Control max-age`、`Cache-Control s-maxage`、`Expires` などの HTTP ヘッダーをオブジェクトに追加するときにのみ適用されます。詳細については、「[コンテンツをキャッシュに保持する期間 (有効期限) を管理する](Expiration.md)」を参照してください。

[**Maximum TTL (最大 TTL)**] の値を指定するには、[**Object Caching (オブジェクトキャッシュ)**] 設定で [**Customize (カスタマイズ)**] オプションを選択する必要があります。

[**Maximum TTL (最大 TTL)**] のデフォルト値は 31,536,000 (秒)、つまり 1 年です。[**Minimum TTL (最小 TTL)**] または [**Default TTL (デフォルト TTL)**] の値を 31,536,000 (秒) より大きい値に変更する場合は、[**Maximum TTL (最大 TTL)**] のデフォルト値を [**Default TTL (デフォルト TTL)**] の値に変更します。

## デフォルト TTL
<a name="DownloadDistValuesDefaultTTL"></a>

オブジェクトが更新されたかどうかを調べるために CloudFront がオリジンに別のリクエストを送るまでオブジェクトを CloudFront キャッシュに保持するデフォルト期間 (秒) を指定します。**[デフォルト TTL]** に指定する値が適用されるのは、オリジンが `Cache-Control max-age`、`Cache-Control s-maxage`、`Expires` などの HTTP ヘッダーをオブジェクトに追加*しない*場合のみです。詳細については、「[コンテンツをキャッシュに保持する期間 (有効期限) を管理する](Expiration.md)」を参照してください。

[**Default TTL (デフォルト TTL)**] の値を指定するには、[**Object Caching (オブジェクトキャッシュ)**] 設定で [**Customize (カスタマイズ)**] オプションを選択する必要があります。

[**Default TTL (デフォルト TTL)**] のデフォルト値は 86,400 (秒)、つまり 1 日です。[**Minimum TTL (最小 TTL)**] の値を 86,400 (秒) より大きい値に変更する場合は、[**Default TTL (デフォルト TTL)**] のデフォルト値を [**Minimum TTL (最小 TTL)**] の値に変更します。

## cookie の転送
<a name="DownloadDistValuesForwardCookies"></a>

**注記**  
Amazon S3 オリジンの場合、このオプションは、ウェブサイトエンドポイントとして設定されているバケットにのみ適用されます。

CloudFront からオリジンサーバーに Cookie を転送するかどうかと、転送する場合にどれを転送するかを指定します。選択された Cookie (Cookie の許可リスト) のみを転送するように選択した場合、Cookie 名を **[許可リスト Cookie]** フィールドに入力します。[**All (すべて)**] を選択した場合、アプリケーションで使用されている Cookie の数に関係なく、CloudFront はすべての Cookie を転送します。

Amazon S3 は、Cookie を処理しません。オリジンに Cookie を転送すると、キャッシュ能力が低下します。リクエストを Amazon S3 オリジンに転送するキャッシュ動作の場合は、[**Forward Cookies (Cookie の転送)**] で [**None (なし)**] を選択します。

オリジンへの Cookie の転送の詳細については、「[Cookie に基づいてコンテンツをキャッシュする](Cookies.md)」を参照してください。

## 許可リスト Cookie
<a name="DownloadDistValuesAllowlistCookies"></a>

**注記**  
Amazon S3 オリジンの場合、このオプションは、ウェブサイトエンドポイントとして設定されているバケットにのみ適用されます。

**[Cookie を転送する]** リストで **[許可リスト]** を選択した場合は、このキャッシュ動作に応じて CloudFront がオリジンサーバーに転送する Cookie の名前を **[許可リスト Cookie]** フィールドに入力します。各 Cookie 名を新しい行に入力します。

以下のワイルドカード文字を使用して Cookie 名を指定することができます。
+ **\$1** は、Cookie 名に含まれる 0 個以上の文字に一致します。
+ **?** は、Cookie 名に含まれる 1 文字に一致します。

たとえば、オブジェクトに対するビューワーリクエストに、次の名前の Cookie が含まれているとします。

`userid_member-number`

*member-number* は、各ユーザーに割り当てられた一意の値です。各メンバーについて、個別バージョンのオブジェクトを CloudFront でキャッシュするものとします。そのためにすべての Cookie をオリジンに転送することもできますが、ビューワーリクエストには、CloudFront でキャッシュすることが望ましくない Cookie も含まれています。これに代わる方法として、Cookie 名に以下の値を指定できます。その場合、CloudFront は `userid_` から始まるすべての Cookie をオリジンに転送します。

`userid_*`

キャッシュ動作ごとに許可リストに追加できる Cookie 名の現在の最大数、またはクォータの引き上げ (以前は制限と呼ばれていました) を要求する Cookie 名の最大数については、「[Cookie のクォータ (従来のキャッシュ設定)](cloudfront-limits.md#limits-allowlisted-cookies)」を参照してください。

## クエリ文字列の転送とキャッシュ
<a name="DownloadDistValuesQueryString"></a>

CloudFront は、クエリ文字列パラメータの値に基づいて、コンテンツのさまざまなバージョンをキャッシュできます。次のいずれかのオプションを選択します。

**None (Improves Caching)**  
オリジンがクエリ文字列パラメータの値に関係なくオブジェクトの同じバージョンを返す場合、このオプションを選択します。これにより、CloudFront がキャッシュからリクエストを処理できる可能性が高くなり、パフォーマンスが向上し、オリジンの負荷が低下します。

**すべて転送、許可リストに基づいてキャッシュ**  
オリジンサーバーが 1 つ以上のクエリ文字列パラメータに基づいてオブジェクトの異なるバージョンを返す場合、このオプションを選択します。次に、キャッシュ条件として CloudFront が使用するパラメータを [[クエリ文字列の許可リスト](#DownloadDistValuesQueryStringAllowlist)] フィールドに指定します。

**Forward all, cache based on all**  
オリジンサーバーがすべてのクエリ文字列パラメータについてオブジェクトの異なるバージョンを返す場合、このオプションを選択します。

パフォーマンスを向上する方法を含む、クエリ文字列パラメータに基づくキャッシュについて詳しくは、「[クエリ文字列パラメータに基づいてコンテンツをキャッシュする](QueryStringParameters.md)」を参照してください。

## クエリ文字列の許可リスト
<a name="DownloadDistValuesQueryStringAllowlist"></a>

この設定は、[クエリ文字列の転送とキャッシュ](#DownloadDistValuesQueryString) の [**すべて転送、許可リストに基づいてキャッシュ**] を選択した場合にのみ適用されます。CloudFront によってキャッシュの基準として使用されるクエリ文字列パラメータを指定できます。

## スムーズストリーミング
<a name="DownloadDistValuesSmoothStreaming"></a>

Microsoft Smooth Streaming 形式のメディアファイルを配信するが、IIS サーバーがない場合は、[**Yes (はい)**] を選択します。

Microsoft Smooth Streaming 形式のメディアファイルを配信するためのオリジンとして使用する Microsoft IIS サーバーがある場合、または Smooth Streaming メディアファイルを配信しない場合は、[**No (いいえ)**] を選択します。

**注記**  
[**Yes (はい)**] を指定した場合でも、他のコンテンツが [**Path Pattern (パスパターン)**] の値と一致すれば、このキャッシュ動作を使用してそのコンテンツを配信できます。

詳細については、「[Microsoft Smooth Streaming のビデオオンデマンドを設定する](on-demand-video.md#on-demand-streaming-smooth)」を参照してください。

## ビューワーのアクセス制限 (署名付き URL または署名付き cookie の使用)
<a name="DownloadDistValuesRestrictViewerAccess"></a>

このキャッシュ動作の `PathPattern` に一致するオブジェクトのリクエストでパブリック URL を使用する場合、[**No (いいえ)**] を選択します。

このキャッシュ動作の `PathPattern` に一致するオブジェクトのリクエストで署名付き URL を使用する場合、[**Yes (はい)**] を選択します。次に、署名付き URL の作成に使用する AWS アカウントを指定します。これらのアカウントは、信頼された署名者と呼ばれるものです。

信頼された署名者の詳細については、「[署名付き URL と署名付き Cookie を作成できる署名者を指定する](private-content-trusted-signers.md)」を参照してください。

## 信頼された署名者
<a name="DownloadDistValuesTrustedSigners"></a>

この設定は、[**ビューワーのアクセスを制限 (署名付き URL または署名付き Cookie の使用)**] で [**はい**] を選択した場合にのみ適用されます。

このキャッシュ動作の信頼された署名者として使用する AWS アカウントを選択します。
+ **Self:** 信頼された署名者として AWS マネジメントコンソール へのサインインに現在使用しているアカウントを使用します。現在 IAM ユーザーとしてサインインしている場合は、関連付けられた AWS アカウントが信頼された署名者として追加されます。
+ **[アカウントの指定]:** 信頼された署名者のアカウント番号を **[AWS アカウント番号]** フィールドに入力します。

署名付き URL を作成するには、AWS アカウントに少なくとも 1 つのアクティブな CloudFront キーペアが必要です。

**重要**  
コンテンツの配信で既に使用されているディストリビューションを更新する場合は、オブジェクトの署名付き URL の生成を開始する準備ができたときにのみ、信頼された署名者を追加します。信頼された署名者がディストリビューションに追加されると、ユーザーは、このキャッシュ動作の `PathPattern` に一致するオブジェクトへのアクセスに、署名付き URL を使用する必要があります。

## AWS アカウント番号
<a name="DownloadDistValuesAWSAccountNumbers"></a>

この設定は、[**信頼された署名者**] で [**アカウントを指定**] を選択した場合にのみ適用されます。

現在のアカウントに加えて、または現在のアカウントの代わりに、AWS アカウントを使用して署名付き URL を作成する場合、このフィールドの行ごとに 1 つの AWS アカウント番号を入力します。次の点に注意してください。
+ 指定するアカウントに少なくとも 1 つのアクティブな CloudFront キーペアが必要です。詳細については、「[署名者のキーペアを作成する](private-content-trusted-signers.md#private-content-creating-cloudfront-key-pairs)」を参照してください。
+ IAM ユーザーの CloudFront キーペアを作成できないため、信頼された署名者として IAM ユーザーを使用することはできません。
+ アカウントの AWS アカウント 番号を取得する方法については、「AWS アカウント管理リファレンスガイド」の「[AWS アカウント ID を表示する](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html)」を参照してください。**
+ 現在のアカウントのアカウント番号を入力した場合、CloudFront は自動的に **[自己]** のチェックボックスをオンにして、**[AWS アカウント番号]** リストからそのアカウント番号を削除します。

## オブジェクトを自動的に圧縮する
<a name="DownloadDistValuesCompressObjectsAutomatically"></a>

ビューワーが圧縮コンテンツをサポートしている場合に、特定のタイプのファイルを CloudFront で自動的に圧縮するには、[**Yes (はい)**] を選択します。CloudFront がコンテンツを圧縮すると、ファイルが小さくなるため、ダウンロードが速くなります。また、ユーザーに対するウェブページのレンダリングが高速化されます。詳細については、「[圧縮ファイルを供給する](ServingCompressedFiles.md)」を参照してください。

## CloudFront イベント
<a name="DownloadDistValuesEventType"></a>

この設定は、**Lambda 関数の関連付け**に適用されます。

次の CloudFront イベントが 1 つ以上発生したときは、Lambda 関数を実行することを選択できます。
+ CloudFront がビューワーからリクエストを受信したとき (ビューワーリクエスト)
+ CloudFront がリクエストをオリジンに転送する前 (オリジンリクエスト)
+ CloudFront がオリジンからレスポンスを受信したとき (オリジンレスポンス)
+ CloudFront がビューワーにレスポンスを返す前 (ビューワーレスポンス)

詳細については、「[イベントを選択して関数をトリガーする](lambda-how-to-choose-event.md)」を参照してください。

## Lambda 関数の ARN
<a name="DownloadDistValuesLambdaFunctionARN"></a>

この設定は、**Lambda 関数の関連付け**に適用されます。

トリガーを追加する Lambda 関数の Amazon リソースネーム (ARN) を指定します。関数の ARN を取得する方法については、「[CloudFront コンソールを使ってトリガーを追加する](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-add-triggers.html#lambda-edge-add-triggers-cf-console)」の手順のステップ 1 を参照してください。

## ボディを含める
<a name="include-body"></a>

この設定は、**Lambda 関数の関連付け**に適用されます。

詳細については、「[ボディを含める](lambda-generating-http-responses.md#lambda-include-body-access)」を参照してください。