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

cloudflared Quick Tunnel をメール認証つきで共有する(--allowed-mail)

cloudflared tunnel --url ... で作る使い捨ての Quick Tunnel に --allowed-mail を付けると、指定したメールアドレス(ドメイン)の人だけがワンタイム PIN で入れるようになる。共有する側・見る側どちらも Cloudflare アカウントは不要。

@Cloudflare · 投稿 2026-10-03
#infra#cloudflare#tunnel#zero-trust#security

どんなときに使う?

  • ローカルの開発サーバー、Webhook の受け口、デモを特定の人にだけ見せたい
  • これまでは trycloudflare.com の URL を知っている人なら誰でもアクセスできた。「自分しか使わない前提の甘いサービス」をトンネルで気軽に公開してしまう危険は、X の投稿でも何度も指摘されている(下の「背景」参照)

手順

cloudflared 2026.9.3 以降に更新してから:

bash
# 1人だけ許可
cloudflared tunnel --url http://localhost:8080 --allowed-mail [email protected]

# 複数人(フラグを繰り返す or カンマ区切り)
cloudflared tunnel --url http://localhost:8080 \
  --allowed-mail [email protected] \
  --allowed-mail [email protected]
cloudflared tunnel --url http://localhost:8080 --allowed-mail '[email protected],[email protected]'

# ドメイン単位(シェル展開を防ぐためクォートする)
cloudflared tunnel --url http://localhost:8080 --allowed-mail '*@example.com'

訪問者は URL を開く → メールアドレスを入力 → 届いた PIN を入力、で入れる。

コーディングエージェントに守らせる

Cloudflare のブログでは、AGENTS.md などに次の 1 行を書いておく方法が紹介されている。

When you start a Quick Tunnel, always add --allowed-mail [email protected].

エージェントが指示を守らないこともあるので、cloudflared の出力(メール認証が有効か、ルール数がいくつかを表示する。アドレス自体は出さない)で確認する。

注意点

  • 許可する相手を変えるには cloudflared を止めて新しい Quick Tunnel を作り直す。プロセスを止めると全員のアクセスが終わる。
  • ブラウザでの対話的な認証が前提なので、curl などの非対話クライアントは通れない。
  • Quick Tunnel 自体の制約はそのまま: 稼働保証なし、同時リクエスト 200 まで(超えると 429)、SSE 非対応、毎回ホスト名が変わる。常用や本番には名前付きの Cloudflare Tunnel を使う。
  • --allowed-mail を付け忘れると従来どおり誰でもアクセスできる公開トンネルになる。

背景

出典

X の元の投稿を開く