Amazon CloudWatch によるモニタリング - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

Amazon CloudWatch によるモニタリング

Amazon CloudWatch を使用してウェブリクエストならびにウェブ ACL およびルールをモニタリングすることで、AWS WAF および AWS Shield Advanced から raw データを収集し、リアルタイムに近い読み取り可能なメトリクスに加工することができます。Amazon CloudWatch の統計を使用して、ウェブアプリケーションやサービスの動作状況を把握できます。詳細については、「Amazon CloudWatch ユーザーガイド」の「CloudWatch とは」を参照してください。

注記

CloudWatch メトリクスとアラームは、Firewall Manager に対応していません。

Amazon CloudWatch アラームの作成

アラームの状態が変わったときに Amazon SNS メッセージを送信する Amazon CloudWatch のアラームを作成することができます。アラームは、指定期間にわたって 1 つのメトリクスを監視し、複数期間にわたる指定しきい値との比較結果に基づいて 1 つ以上のアクションを実行します。アクションは、Amazon SNS のトピックまたは Auto Scaling のポリシーに送信される通知です。アラームは、持続している状態変化に対してのみアクションを呼び出します。CloudWatch のアラームは、メトリクスが特定の状態になっただけではアクションを呼び出しません。アクションを呼び出すには、状態が変化して、指定した期間継続している必要があります。

AWS WAF と AWS Shield Advanced のメトリクスとディメンション

メトリクスはまずサービスの名前空間ごとにグループ化され、次に各名前空間内のさまざまなディメンションの組み合わせごとにグループ化されます。

  • AWS WAF 名前空間は AWS/WAFV2 です

  • Shield Advanced の名前空間は AWS/DDoSProtection です

注記

AWS WAF はメトリクスを 1 分に 1 回レポートします。

Shield Advanced は、イベント中 1 分に 1 回メトリクスをレポートし、イベント以外ではその頻度は少なくなります。

次の手順を使用して、AWS WAF と AWS Shield Advanced のメトリクスを表示します。

CloudWatch コンソールを使用してメトリクスを表示するには

  1. AWS Management Console にサインインして、CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. 必要に応じて、AWS リソースの配置先のリージョンに切り替えます。CloudFront の場合、米国東部 (バージニア北部) リージョンを選択する必要があります。

  3. ナビゲーションペインの [Metrics] (メトリクス) で、[All metrics] (すべてのメトリクス) を選択し、[Browse] (参照) タブでサービスを検索します。

AWS CLI を使ってメトリクスを表示するには

  • AWS/WAFV2 の場合、コマンドプロンプトで次のコマンドを使用します。

    aws cloudwatch list-metrics --namespace "AWS/WAFV2"

    Shield Advanced の場合、コマンドプロンプトで次のコマンドを使用します。

    aws cloudwatch list-metrics --namespace "AWS/DDoSProtection"

AWS WAF のメトリクスとディメンション

AWS WAF はメトリクスを 1 分ごとに 1 回レポートします。AWS WAF は、 AWS/WAFV2 名前空間で次のメトリクスとディメンションを提供します。

ウェブ ACL、ルールグループ、およびルールのメトリクス
メトリクス 説明

AllowedRequests

許可されたウェブリクエストの数。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

BlockedRequests

ブロックされたウェブリクエストの数。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

CountedRequests

カウントされたウェブリクエストの数。

レポート条件: ゼロ以外の値がある。

カウントされたウェブリクエストは、少なくとも 1 つのルールに一致するリクエストです。リクエストカウントは、通常、テストに使用されます。

有効な統計: Sum

CaptchaRequests

CAPTCHA コントロールが適用されたウェブリクエストの数。

レポート条件: ゼロ以外の値がある。

CAPTCHA ウェブリクエストは、CAPTCHA アクション設定を持つルールに一致するリクエストです。このメトリクスは、有効な CAPTCHA トークンがあるか否かにかかわらず、一致するすべてのリクエストを記録します。

有効な統計: Sum

RequestsWithValidCaptchaToken

CAPTCHA コントロールが適用され、有効な CAPTCHA トークンを持つウェブリクエストの数。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

PassedRequests

渡されたリクエストの数。これは、ルールグループのルールのいずれとも一致せず、ルールグループ評価を通過するリクエストについてのみ使用されます。

レポート条件: ゼロ以外の値がある。

渡されたリクエストは、ルールグループのいずれのルールにも一致しないリクエストです。

有効な統計: Sum

ウェブ ACL、ルールグループ、およびルールのディメンション
ディメンション 説明

Region

Amazon CloudFront ディストリビューションを除くすべての保護されたリソースタイプで必要です。

Rule

次のいずれかです。

  • Rule のメトリクス名。

  • すべて。これは、WebACL または RuleGroup 内のすべてのルールを表します。

  • Default_Action (WebACL ディメンションと組み合わせた場合のみ)。アクションの許可またはブロックで、どのルールとも一致しないリクエストに割り当てられているアクションを表します。

RuleGroup

RuleGroup のメトリクス名。

WebACL

WebACL のメトリクス名。

注記

1 つのウェブリクエストについて、AWS WAF は最大 100 個のラベルについてのメトリクスを発行します。ウェブ ACL 評価では、100 個を超えるラベルを適用したり、100 個を超えるラベルと照合したりできますが、これらのメトリクスには最初の 100 個のみが反映されます。

ラベルと AWS WAF Bot Control メトリクス
メトリクス 説明

AllowedRequests

許可アクション設定を持つルールによってウェブリクエストに適用されるラベルの数。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

BlockedRequests

ブロックアクション設定を持つルールによってウェブリクエストに適用されるラベルの数。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

CountedRequests

カウントアクション設定を持つルールによってウェブリクエストに適用されるラベルの数。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

CaptchaRequests

CAPTCHA アクション設定を持つルールによってウェブリクエストに適用されるラベルの数。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

ラベルと AWS WAF Bot Control のディメンション
ディメンション 説明

Region

Amazon CloudFront ディストリビューションを除くすべての保護されたリソースタイプで必要です。

WebACL

WebACL のメトリクス名。

RuleGroup

RuleGroup のメトリクス名。メトリクス CountedRequests に使用されます。

LabelNamespace

一致するルールが指定されているウェブ ACL またはルールグループの名前空間プレフィックス。メトリクス AllowedRequests および BlockedRequests に使用されます。

Label

一致ルールによってウェブリクエストに適用されるラベル。メトリクス AllowedRequests および BlockedRequests に使用されます。
無料のボット可視性メトリクス
メトリクス 説明

SampleAllowedRequests

許可アクションを持つサンプリングされたリクエストの割合。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

SampleBlockedRequests

ブロックアクションを持つサンプリングされたリクエストの割合。

レポート条件: ゼロ以外の値がある。

有効な統計: Sum

無料のボット可視性ディメンション
ディメンション 説明

Region

Amazon CloudFront ディストリビューションを除くすべての保護されたリソースタイプで必要です。

WebACL

WebACL のメトリクス名。

BotCategory

ウェブリクエストのラベルに基づく、検出されたボットカテゴリのメトリクス名。

AWS Shield Advanced のメトリクスおよびアラーム

このセクションでは、AWS Shield Advanced で使用できるメトリクスとアラームについて説明します。

AWS Shield Advanced のメトリクス

Shield Advanced は、AWS リソースに関するメトリクスを、進行中のイベントがないときと比較して、DDoS イベント中により頻繁に Amazon CloudWatch にレポートします。Shield Advanced は、イベント中は 1 分ごとに、およびイベント終了直後に 1 回、メトリクスをレポートします。イベントが発生していない間、Shield Advanced は 1 日に 1 回、リソースに割り当てられた時間にメトリクスを報告します。この定期的なレポートにより、メトリクスをアクティブに保ち、カスタム CloudWatch アラームで使用できるようにします。

Shield Advanced は、次のように、米国東部 (バージニア北部) (us-east-1) リージョンのメトリクスをレポートします。

  • グローバルサービスの Amazon CloudFront と Amazon Route 53。

  • 保護グループ 保護グループについては、「AWS Shield Advanced 保護グループ」を参照してください。

検出メトリクス

Shield Advanced は、AWS/DDoSProtection 名前空間で次の検出メトリクスとディメンションを提供します。

検出メトリクス
メトリクス 説明
DDoSDetected 特定の Amazon リソースネーム (ARN) に対して DDoS イベントが進行中かどうかを示します。

このメトリクスは、イベント中はゼロ以外の値を持ちます。

DDoSAttackBitsPerSecond 特定の Amazon リソースネーム (ARN) の DDoS イベント中に認められたビット数。このメトリクスは、ネットワークおよびトランスポートレイヤー (レイヤー 3 およびレイヤー 4) の DDoS イベントにのみ使用できます。

このメトリクスは、イベント中はゼロ以外の値を持ちます。

単位: ビット

DDoSAttackPacketsPerSecond 特定の Amazon リソースネーム (ARN) の DDoS イベント中に認められたパケット数。このメトリクスは、ネットワークおよびトランスポートレイヤー (レイヤー 3 およびレイヤー 4) の DDoS イベントにのみ使用できます。

このメトリクスは、イベント中はゼロ以外の値を持ちます。

単位: パケット

DDoSAttackRequestsPerSecond 特定の Amazon リソースネーム (ARN) の DDoS イベント中に認められたリクエスト数。このメトリクスは、レイヤー 7 の DDoS イベントのみで使用できます。メトリクスは、特に重要なレイヤー 7 イベントのみについて報告されます。

このメトリクスは、イベント中はゼロ以外の値を持ちます。

単位: リクエスト

Shield Advanced は、他のディメンションなしで DDoSDetected メトリクスを投稿します。残りの検出メトリクスには、次のリストから、攻撃のタイプに対応する AttackVector ディメンションが含まれます。

  • ACKFlood

  • ChargenReflection

  • DNSReflection

  • GenericUDPReflection

  • MemcachedReflection

  • MSSQLReflection

  • NetBIOSReflection

  • NTPReflection

  • PortMapper

  • RequestFlood

  • RIPReflection

  • SNMPReflection

  • SSDPReflection

  • SYNFlood

  • UDPFragment

  • UDPTraffic

  • UDPReflection

緩和のメトリクス

Shield Advanced は、AWS/DDoSProtection 名前空間で次の緩和メトリクスとディメンションを提供します。

緩和のメトリクス
メトリクス 説明
VolumePacketsPerSecond 検出されたイベントに対応してデプロイされた緩和策によってドロップされたか、または渡された 1 秒あたりのパケット数。

単位: パケット

緩和のディメンション
ディメンション 説明

ResourceArn

Amazon リソースネーム (ARN)

MitigationAction

適用された緩和策の結果。想定される値は、Pass または Drop です。

上位のコントリビューターのメトリクス

Shield Advanced は、AWS/DDoSProtection 名前空間で次の緩和メトリクスとディメンションを提供します。

上位のコントリビューターのメトリクス
メトリクス 説明
VolumePacketsPerSecond 上位のコントリビューターの 1 秒あたりのパケット数。

単位: パケット

VolumeBitsPerSecond 上位のコントリビューターの 1 秒あたりのビット数。

単位: ビット

Shield Advanced は、イベントのコントリビューターを特徴づけるディメンションの組み合わせによって、上位コントリビューターのメトリクスを投稿します 上位のコントリビューターのあらゆるメトリクスについて、次のいずれかのディメンションの組み合わせを使用できます。

  • ResourceArn, Protocol

  • ResourceArn, Protocol, SourcePort

  • ResourceArn, Protocol, DestinationPort

  • ResourceArn, Protocol, SourceIp

  • ResourceArn, Protocol, SourceAsn

  • ResourceArn, TcpFlags

上位のコントリビューターのディメンション
ディメンション 説明

ResourceArn

Amazon リソースネーム (ARN)。

Protocol

TCP または UDP のいずれかの IP プロトコル名。

SourcePort

ソース TCP または UDP ポート。

DestinationPort

宛先 TCP または UDP ポート。

SourceIp

送信元 IP アドレス。

SourceAsn

ソース Autonomous System number (ASN)。

TcpFlags

ダッシュ - で区切られた TCP パケットに存在するフラグの組み合わせ。モニタリング対象フラグは、ACKFINRSTSYN です。このディメンション値は、常にアルファベット順にソートされて表示されます。例: ACK-FIN-RST-SYNACK-SYNFIN-RST

AWS Shield Advanced アラームの作成

Amazon CloudWatch アラーム用に AWS Shield Advanced メトリクスを使用できます。CloudWatch は、ユーザーが定義したルールに基づいて、通知を送信したり、モニタリングしているリソースに自動的に変更を加えたりします。

CloudWatch アラームの作成に関する手順の詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。CloudWatch コンソールでアラームを作成するときに、Shield Advanced メトリクスを使用するには、[Create an alarm] (アラームを作成) を選択した後、[AWSDDOSProtectionMetrics] を選択します。その後、特定のボリュームのトラフィックに基づいてアラームを作成したり、メトリクスがゼロ以外のときにアラームをトリガーしたりできます。2 つ目のオプションは、Shield Advanced が観察する潜在的な攻撃に対してアラームをトリガーします。

注記

AWSDDOSProtectionMetrics は、Shield Advanced のお客様のみが利用可能です。

詳細については、「Amazon CloudWatch ユーザーガイド」の「CloudWatch とは」を参照してください。

AWS Firewall Manager の通知

AWS Firewall Manager は、メトリクスを記録しないため、Firewall Manager 専用の Amazon CloudWatch アラームを作成することはできません。ただし、可能性のある攻撃のアラートを送信する Amazon SNS 通知を設定することができます。Firewall Manager で Amazon SNS 通知を作成するには、「ステップ 4: Amazon SNS 通知と Amazon CloudWatch アラームを設定する」を参照してください。