Cloudflare Zero TrustでVPNを使わずに社内サーバーへリモート接続する

リモートワークでの開発は、クラウド上のgitリポジトリで共有されたソースコードをローカルで編集する形が中心になっているケースがほとんどです。この場合、開発者のマシンとリポジトリさえ繋がっていれば成立するため、社内ネットワークへの接続自体は必須ではありません。

一方で、次のような事情から社内マシンへの直接アクセスが避けられない場面も存在します。

  • クラウドでソースコード管理をしていない
  • セキュリティポリシー上、BYOD端末にソースコードを保存・持ち出しできない
  • 実行環境が特殊で、ローカルマシン上に仮想化・再現するのが難しい

こうした場合、社内マシンにVPNやRDPで接続し、リモートマシン上のコードを直接編集する運用が採られることがあります。

VPN・RDPの課題

VPNは接続を確立してしまえば内部ネットワーク全体への経路が開くため、認証情報が漏えいした際の被害範囲が広くなりやすい構成です。近年はVPN機器の脆弱性を突いた侵害事例が繰り返し報告されており、VPNの利用自体を制限・禁止する企業のセキュリティポリシーも見られるようになっています。

RDPについても、ネットワーク越しに画面全体を転送する仕組み上、回線状況によっては入力から描画までの遅延が発生しやすく、コーディングのように細かい操作を継続する用途では快適とは言えない場面があります。

Zero Trustという選択肢

Cloudflare Zero Trustは、社内ネットワーク全体への経路を開くのではなく、あらかじめ許可した宛先・ユーザーの組み合わせだけを通す形で接続を成立させます。VPNのように単一の入口を全信頼するのではなく、接続のたびに認証・認可を評価する点が構成上の大きな違いです。

たとえば、社内に開発用サーバーが1台あり、そこへZero Trust経由で接続する場合を考えてみます。構成要素は次の3つです。

  1. サーバー側にcloudflaredをインストールして、Cloudflareのネットワークとの間にトンネルを張る
  2. Zero Trust管理画面のNetworksで、接続先のプライベートIPをCIDR表記で登録する(例: サーバーのIPが10.0.0.20なら、そのIP1つだけを指す10.0.0.20/32を登録する)
  3. クライアント側にWARP(クライアントアプリ)をインストールして、登録したCIDR宛てのトラフィックをトンネル経由でルーティングする

CIDRの登録範囲は、実際に接続する必要がある最小限の範囲に絞るのが基本です。今回のように接続先がサーバー1台であれば/32でそのIPだけに絞り込み、複数台のセグメントごとまとめて接続させたい場合に初めて/24のようなネットワーク単位のCIDRを検討する、という順番で考えるとよいです。

ここで注意したいのは、cloudflaredは接続したい機器の全台にインストールする必要はないという点です。cloudflaredは「登録したCIDR宛てのトラフィックを受け取り、実際の宛先まで転送するゲートウェイ」として動くため、そのCIDR範囲に対してネットワーク的にルーティングできる場所に1台置いておけば十分です。サーバー自身にcloudflaredを入れて/32で自分自身だけを公開するか、LAN内の踏み台的な1台にcloudflaredを入れて/24でセグメント全体を経路として提供するか、という違いが、そのまま先述した/32/24の使い分けに対応しています。

VS CodeのRemote-SSHで開発する

接続が確立すれば、WARPが動いているクライアント端末からは登録したCIDR内のサーバーにSSHで到達できるようになります。ここまで来れば、VS CodeのRemote-SSH拡張機能から通常のSSH接続と同じ感覚でサーバーに接続し、リモート上のソースコードを直接編集・実行できます。

エディタ側から見るとVPN経由の接続と大きな違いはありませんが、Zero Trust側でユーザー・デバイスごとにアクセス可否を細かく制御できる点、内部ネットワーク全体ではなく登録したCIDRの範囲だけが対象になる点が、VPNに対するメリットとして挙げられます。

なお、同様の接続はZedのようなSSHリモート開発に対応したエディタでも成立すると考えられますが、この記事の検証範囲はVS Code Remote-SSHに限定しています。

料金と導入のしやすさ(2026年9月時点)

Zero Trustはユーザー数に応じた3段階の料金体系になっています。

  • Free: 50ユーザーまで無料。クレジットカード登録も不要で、ZTNA(今回紹介したNetworks経由の接続を含む)やSWGといった主要機能が利用できる
  • Pay as you go: 1ユーザーあたり月額$7、ユーザー数の上限なし
  • Enterprise(Contract): カスタム見積もり。ログ保持期間の延長やLogpush連携など、大規模運用向けの機能が追加される

個人の検証や数名規模のチームであればFreeプランの範囲に収まることがほとんどで、社員数十人規模になっても$7/ユーザー/月という分かりやすい従量課金です。ただし1ユーザーあたり月間15万DNSクエリ程度が目安とされており、DNSクエリ量が非常に多い使い方をすると想定より多くのシート数を要求される場合がある点は留意が必要です(料金体系は変更される可能性があるため、契約前に必ずCloudflareの公式料金ページで最新情報を確認してください)。

構築の手間についても、Zero Trustの管理画面にはセットアップ手順がガイド形式で用意されており、それに沿って進めるだけでcloudflaredのインストールからNetworksの登録まで完了できます。専用のネットワーク機器を用意する必要もないため、VPN機器を新規導入する場合と比べて導入コストはかなり低いと言えそうです。