【アップデート】Cloud ArmorのMatch Condition BuilderがPreviewとして利用可能になりました

【アップデート】Cloud ArmorのMatch Condition BuilderがPreviewとして利用可能になりました

2026.04.06

はじめに

こんにちは。
クラウド事業本部コンサルティング部の渡邉です。

2026年3月31日、Google Cloud ArmorのMatch Condition BuilderがPreviewとして利用可能になりました。現状、英語版の公式ドキュメントにしか本機能の記載がありませんでしたので、公式ドキュメントを確認する際はご注意ください。

https://cloud.google.com/armor/docs/release-notes#March_31_2026

https://docs.cloud.google.com/armor/docs/configure-security-policies#mcb

Match Condition BuilderはCloud ArmorのセキュリティポリシールールにおけるCEL(Common Expression Language)式を、コードを直接書かずにビジュアルで作成できるコンソール上のインターフェースです。

今回は、Cloud Armorのセキュリティポリシールールの仕組みを振り返りつつ、Match Condition Builderで実際にルールを設定してみたいと思います。

Cloud Armorのセキュリティポリシールールとマッチ条件

Cloud Armorのセキュリティポリシーは複数のルールで構成されており、各ルールは以下の3要素からなります。

  • Match Condition(マッチ条件): 受信リクエストに対して評価する条件式
  • Action(アクション): 条件にマッチした場合の動作(Allow / Deny / Throttle など)
  • Priority(優先度): 数値が小さいほど優先して評価される(0が最高)

今回のアップデートは、 Match Condition(マッチ条件) についてになります。
マッチ条件には2つのモードがあります。

モード 概要 指定できる条件
Basic mode IPアドレス・CIDRベースのシンプルな条件 最大10個のIP範囲
Advanced mode CEL式を用いた複雑な条件 リクエストの属性を組み合わせた最大5つのサブ式

これまでAdvanced modeでは、CEL式をテキストで直接入力する必要がありました。CELは記法を知らないとルール作成のハードルが高い側面がありました。
筆者もCEL式を作成する際には、よく構文エラーになっていたので生成AIの力利用して構文を作成していました。
今回は、それがビジュアルベースで作成することができるということで、ルール作成のハードルが低くなるといいアップデートかと思います。

Match Condition Builderとは

Match Condition BuilderはAdvanced modeのCEL式をビジュアルに構築できるコンソール機能です。

属性・オペレーション・値を選択していくことで、複雑なCEL式をコードを書かずに作成できるようになりました。これにより、Cloud Armorの担当者がCELの文法を詳しく知らなくても、より精緻なルールを設定しやすくなります。

alt text
Match Condition Builder

従来はMatch condition editorというエディタ画面を利用してCEL式を直接記述する必要がありました。

alt text
Match condition editor

使用できる主な属性

属性 説明
origin.ip クライアントIPアドレス inIpRange(origin.ip, '1.2.3.0/24')
origin.region_code 地域コード(ISO 3166-1 alpha-2) origin.region_code == 'JP'
origin.user_ip カスタムクライアントIPヘッダー inIpRange(origin.user_ip, '1.2.3.0/24')
request.headers 任意のリクエストヘッダー request.headers['user-agent'].contains('bot')
request.path リクエストパス request.path.lower().startsWith('/admin')

使用できる主なオペレーション

オペレーション 説明
inIpRange() IP範囲チェック
.contains() 文字列包含
.matches() 正規表現マッチング
.base64Decode() Base64デコード後にさらに評価
.lower() + .urlDecode() パスの正規化(大文字小文字・エンコード対応)
evaluatePreconfiguredWaf() 事前設定WAFルール(SQLi・XSSなど)の適用

複数の条件は &&(AND)や ||(OR)、!(否定)で組み合わせられます。

Match Condition Builderを使ってみる

ここからは、実際にコンソールでMatch Condition Builderを使ってセキュリティポリシールールを作成する手順を見ていきます。

前提条件

  • Cloud Armor セキュリティポリシーが作成済みであること
  • Cloud Armor APIが有効化されていること

シナリオ

「日本(JP)以外のリージョンからのアクセスで、かつ/adminパスへのリクエストを拒否する」ルールを作成します。

セキュリティポリシーの詳細ページを開く

  1. Google Cloud Consoleで「Cloud Armor」ページに移動

  2. 対象のセキュリティポリシー名をクリック

alt text

  1. 「Rules」タブを選択
  2. 「Add rule」をクリック

alt text

Advanced modeを選択してMatch Condition Builderを起動

  1. モード選択で「Advanced mode」を選択
  2. Match フィールドの下に表示される「Build expression(または Match Condition Builder)」を選択

Match Condition Builderのパネルが表示されます。

alt text

条件を組み立てる

  1. 1つ目の条件として属性に 送信元の地域コード、オペレーションに 等しくない(等しくない)、値に JP を指定
  2. 「Add condition(条件を追加)」をクリック
  3. 2つ目の条件として属性に リクエストパス、オペレーションに で始まる、値に /admin を指定
  4. 変換に小文字に変換URLをデコードを追加
  5. 条件の結合は &&(AND)を選択

ビルダーが自動的に以下のCEL式を生成します。

alt text

origin.region_code != 'JP' && request.path.lower().urlDecode().startsWith('/admin')

アクションと優先度を設定

  1. Action: Deny
  2. Deny status: 403(Forbidden)
  3. Priority: 100(デフォルトルールより高い優先度)
  4. 必要に応じて「Enable preview mode」にチェックを入れて本番影響なしに動作確認
  5. 「Add」をクリック

alt text

Preview modeで動作確認する

本番環境への影響を確認してから有効化したい場合は、ルール設定時に「Enable preview mode」を有効にします。Preview mode では実際にはトラフィックをブロックせず、マッチしたリクエストをCloud Loggingに記録するだけです。

alt text

Cloud Loggingで以下のフィルタを使うことで、ルールにマッチしたリクエストを確認できます。

resource.type="http_load_balancer"
jsonPayload.enforcedSecurityPolicy.outcome="PREVIEW"

問題がなければPreview modeを外して有効化します。

まとめ

今回は、2026年3月31日にPreviewでリリースされたGoogle Cloud ArmorのMatch Condition Builderを実際に使ってみました。

Match Condition Builderにより、CEL式の記法を習得していなくてもCloud ArmorのAdvanced modeルールを設定しやすくなりましたと思います。

Builderが生成したCEL式はそのままgcloud CLIの--expressionフラグに利用できるため、コンソールで試作してCLI・IaCに組み込むというワークフローとも相性が良いと思います。

この記事が誰かの助けになれば幸いです。

以上、クラウド事業本部コンサルティング部の渡邉でした!

この記事をシェアする

関連記事