Cloudflare Agent — Seamless Deployment at Scale

1年前、当社がデスクトップ向けWARPを発売し、誰でもインターネットへの高速でプライベートなオンランプが使用できるようになりました。ビジネスのお客様の場合、ITおよびセキュリティ管理者が同じエージェントを使用して、組織内のデバイスをCloudflare for Teamsに登録することも可能です。いったん登録が完了すると、チームメンバーはインターネットへの加速されたオンランプを使用することができるようになります。また、Cloudflareにより、ネットワークファイアウォール機能からリモートブラウザ分離まで、包括的なセキュリティフィルタリングを使用することもできます。

昨年の発売当初、当社はお客様の組織の保護を迅速に行うために、シンプルな設定オプションのセットで可能な限り幅広いデプロイメントメカニズムに対応しました。また、あらゆる場所からのHTTPとDNSのフィルタリングを使用して、ユーザーとデータの安全を維持できるよう、組織を支援することに重点を置きました。まず、Mac、Windows、iOS、Androidのサポートを開始しました。

この発表以来、何千もの組織がチームメンバーやエンドポイントをセキュリティ保護するためにエージェントをデプロイしています。しかし、製品展開の拡大に喜んでいるお客様がいる一方で、より多くのOSをサポートし、設定をより細かく制御する必要があるとの声も聞かれます。

今日、当社のZero Trustエージェントが、すべての主要なプラットフォームで同等の機能を持つようになったことを発表できることを嬉しく思います。さらに、お客様がトラフィックのルーティング方法を決定するための新しいオプションを制御できるようになったことで、管理者が大規模なデプロイメントを指揮することができます。本日のリリースにより、ITチームが使用している従来のVPNやネットワークセキュリティツールを完全に置き換える準備が整いました。

規模に合わせて構築する

Zero Trustエージェントの最も重要な要素は、プラットフォーム間の信頼性と接続の信頼性の2つです。この規模のソフトウェアを出荷したことがある人なら、すべての主要なオペレーティングシステムでクライアントを維持することは非常に困難な(そしてエラーが起こりやすい)作業であることをご存知でしょう。

プラットフォームの落とし穴を避けるため、エージェントのコアをRustで記述しました。これにより、コードの95%をすべてのデバイスで共有できるようになりました。社内では、この共通のコードを共有デーモン(Windowsメンバーの場合はサービス)と呼んでいます。共通のRustベースの実装により、エンジニアは複数のプラットフォーム間でコードを複製する時間を減らすことができ、また品質改善のほとんどが同時にすべての人に影響を与えることが保証されます。

接続フロントの信頼性については、従来のVPNを利用した経験があれば、エラーが起こりやすく遅いことがお分かりいただけると思います。当社のネットワーク基盤は、BoringTun という当社独自のWireGuardの実装で構築されています。従来の遅いVPNとは異なり、当社はUDPで動作し、今日のユーザーが接続するインターネットインフラストラクチャの幅広いバリエーション(飛行機内、コーヒーショップ、都市部の混雑したネットワークなど)のために最適化されています。BoringTunは、数百万台のコンシューマーデバイスで毎年実証されており、トラフィックが暗号化され、決められたポリシーに対応できるようにします。

信頼性の規模により、現在、当社のエージェントを使用して、以下のオペレーションシステムを完全にサポートするようになりました。

  • Windows 8.1、Windows 10、Windows 11
  • macOS Mojave、Catalina、Big Sur、Monterey
  • M1のサポートを含む
  • ChromeBook(2019年以降製造分)(新規)
  • Linux CentOS 8、RHEL、Ubuntu、Debian(新規)
  • iOS
  • Android

お客様の展開モデルに合わせて構築する

エージェントの導入当初は、Cloudflareネットワークへのすべてのデバイストラフィックを暗号化し、管理者がHTTPおよびDNSポリシーをそのトラフィック周りに構築できるようにすることに重点を置いていました。また、お客様がZero Trustモデルへの移行を進めていることも把握しています。時には、その変化は一歩ずつ行う必要があります。

当社はその時間を使って、お客様が従来のソリューションを置き換えるだけでなく、よりスムーズに移行できるように、ソフトウェアを従来のソリューションと一緒に実行できる機能を構築してきました。

  • ドメインベースのスプリットトンネリング - すべてのトラフィックに対して、セキュリティレイヤーを通した送信をする必要はありません。IPベースの除外はすでに対応していますが、特定のドメインのIPアドレスCIDRを調べさせる代わりに、ドメイン名(たとえば、*.example.comまたはexample.com)でスプリットトンネルルールを作成しやすくなりました。
  • インクルード専用のスプリットトンネル - 当社のエージェントは当初、すべてのデバイストラフィックを暗号化して当社のネットワークに送信することを前提に構築されました。これにより、トラフィックが盗聴されないことを保証し、管理者が可視性を維持できるようにしました。しかし、お客様は、一部のトラフィックのみをCloudflareに送信し、残りをデフォルトで除外したい場合があります。インクルード専用のスプリットトンネリングはまさにそれを実現し、当社のネットワークへのルートを個別に選択することが可能になりました。Cloudflareトンネルリソースに接続するために迅速な従来VPNの代替が必要な場合、または最も機密性の高いインフラストラクチャへのトラフィックがHTTP検査の対象となることを確認したいだけの場合は、インクルード専用のスピリットトンネルルールを使用してください。
  • 改善されたプライベートドメイン - CloudflareのZero Trust製品を既存のサードパーティ製VPNと同時に稼働させることで移行を開始する組織もあります。従来、当社のエージェントは、管理者にフォールバックドメイン名解決を設定させ、特定のユースケースのDNSクエリをVPN経由で送信させることで、この設定に対応していました。しかし、これはグローバルなものであり、クエリが送信される場所を制御することはできませんでした。現在、プライベートドメインに応答すべきDNSサーバーを指定する機能が追加されています。また、今週の初めに説明したように、新しいZero Trustネットワーキング機能と共に使用することが可能です。
  • ポスチャー専用モード(近日公開) - デバイスポスチャーや機能の重要性について以前説明しました。2022年の第1四半期に、エージェントをポスチャー専用モードで実行できる機能を送り出す予定です。つまり、クライアントはDNSリクエストを処理したり、その他のトラフィックを当社に送信したりすることはなくなります。これにより、お客様は、ユーザーのHTTP検査をオンにすることなく、Cloudflare Accessポスチャーポリシーを実装することができます。

シームレスな設定を実現する

エージェントを数万人のユーザーにデプロイすることは、物流上のハードルが高くなります。当社は、お客様のチーム内でシームレスに大規模展開できるようにCloudflare for Teamsエージェントを構築しました。本日の発表では、APIとTerraformベースの制御により、組織全体にエージェントを展開するためのより多くのオプションを提供します。

管理業務を自動化することは、一貫性を保つための最良の方法です。Cloudflareでは、HTTPSリクエストとJSONレスポンスに基づく一連のRESTful APIの上にUIを構築しています。デバイス管理の場合、これらの同じAPIは、APIドキュメントと、さらにTerraformプロバイダーを介してユーザに公開されます。https://dash.teams.cloudflare.com/のWebバージョンで公開されているものはすべて、これらのインターフェースのいずれかを介して利用可能です。

自動化を実現する方法の例として、ドメインベースのスプリットトンネリングを見ていきましょう。参考に、APIドキュメントTerraformの同等のものを次に示します。

example.comのドメインベースのインクルードルールを作成するには、次のようにします。

curl -X PUT "https://api.cloudflare.com/client/v4/accounts/699d98642c564d2e855e9661899b7252/devices/policy/include" \
     -H "X-Auth-Email: [email protected]" \
     -H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
     -H "Content-Type: application/json" \
     --data '[{"host":"*.example","description":"Include all traffic to example.com in the tunnel"}]'

それと同じルールをTerraformで作ると次のようになります。

# Including *.example.com in WARP routes
resource "cloudflare_split_tunnel" "example_split_tunnel_include" {
  account_id = "699d98642c564d2e855e9661899b7252"
  mode       = "include"
  tunnels {
    host        = "*.example.com",
    description = "Include all traffic to example.com in the tunnel"
  }
}

もう1つの一般的なタスクは、登録されたデバイスのレポートを作成することです。Device List APIを使用して、組織に登録されているすべてのWindowsデバイスを一覧表示する方法を次の例で説明します。

curl -X GET "https://api.cloudflare.com/client/v4/accounts/699d98642c564d2e855e9661899b7252/devices?type=windows" \
     --header 'Authorization: Bearer 8M7wS6hCpXVc-DoRnPPY_UCWPgy8aea4Wy6kCe5T' \
     -H "Content-Type: application/json"

そのコマンドを実行すると、次のようなJSONが返されます。

        {
            "created": "2021-12-01T17:14:23.847538Z",
            "device_type": "windows",
            "gateway_device_id": "215f9adc-52ca-11ec-9ece-f240956bdf5f",
            "id": "215f9adc-52ca-11ec-9ece-f240956bdf5f",
            "ip": "150.111.29.1",
            "key": "0mS9vj2gk0KNcXoi50pwfuL49WT0rLGAcX2gVze3ixA=",
            "last_seen": "2021-12-01T17:14:30.110663Z",
            "mac_address": "00:0c:29:6f:11:93",
            "model": "VMware7,1",
            "name": "MYVMWin10",
            "os_version": "10.0.19042",
            "serial_number": "VMware-56",
            "updated": "2021-12-01T17:14:30.110663Z",
            "user": {
                "email": "[email protected]",
                "id": "6a8e079d-8a33-4677-b610-a5e361c0c959"
            },
            "version": "2021.11.278"
        },
        {
            "created": "2021-11-08T23:59:37.621164Z",
            "device_type": "windows",
            "gateway_device_id": "ee02da10-40ef-11ec-bb68-6a56f426bb46",
            "id": "ee02da10-40ef-11ec-bb68-6a56f426bb46",
            "ip": "98.247.211.1",
            "key": "DhUI8nqeVrXL1JFhYbeCFmkeu/XEkkEjVmcZ8UraTDI=",
            "last_seen": "2021-11-08T23:59:37.621164Z",
            "model": "Latitude 7400",
            "name": "CloudBox",
            "os_version": "10.0.19043",
            "serial_number": "7CHR3Z2",
            "updated": "2021-11-23T20:03:12.046067Z",
            "user": {
                "email": "[email protected]",
                "id": "39663a0d-9f7c-4a24-ae7f-f869a8cf07f1"
            },
            "version": "2021.11.34"
        },

誰でも管理できるように構築する

本日のリリースの一環として、ユーザーと一緒にソフトウェアを展開するために使用できる仕組みとして、MDMプロバイダーとのパートナーシップについても発表しました。また、MDMをまだ導入していない組織や、見て分かるユーザーインターフェースを好むデプロイメント管理者がいる組織があることも承知しています。

今後数週間のうちに、ダッシュボードから直接クライアントの動作を管理する機能をベータ版として公開する予定です。これにより、クライアントの新バージョンをプッシュすることなく、クライアントの設定に即座に変更を加えることができるようになります。

次は何を?

来年は、デプロイ後のクライアントのサポート性と柔軟性を実際に倍増させる、楽しみな年になります。当社が最も期待している機能のいくつかを紹介します。

  • ユーザー/グループ別のデバイス設定:クライアント設定(更新を許可された人、スプリットトンネルルールなど)をユーザー別に指定することができるようになります。
  • ポスチャー専用モード:Cloudflare Gatewayの準備がまだできていない場合、追加のCloudflare Accessポスチャー制御を実装することができます。
  • Linux配信の追加サポート:組織の全員を保護することができます。
  • Telemetryと分析:クライアントやCloudflareのネットワークに流れるトラフィックに関連した、組織内のデバイスのパフォーマンスを確認できます。

今すぐ接続する

以下に、すべてのクライアント向けのダウンロードを一覧表示します。

Windows ダウンロードベータ版 ダウンロードリリース
macOS ダウンロードベータ版 ダウンロードリリース
Linux セットアップリポジトリ ダウンロードパッケージ
iOS ダウンロードリリース
Android/Chrome ダウンロードリリース