

**の新しいコンソールエクスペリエンスの紹介 AWS WAF**

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、[「コンソールの使用](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# で CloudFront ディストリビューションを保護するための一般的なユースケース AWS WAF
<a name="cloudfront-waf-use-cases"></a>

以下の AWS WAF 機能は、すべての CloudFront ディストリビューションで同じように機能します。マルチテナントディストリビューションに関する考慮事項は、各機能シナリオの後に一覧表示されます。

## CloudFront カスタムエラーページ AWS WAF での の使用
<a name="cloudfront-features-custom-error-pages"></a>

デフォルトでは、 が指定した条件に基づいてウェブリクエストを AWS WAF ブロックすると、HTTP ステータスコードを CloudFront `403 (Forbidden)`に返し、CloudFront はそのステータスコードをビューワーに返します。ビューワーには、次のような簡潔で特に書式設定されていないデフォルトメッセージが表示されます。

```
Forbidden: You don't have permission to access /myfilename.html on this server.
```

カスタムレスポンスを定義することで、 AWS WAF 保護パック (ウェブ ACL) ルールでこの動作を上書きできます。 AWS WAF ルールを使用したレスポンス動作のカスタマイズの詳細については、「」を参照してください[Block アクションのカスタムレスポンスの送信](customizing-the-response-for-blocked-requests.md)。

**注記**  
 AWS WAF ルールを使用してカスタマイズしたレスポンスは、CloudFront カスタムエラーページで定義したレスポンス仕様よりも優先されます。

場合によってウェブサイトの他の部分と同じフォーマットを使用して、CloudFront を介してカスタムエラーメッセージを表示したい場合は、カスタムエラーメッセージを含むオブジェクト (HTML ファイルなど) をビューワーに返すように CloudFront を設定できます 。

**注記**  
CloudFront は、オリジンによって返される HTTP ステータスコード 403 と、リクエストがブロックされた AWS WAF ときに によって返される HTTP ステータスコード 403 を区別できません。つまり、HTTP ステータスコード 403 のさまざまな原因に基づいて、異なるカスタムエラーページを返すことはできません。

CloudFront カスタムエラーページの詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[カスタムエラーレスポンスの生成](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html)」を参照してください。

### マルチテナントディストリビューションのカスタムエラーページ
<a name="custom-error-pages-template-distributions"></a>

CloudFront マルチテナントディストリビューションでは、次の方法でカスタムエラーページを設定できます。
+ マルチテナントレベル - これらの設定は、マルチテナントディストリビューションテンプレートを使用するすべてのテナントディストリビューションに適用されます。
+  AWS WAF ルール経由 - 保護パック (ウェブ ACLsマルチテナントディストリビューションとテナントレベルのカスタムエラーページの両方よりも優先されます。

## 独自の HTTP サーバーで実行されているアプリケーションに CloudFront AWS WAF で を使用する
<a name="cloudfront-features-your-own-http-server"></a>

CloudFront AWS WAF で を使用すると、Amazon Elastic Compute Cloud (Amazon EC2) で実行されているウェブサーバーでも、プライベートに管理するウェブサーバーでも、任意の HTTP ウェブサーバーで実行されているアプリケーションを保護できます。CloudFront と独自のウェブサーバー間、およびビューワーと CloudFront の間で HTTPS が必須になるように CloudFront を設定することもできます。

**CloudFront と独自のウェブサーバー間での HTTPS の必須化**  
CloudFront と独自のウェブサーバー間で HTTPS を必須にするには、CloudFront カスタムオリジン機能を使用し、特定のオリジンの **[Origin Protocol Policy]** (オリジンプロトコルポリシー) および **[Origin Domain Name]** (オリジンドメイン名) の設定を構成します。CloudFront 設定では、オリジンからオブジェクトをフェッチするとき CloudFront で使用するポートとプロトコルとともに、サーバーの DNS 名を指定できます。また、カスタムオリジンサーバー上の SSL/TLS 証明書が、設定したオリジンドメイン名と一致することを確認する必要もあります。の外部で独自の HTTP ウェブサーバーを使用する場合は AWS、信頼できるサードパーティー認証機関 (CA) によって署名された証明書を使用する必要があります。例えば、Comodo、DigiCert、Symantec などです。CloudFront と独自のウェブサーバー間の通信に HTTPS を要求する方法の詳細については、「Amazon CloudFront デベロッパーガイド」の「[CloudFront とカスタムオリジン間の通信で HTTPS を必須にする](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-cloudfront-to-custom-origin.html)」のトピックを参照してください。

**ビューワーと CloudFront との間での HTTPS の必須化**  
ビューワーと CloudFront の間に HTTPS を要求するために、CloudFront ディストリビューションの 1 つ以上のキャッシュ動作の**ビューワープロトコルポリシー**を変更できます。ビューワーと CloudFront 間での HTTPS の使用の詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[ビューワーと CloudFront 間の通信で HTTPS を必須にする](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html)」のトピックを参照してください。独自の SSL 証明書を使用して、ビューワーが独自のドメイン名を使用して HTTPS 経由で CloudFront ディストリビューションに接続できるようにすることもできます (例: *https://www.mysite.com*)。詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[代替ドメイン名とHTTPS を使用する](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-procedures.html)」のトピックを参照してください。

マルチテナントディストリビューションの場合、HTTP メソッド設定は次の階層に従います。
+ テンプレートレベルの設定は、すべてのテナントディストリビューションで許可されるベースライン HTTP メソッドを定義します。
+ テナントディストリビューションは、これらの設定を次のようにオーバーライドできます。
  + マルチテナントディストリビューションよりも少ないメソッドを許可する ( AWS WAF ルールを使用して追加のメソッドをブロックする)
  + マルチテナントディストリビューションがサポートするように設定されている場合、より多くのメソッドを許可する
+ AWS WAF マルチテナントディストリビューションレベルとテナントレベルの両方の ルールは、CloudFront 設定に関係なく HTTP メソッドをさらに制限できます。

## CloudFront が応答する HTTP メソッドの選択
<a name="cloudfront-features-allowed-http-methods"></a>

Amazon CloudFront のウェブディストリビューションを作成するときは、CloudFront によって処理されてオリジンに転送される HTTP メソッドを選択します。次のオプションから選択できます。
+ **`GET`、`HEAD`** – CloudFront を使用して、オリジンからのオブジェクトの取得またはオブジェクトヘッダーの取得のみを行うことができます。
+ **`GET`、`HEAD`、`OPTIONS`** – CloudFront を使用して、オリジンからのオブジェクトの取得、オブジェクトヘッダーの取得、またはオリジンサーバーがサポートするオプションのリスト取得のみを行うことができます。
+ **`GET`、`HEAD`、`OPTIONS`、`PUT`、`POST`、`PATCH`、`DELETE`** – CloudFront を使用して、オブジェクトの取得、追加、更新、削除、およびオブジェクトヘッダーの取得を行うことができます。また、ウェブフォームからのデータの送信など、その他の `POST` オペレーションも実行できます。

「」で説明されているように、 AWS WAF バイト一致ルールステートメントを使用して、HTTP メソッドに基づいてリクエストを許可またはブロックすることもできます[文字列一致ルールステートメント](waf-rule-statement-type-string-match.md)。`GET` や など、CloudFront がサポートするメソッドの組み合わせを使用する場合は`HEAD`、他のメソッドを使用するリクエストをブロック AWS WAF するように を設定する必要はありません。`GET`、、 など、CloudFront がサポートしていないメソッドの組み合わせを許可する場合は`POST`、すべてのメソッドに応答するように CloudFront `HEAD`を設定し、 を使用して他のメソッドを使用するリクエスト AWS WAF をブロックできます。

が応答するメソッドの選択の詳細については、「*Amazon CloudFront デベロッパーガイド*」で「[ウェブディストリビューションを作成または更新する場合に指定する値](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html)」トピックの「[許可される HTTP メソッド](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesAllowedHTTPMethods)」を参照してください。

**HTTP メソッド設定がマルチテナントディストリビューションで許可されている**  
マルチテナントディストリビューションの場合、マルチテナントディストリビューションレベルで設定された HTTP メソッド設定は、デフォルトですべてのテナントディストリビューションに適用されます。テナントディストリビューションは、必要に応じてこれらの設定をオーバーライドできます。
+ `GET` や など、CloudFront がサポートするメソッドの組み合わせを使用する場合は`HEAD`、他のメソッドを使用するリクエストをブロック AWS WAF するように を設定する必要はありません。
+ `GET`、、 など、CloudFront がデフォルトでサポートしていないメソッドの組み合わせを許可する場合は`POST`、すべてのメソッドに応答するように CloudFront `HEAD`を設定し、 を使用して他のメソッドを使用するリクエスト AWS WAF をブロックできます。

マルチテナントディストリビューションにセキュリティヘッダーを実装する場合は、次の点を考慮してください。
+ テンプレートレベルのセキュリティヘッダーは、すべてのテナントディストリビューションでベースライン保護を提供します
+ テナントディストリビューションは次のことができます。
  + マルチテナントディストリビューションで定義されていない新しいセキュリティヘッダーを追加する
  + テナント固有のヘッダーの値を変更する
  + マルチテナントディストリビューションレベルで設定されたセキュリティヘッダーを削除またはオーバーライドすることはできません
+ すべてのテナントに適用する必要がある重要なセキュリティコントロールには、マルチテナントディストリビューションレベルのヘッダーを使用することを検討してください。

## ログ記録に関する考慮事項
<a name="cloudfront-features-logging"></a>

標準ディストリビューションとマルチテナントディストリビューションの両方が AWS WAF ログ記録をサポートしていますが、ログの構造と管理方法には重要な違いがあります。


**ログ記録の比較**  

| 標準ディストリビューション | マルチテナントディストリビューション | 
| --- | --- | 
| ディストリビューションごとに 1 つのログ設定 | テンプレートとテナントレベルのログ記録オプション | 
| 標準ログフィールド | 追加のテナント識別子フィールド | 
| ディストリビューションごとに 1 つの送信先 | マルチテナントディストリビューションとテナントログに可能な別々の送信先 | 

## その他のリソース
<a name="cloudfront-saas-additional-resources"></a>
+ マルチテナントディストリビューションの詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[ディストリビューションの設定](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html)」を参照してください。
+ CloudFront AWS WAF での の使用の詳細については、*Amazon CloudFront * [デベロッパーガイド」の AWS WAF 「保護](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-awswaf.html)の使用」を参照してください。
+  AWS WAF ログの詳細については、「」を参照してください[保護パック (ウェブ ACL) トラフィックのログフィールド](logging-fields.md)。