AWS WAF、AWS Firewall Manager、および AWS Shield アドバンスド
開発者ガイド (API バージョン 2015-08-24)

ウェブ ACL のテスト

許可する必要のあるウェブリクエストをブロックするように、またはブロックする必要のあるリクエストを許可するように、誤って AWS WAF を設定しないようにするには、ウェブ ACL をウェブサイトまたはウェブアプリケーションで使用する前に徹底的にテストすることをお勧めします。

ウェブ ACL のルールに一致するウェブリクエストのカウント

ルールをウェブ ACL に追加するときは、AWS WAF で、そのルールのすべての条件に一致するウェブリクエストを許可するか、ブロックするか、カウントするかを指定します。以下の設定から始めることをお勧めします。

  • ウェブリクエストをカウントするようにウェブ ACL のすべてのルールを設定する

  • リクエストを許可するウェブ ACL のデフォルトアクションを設定する

この設定では、AWS WAF は最初のルールの条件に基づいて各ウェブリクエストを検査します。ウェブリクエストがそのルールのすべての条件に一致する場合、AWS WAF はそのルールのカウンターをインクリメントします。その後、AWS WAF は次のルールの条件に基づいてウェブリクエストを検査します。リクエストがそのルールのすべての条件に一致する場合、AWS WAF はそのルールのカウンターをインクリメントします。これは、AWS WAF がすべてのルールの条件に基づいてリクエストを検査するまで続きます。

リクエストをカウントするようにウェブ ACL のすべてのルールを設定し、ウェブ ACL を Amazon API Gateway API、CloudFront ディストリビューション、または Application Load Balancer と関連付けたら、結果のカウントを Amazon CloudWatch グラフで表示できます。ウェブ ACL の各ルールに対して、また、ウェブ ACL 用に API Gateway、CloudFront、または Application Load Balancer が AWS WAF に転送するすべてのリクエストに対して、CloudWatch では以下を行うことができます。

  • 1 時間前または 3 時間前のデータを表示する

  • データポイント間の間隔を変更する

  • CloudWatch がデータに対して実行する計算 (最大、最小、平均、合計など) を変更する

注記

CloudFront を使用した AWS WAF はグローバルサービスであり、メトリクスを使用できるのは、AWS コンソールで [US East (N. Virginia) (米国東部 (バージニア北部))] リージョンを選択した場合のみです。別のリージョンを選択した場合、AWS WAF メトリクスは CloudWatch コンソールに表示されません。

ウェブ ACL でルールのデータを表示するには

  1. AWS マネジメントコンソール にサインインした後、 https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインの [Metrics] で、[WAF] を選択します。

  3. データを表示するウェブ ACL のチェックボックスをオンにします。

  4. 該当する設定を変更します。

    統計

    CloudWatch がデータに対して実行する計算を変更します。

    時間範囲

    前の 1 時間のデータを表示するか、前の 3 時間のデータを表示するかを選択します。

    間隔

    グラフでのデータポイント間の間隔を変更します。

    ルール

    データを表示するルールを選択します。

    次の点に注意してください。

    • ウェブ ACL を API Gateway API、CloudFront ディストリビューション、または Application Load Balancer に関連付けただけの場合は、グラフにデータが表示され、使用可能なメトリクスのリストにウェブ ACL のメトリクスが表示されるまでに数分かかることがあります。

    • 複数の API Gateway API、CloudFront ディストリビューション、または Application Load Balancer をウェブ ACL に関連付ける場合、CloudWatch データには、ウェブ ACL に関連付けられるすべてのディストリビューションに対するすべてのリクエストが含まれます。

    • データポイントの上にマウスカーソルを置くと、詳細情報が表示されます。

    • グラフは自動的には更新されません。表示を更新するには、更新 ( Icon to refresh the CloudWatch graph ) アイコンを選択します。

  5. (オプション) API Gateway、CloudFront または Application Load Balancer が AWS WAF に転送した個々のリクエストに関する詳細情報を表示します。詳細については、「API Gateway、CloudFront、または Application Load Balancer が AWS WAF に転送したウェブリクエストのサンプルの表示」を参照してください。

  6. ルールにより、傍受する必要のないリクエストが傍受されていると判断した場合は、該当する設定を変更します。詳細については、「ウェブアクセスコントロールリスト (ウェブ ACL) の作成と設定」を参照してください。

    すべてのルールにより、正しいリクエストのみが傍受されていることを確認したら、各ルールのアクションを [Allow] または [Block] に変更します。詳細については、「ウェブ ACL の編集」を参照してください。

API Gateway、CloudFront、または Application Load Balancer が AWS WAF に転送したウェブリクエストのサンプルの表示

AWS WAF コンソールでは、API Gateway、CloudFront、または Application Load Balancer が検査のために AWS WAF に転送したリクエストのサンプルを表示できます。サンプリングされたリクエストごとに、発生元の IP アドレスやリクエストに含まれるヘッダーなど、リクエストに関する詳細なデータを表示できます。また、リクエストが一致したルールを表示したり、ルールがリクエストを許可するように設定されているかブロックするように設定されているかを確認したりもできます。

リクエストのサンプルには、各ルールのすべての条件に一致した最大 100 件のリクエストと、デフォルトアクションが適用された別の 100 件のリクエストが含まれます。デフォルトアクションは、すべてのルールのすべての条件に一致しなかったリクエストに適用されます。サンプルのリクエストは、過去 15 分間にコンテンツに対するリクエストを受信したすべての API Gateway API、CloudFront エッジロケーション、または Application Load Balancer からのものです。

API Gateway、CloudFront、または Application Load Balancer が AWS WAF に転送したウェブリクエストのサンプルの表示

  1. AWS マネジメントコンソールにサインインし、AWS WAF コンソール(https://console.aws.amazon.com/wafv2/)を開きます。

  2. ナビゲーションペインで、リクエストを表示するウェブ ACL を選択します。

  3. 右ペインで、[Requests] タブを選択します。

    [Sampled requests] テーブルには、リクエストごとに以下の値が表示されます。

    送信元 IP

    リクエストの発生元の IP アドレス (ビューワーが HTTP プロキシまたは Application Load Balancer を使用してリクエストを送信した場合は、そのプロキシまたは Application Load Balancer の IP アドレス)。

    URI

    URL 内でリソースを識別する部分 (/images/daily-ad.jpg など)。

    Matches rule

    ウェブリクエストがすべての条件に一致したウェブ ACL の最初のルールを識別します。ウェブリクエストがウェブ ACL のすべてのルールのすべての条件に一致しない場合、[Matches rule] の値は [Default] です。

    ウェブリクエストがルールのすべての条件に一致し、そのルールのアクションが [Count (カウント)] である場合、AWS WAF によってウェブ ACL の後続のルールに基づいてウェブリクエストが引き続き検査されます。この場合、ウェブリクエストはサンプリングされたリクエストのリストに 2 回表示されることがあります。1 回は、アクションが [Count] のルールに対応し、もう 1 回は、後続のルールまたはデフォルトアクションに対応します。

    アクション

    対応するルールのアクションが [Allow]、[Block]、[Count] のいずれかであるかを示します。

    時間

    AWS WAF が API Gateway、CloudFront、または Application Load Balancer からリクエストを受信した時間。

  4. リクエストに関する追加情報を表示するには、そのリクエストの IP アドレスの左側にある矢印を選択します。AWS WAF によって以下の情報が表示されます。

    送信元 IP

    テーブルの [Source IP] 列の値と同じ IP アドレス。

    リクエスト送信元の国の 2 文字の国コード。ビューワーが HTTP プロキシまたは Application Load Balancer を使用してリクエストを送信した場合、これは HTTP プロキシまたは Application Load Balancer がある国の 2 文字の国コードです。

    2 文字の国コードと対応する国名のリストについては、Wikipedia の「ISO 3166-1 alpha-2」記事を参照してください。

    方法

    リクエストの HTTP リクエストメソッド: GETHEADOPTIONSPUTPOSTPATCHDELETE

    URI

    テーブルの [URI] 列の値と同じ URI。

    リクエストヘッダー

    リクエストのヘッダーとヘッダー値。

  5. サンプルのリクエストのリストを更新するには、[Get new samples] を選択します。