テック技報最新号へ →
インフラ

Cloudflare Tunnel: URL 正規化を先に有効にしてパス単位のルーティングを確かめる(2027-01-25 から既定でオン)

@CFchangelog · 投稿 2026-10-22
#infra#cloudflare#tunnel#cloudflared#access#rbac

cloudflared 2026.10.0 から、ingress ルールと照合する前に URL を正規化できるようになった。あわせて、特定のトンネルだけ「閲覧 + ログ配信」を許すロールが GA になった。

どんなときに効くか

  • ingress ルールをパス(path:)で分けていて、その一部に「オリジン側で Access の JWT を検証する」設定(access / Access validation)を付けているトンネル
  • 正規化しないと、/admin/../public や %2e%2e のような書き方で、Access 検証付きのルールを避けて別ルールに当たる余地がある。正規化はそれを塞ぐためのもの
  • オリジンに送るパス自体は変わらない(変わるのは「どのルールに当たるか」の判定だけ)

やり方

今は既定でオフ。オンにするにはフラグか環境変数を使う。

bash
# フラグで有効化
cloudflared tunnel --disable-path-normalization=false run <TUNNEL_NAME_OR_UUID>

# もしくは各レプリカに環境変数を入れて再起動
TUNNEL_DISABLE_PATH_NORMALIZATION=false
  1. ステージングのトンネル(または 1 レプリカ)で有効化する
  2. パスで分けているルールごとに、..・//・パーセントエンコードを含む URL を投げて、期待どおりのルール(とサービス)に当たるか確認する
  3. 問題なければ全レプリカに入れる。2027-01-25 以降の新しい cloudflared では既定でオンになるので、それまでに済ませる

Access 検証を使うルールがない構成は影響を受けない。

おまけ: 調査担当にだけ渡せる「Read And Monitor」ロール

「Cloudflare Tunnel - Granular Connector cloudflared Read And Monitor」ロールが GA。指定したトンネルだけについて、ルート(IP・ホスト名)やコネクタのホスト情報の閲覧に加えて、リモートのログ配信(cloudflared のログを手元にストリームする機能)まで許可できる。書き込み権限は付かない。既存の Read ロールにはログ配信が含まれないので、サポートや調査を頼む相手にはこちらを使う。

注意点

  • 既定オン化はリリース単位で入る。cloudflared を自動更新している環境では、2027-01-25 以降のリリースで挙動が変わる前提で検証しておく
  • 正規化の細かいルールは公式の「ingress matching」「Access validation at the origin」のページを確認する

関連

出典

X の元の投稿を開く