
【アップデート】Cloud ArmorのMatch Condition BuilderがPreviewとして利用可能になりました
はじめに
こんにちは。
クラウド事業本部コンサルティング部の渡邉です。
2026年3月31日、Google Cloud ArmorのMatch Condition BuilderがPreviewとして利用可能になりました。現状、英語版の公式ドキュメントにしか本機能の記載がありませんでしたので、公式ドキュメントを確認する際はご注意ください。
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の文法を詳しく知らなくても、より精緻なルールを設定しやすくなります。

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

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パスへのリクエストを拒否する」ルールを作成します。
セキュリティポリシーの詳細ページを開く
-
Google Cloud Consoleで「Cloud Armor」ページに移動
-
対象のセキュリティポリシー名をクリック

- 「Rules」タブを選択
- 「Add rule」をクリック

Advanced modeを選択してMatch Condition Builderを起動
- モード選択で「Advanced mode」を選択
- Match フィールドの下に表示される「Build expression(または Match Condition Builder)」を選択
Match Condition Builderのパネルが表示されます。

条件を組み立てる
- 1つ目の条件として属性に
送信元の地域コード、オペレーションに等しくない(等しくない)、値にJPを指定 - 「Add condition(条件を追加)」をクリック
- 2つ目の条件として属性に
リクエストパス、オペレーションにで始まる、値に/adminを指定 - 変換に
小文字に変換とURLをデコードを追加 - 条件の結合は
&&(AND)を選択
ビルダーが自動的に以下のCEL式を生成します。

origin.region_code != 'JP' && request.path.lower().urlDecode().startsWith('/admin')
アクションと優先度を設定
- Action:
Deny - Deny status:
403(Forbidden) - Priority:
100(デフォルトルールより高い優先度) - 必要に応じて「Enable preview mode」にチェックを入れて本番影響なしに動作確認
- 「Add」をクリック

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

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に組み込むというワークフローとも相性が良いと思います。
この記事が誰かの助けになれば幸いです。
以上、クラウド事業本部コンサルティング部の渡邉でした!







