コンテンツにスキップ

リファレンス

ツール

全ツールが読み取り専用です。health_check を除き、いずれも since_hours (float・既定 26)を受け取ります。

daily_brief(since_hours=26)

朝の点検サマリーを1コールで返します。ルール別 enforce 遮断・自リージョン発の 誤検知レンズ(CLOUDARMOR_HOME_REGION 設定時のみ)・preview 遮断。クエリに失敗した セクションは query failed — <理由> としてその場に表示され、他のセクションは そのまま実行されます。

enforce_denies(since_hours=26)

enforce 遮断をルール優先度別に集計し、多い順に返します。

preview_denies(since_hours=26)

同じ内容を preview(ドライラン)モードのルールについて返します。

home_region_denies(since_hours=26)

送信元 IP が CLOUDARMOR_HOME_REGION に属する enforce 遮断を返します。 known_normal_priorities の優先度は件数として集約・抑制し、それ以外は送信元 IP と リクエスト URL 付きで列挙します(最大40行、超過分は件数表示)。自リージョンが 未設定の場合はエラーではなく、その旨の文を返します。

health_check()

キー構成が常に一定の dict を返します。監視側でキーの有無を分岐する必要がありません。

キー 意味
status healthy(設定+プローブ成功)/degraded(設定は OK・プローブ失敗)/error(設定が使えない)
service 常に cloudarmor-mcp
version パッケージのバージョン
project 解決されたプロジェクト ID、または null
backend_services 解決されたフィルタ一覧
home_region 解決されたリージョンコード、または null
rules_ini 中身のあるルール INI を読み込めた場合に true
probe ok、または失敗理由

環境変数

変数 必須 既定 意味
CLOUDARMOR_PROJECT ロードバランサのログが入る GCP プロジェクト ID
GOOGLE_APPLICATION_CREDENTIALS サービスアカウント鍵のパス(roles/logging.viewer
CLOUDARMOR_BACKEND_SERVICES 全て バックエンドサービス名(カンマ区切り)
CLOUDARMOR_HOME_REGION 無効 誤検知レンズで使う ISO リージョンコード
CLOUDARMOR_RULES_INI なし ルールのラベルと known-normal 優先度
CLOUDARMOR_MAX_ENTRIES 2000 1クエリあたりの取得件数。解釈できない値は既定にフォールバック

CLI

cloudarmor-mcp            # stdio で MCP サーバーとして起動
cloudarmor-mcp --version  # バージョンを表示して終了
cloudarmor-mcp --check    # 設定と API アクセスを確認
cloudarmor-mcp --brief    # daily_brief を標準出力へ

終了コード:

コマンド 0 1 2
--check healthy CLOUDARMOR_PROJECT 未設定 degraded(プローブ失敗)
--brief 全セクションを描画 いずれかのセクションのクエリが失敗

--brief は cron やスモークテストに向いた形です。終了コードが非ゼロかどうかで 「WAF が静かだった」のか「ログを読めなかった」のかを区別できます。テキストの レポートだけでは区別がつきません。

ログフィルタ

参考までに、サーバーが組み立てる Cloud Logging フィルタは次の形です。

resource.type="http_load_balancer"
jsonPayload.enforcedSecurityPolicy.outcome="DENY"
[jsonPayload.securityPolicyRequestData.remoteIpInfo.regionCode="JP"]
[resource.labels.backend_service_name="..." | =("a" OR "b")]
timestamp >= "<RFC3339 UTC>"

preview のクエリでは outcome の行が jsonPayload.previewSecurityPolicy.configuredAction="DENY" に置き換わります。 エントリは新しい順に取得します。