AWS WAF 用の CloudWatch ダッシュボードをセットアップするための CloudFormation テンプレートです。 このテンプレートを使用して一般的にWAFで利用されるメトリクスや CloudWatch logs insights を利用した CloudWatch ダッシュボードを迅速にデプロイできます。 AWS WAF で使用している WAF ルール セットに応じて、メトリクスを追加しカスタマイズできます。
WebACL と CloudWatch Logs をまだ作成していない場合は、こちらの CloudFormation テンプレートを使用して WebACL を作成し、CloudWatch ログを有効にすることができます。
導入するには、下の [Launch Stack] ボタンをクリックするか、テンプレート ファイルをこのリポジトリ (/cloudformation/) からローカル フォルダーにコピーしてから、CloudFormation サービスで AWS コンソールを開き、[Create Stack] をクリックします。 新しいリソースで選択し、[テンプレート ソース] セクションで [テンプレートファイルのアップロード] を選択し、[ファイルの選択] をクリックして、ローカル フォルダーにコピーしたファイルを選択します。
次の画面で、スタックの名前 (ダッシュボード名として使用されます) を設定し、必要なパラメータ(CloudWatch Log の名前、WAF リージョン、および WebACLの名前)を入力します。 次に [次へ] をクリックし、最後の画面で [スタックの作成] をクリックします。
デプロイプロセスが完了すると、URL を介して CloudWatch ダッシュボードにアクセスできます。 これは、AWS CloudFormation の [出力] タブにあります。
ダッシュボード テンプレートは、すぐに使用できる複数のグラフとクエリを提供します
例:
ダッシュボード テンプレートには、次のウィジェットが含まれています
- 許可されたリクエストとブロックされたリクエスト
- カウントされたすべてのリクエスト
- ボットリクエストと非ボットリクエスト (Bot Control ルールグループが必要)
- ボット リクエストの割合 (Bot Control ルールグループが必要)
- 上位の Terminating ルール
- 上位の 国
- 上位の ユーザーエージェント
- 上位の IP アドレス
- 上位の カウントされたURI
- 上位のブロックされた URI
- ブロックされたすべてのリクエストの上位 IP アドレスと URI の組み合わせ (Contributor insightsを使用)
- カウントされたリクエストログ
- ブロックされたリクエストのログ
- Logs Insights クエリ フォーム (カスタム ウィジェットを使用)
ご利用のWAFルールに合わせてカスタマイズしてください
以下のテンプレートは、CloudWatch Logs インサイト クエリの custom widget用の Lambda 関数を作成します
以下のテンプレートは、上位の IP アドレスと URI の組み合わせを取得するための contributor insights rule を作成します
このダッシュボードの費用は、主に次の要因によって変化します
- CloudWatch ログの取り込みサイズ
- CloudWatch Logs ストアのサイズ
- CloudWatch Logs insights クエリの数
- CloudWatch Logs insights のクエリ データ範囲
- Lambda 呼び出し数 (カスタム ウィジェットを使用する場合)
- Contributor Insights ルールと一致したログ イベント (Contributor Insights を使用している場合)
ダッシュボードのコストの見積もりは、CloudWatch pricing page を参照ください。