

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

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

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

# AWS WAF Classic が Amazon CloudFront 機能と連携する方法
<a name="classic-cloudfront-features"></a>

**警告**  
AWS WAF Classic は計画的なend-of-lifeプロセスを進めています。リージョン固有のマイルストーンと日付については、 AWS Health ダッシュボードを参照してください。

**注記**  
これは **AWS WAF Classic** ドキュメントです。このバージョンは、2019 年 11 月 AWS WAF より前にルールやウェブ ACLs などのリソースを作成し AWS WAF 、最新バージョンに移行していない場合にのみ使用してください。Web ACL を移行するには、[AWS WAF Classic リソースの への移行 AWS WAF](waf-migrating-from-classic.md) を参照してください。  
**の最新バージョンについては、 AWS WAF**「」を参照してください[AWS WAF](waf-chapter.md)。

ウェブ ACL を作成するときに、 AWS WAF Classic が検査する 1 つ以上の CloudFront ディストリビューションを指定できます。 AWS WAF Classic は、ウェブ ACL で識別した条件に基づいて、それらのディストリビューションのウェブリクエストを許可、ブロック、またはカウントし始めます。CloudFront には、 AWS WAF Classic の機能を強化する機能がいくつか用意されています。この章では、CloudFront と AWS WAF Classic の連携を改善するように CloudFront を設定するいくつかの方法について説明します。

**Topics**
+ [CloudFront カスタムエラーページでの AWS WAF Classic の使用](#classic-cloudfront-features-custom-error-pages)
+ [独自の HTTP サーバーで実行されているアプリケーションに CloudFront で AWS WAF Classic を使用する](#classic-cloudfront-features-your-own-http-server)
+ [CloudFront が応答する HTTP メソッドの選択](#classic-cloudfront-features-allowed-http-methods)

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

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

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

デフォルトメッセージはなく、お客様のウェブサイトの他のページと同じ書式設定のカスタムエラーメッセージを表示することを希望する場合は、カスタムエラーメッセージを含むオブジェクト (HTML ファイルなど) をビューワーに返すように CloudFront を設定できます。

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

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

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

CloudFront で AWS WAF Classic を使用すると、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)」のトピックを参照してください。

## CloudFront が応答する HTTP メソッドの選択
<a name="classic-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 Classic 文字列一致条件を使用して、HTTP メソッドに基づいてリクエストを許可またはブロックすることもできます[文字列一致条件の使用](classic-web-acl-string-conditions.md)。`GET` や など、CloudFront がサポートするメソッドの組み合わせを使用する場合は`HEAD`、他のメソッドを使用するリクエストをブロックするように AWS WAF Classic を設定する必要はありません。`GET`、、 など、CloudFront がサポートしていないメソッドの組み合わせを許可する場合は`POST`、すべてのメソッドに応答するように CloudFront `HEAD`を設定し、 AWS WAF Classic を使用して他のメソッドを使用するリクエストをブロックできます。

が応答するメソッドの選択の詳細については、「*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)」を参照してください。