cloudarmor-mcp¶
Google Cloud Armor の WAF ログを点検する MCP サーバーです。ルール別の遮断集計・自リージョン発の誤検知チェック・preview(ドライラン)ルールのレビューを、Cloud Logging から直接読み取ります。
毎日の「WAF は健全か?」の点検のために作りました。daily_brief を1回呼べば、何をブロックしたか・ブロックすべきでない相手をブロックしていないか・preview ルールは昇格できる状態か が一度に分かります。
ツール¶
| ツール | 用途 |
|---|---|
daily_brief |
朝の点検用サマリー1コール。ルール別 enforce 遮断・自リージョン発の誤検知レンズ・preview 遮断 |
enforce_denies |
ルール優先度別の enforce 遮断件数 |
home_region_denies |
送信元 IP が自リージョンに属する enforce 遮断。known-normal に指定していないルールでの遮断は誤検知の候補 |
preview_denies |
preview(ドライラン)遮断件数。静かな preview ルールは enforce への昇格候補 |
health_check |
バージョン・設定の有無・Cloud Logging への最小プローブ |
全ツールが読み取り専用です。Cloud Armor にも Cloud Logging にも書き込みません。認証に使うサービスアカウントの権限も roles/logging.viewer のみです。
設計方針¶
件数を黙って切り捨てない。 各クエリには上限(既定 2000 件)があります。上限に達した場合は正確に見える数字を出さず >= N (capped at N) と表示します。上限に達した件数は下限値であり、それを合計として扱うことが「忙しい日を静かな日と読み違える」原因になります。
組織固有の値をコードに持たない。 プロジェクト・バックエンドサービス・自リージョン・ルール番号はすべて環境変数か任意の INI ファイルから読みます。同じパッケージをそのまま別組織で使えますし、ルール番号をプロンプトに貼り付ける必要もありません。
集計出力にログの中身を載せない。 サマリー系のツールが返すのは優先度と件数だけです。送信元 IP とリクエスト URL は home_region_denies(および daily_brief の対応セクション)にのみ現れます。そこではそれ自体が確認対象だからです。