AWS WAF クラシックと Amazon CloudFront の機能との連携 - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

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

AWS WAF クラシックと Amazon CloudFront の機能との連携

注記

これは AWS WAF Classic ドキュメントです。2019 年 11 AWS WAF 月以前にルールやウェブ ACL AWS WAF などのリソースを作成していて、まだ最新バージョンに移行していない場合にのみ、このバージョンを使用してください。リソースを移行するには、「AWS WAF クラシックリソースをに移行する AWS WAF」を参照してください。

の最新バージョンについては AWS WAF、を参照してください。 AWS WAF

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

AWS WAF Classic CloudFront とカスタムエラーページとの併用

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

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

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

注記

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

CloudFront カスタムエラーページの詳細については、Amazon CloudFront 開発者ガイドのエラーレスポンスのカスタマイズ」を参照してください。

CloudFront独自の HTTP サーバー上で動作するアプリケーションに AWS WAF Classic with を使用する

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

CloudFront と自分のウェブサーバーとの間で HTTPS を要求する

CloudFront 独自のウェブサーバーとの間で HTTPS を要求するには、 CloudFront カスタムオリジン機能を使用して、特定のオリジンのオリジンプロトコルポリシーとオリジンドメイン名の設定を構成できます。 CloudFront 構成では、 CloudFront オリジンからオブジェクトを取得するときに使用するポートとプロトコルとともに、サーバーの DNS 名を指定できます。また、カスタムオリジンサーバー上の SSL/TLS 証明書が、設定したオリジンドメイン名と一致することを確認する必要もあります。外部で独自の HTTP Web サーバーを使用する場合は AWS、Comodo、 DigiCertまたは Symantec などの信頼できるサードパーティの認証機関 (CA) によって署名された証明書を使用する必要があります。 CloudFrontと独自のウェブサーバー間の通信に HTTPS を要求する方法の詳細については、Amazon CloudFront 開発者ガイドの CloudFront とカスタムオリジン間の通信に HTTPS を要求する」を参照してください。

ビューアーと間の HTTPS の要求 CloudFront

ビューアとの間で HTTPS を要求するには CloudFront、 CloudFrontディストリビューション内の 1 つ以上のキャッシュ動作の Viewer プロトコルポリシーを変更できます。 CloudFront視聴者間でのHTTPSの使用の詳細については CloudFront、 CloudFront Amazon開発者ガイドのトピック視聴者間の通信にHTTPSを要求する」を参照してください。視聴者が独自のドメイン名 (例:https://www.mysite.com) を使用して HTTPS CloudFront 経由でディストリビューションに接続できるように、独自の SSL 証明書を持ち込むこともできます。詳細については、Amazon CloudFront 開発者ガイドのトピック「代替ドメイン名と HTTPS の設定」を参照してください

CloudFrontに応答する HTTP メソッドの選択

Amazon CloudFront ウェブディストリビューションを作成するときは、 CloudFront 処理してオリジンに転送する HTTP メソッドを選択します。次のオプションから選択できます。

  • GET, HEAD — オリジンからのオブジェクトの取得、 CloudFront またはオブジェクトヘッダーの取得にのみ使用できます。

  • GET、HEAD、OPTIONS — オリジンからのオブジェクトの取得、オブジェクトヘッダーの取得、 CloudFront またはオリジンサーバーがサポートするオプションのリストの取得にのみ使用できます。

  • GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE — オブジェクトを取得、追加、更新、削除、およびオブジェクトヘッダーの取得に使用できます CloudFront 。また、ウェブフォームからのデータの送信など、その他の POST 操作も実行できます。

で説明されているように、 AWS WAF クラシック文字列一致条件を使用して HTTP メソッドに基づくリクエストを許可または拒否することもできます文字列一致条件の使用。 CloudFront やなどをサポートするメソッドを組み合わせて使用する場合は、他のメソッドを使用するリクエストをブロックするように AWS WAF Classic を設定する必要はありません。GET HEAD、、など、 CloudFront サポートされていないメソッドの組み合わせを許可したい場合はGETHEAD、 CloudFront すべてのメソッドに応答するように設定し、 AWS WAF クラシックを使用して他のメソッドを使用するリクエストをブロックできます。POST

CloudFront 応答するメソッドの選択の詳細については、Amazon CloudFront 開発者ガイドのウェブディストリビューションを作成または更新するときに指定する値」の「許可される HTTP メソッド」を参照してください。