Cloudflare Access と WARP でゼロトラストアクセスの端末制限が簡単に実現できるよ❗️
はじめに
今回も Cloudflare(クラウドフレア)に関する情報を紹介していきたいと思います。
今回紹介するのは2021年3月頃に Cloudflare Access (Cloudflare for Teams) に追加されたデバイスのシリアル番号に対する制御ルールです。
Device serial numbers
という形で Device posture
に追加されました。
セキュリティやコンプライアンスの観点からエンタープライズでの利用には、特定のデバイス以外(例えば個人所有のデバイスなど)からのアクセスを制限する要件が出ることがよくあります。Cloudflare Access (Cloudflare for Teams) では、元々 Device posture
という部分で他のMDMなどと連携した形での端末制限を実現することが可能でした。
ただし外部のMDM製品などを利用する前提なので、どうしても設定作業の負荷や既存のMDMの有無、価格面などが課題となることがありました。
このデバイス制限の課題解決として使えそうなのが、WARPクライアントと併用することで使える「デバイスのシリアル番号」による制御ルールです。
デバイスのシリアル番号を使った制御が実装されたことで、外部製品に依存することなくデバイスのアクセス制限が実現できるようになったことは Cloudflare Access の利用促進につながるのではないかなと思います。
イメージはこんな感じですかね。
シリアル番号リストの作成
Cloudflare for Teams のダッシュボード画面から設定をしていきます。
※Cloudflare for Teams 自体の設定方法は割愛させて頂きます。
ダッシュボードにログインできたら「Configuration」から Create manual list
又は Upload CSV
を選んでリストを作成します。
今回は Create manual list
の手順を紹介します。
List name
List types
を入力し、Add entry
にデバイスのシリアル番号を入力して「Add」を選択します。
登録するデバイスの数だけ入力を繰り返します。
※デバイスの数が多い場合は `Upload CSV` がオススメです。なお、登録するシリアル番号はMacなら「このMacについて」で表示されるシリアル番号です。
Windows の場合は Get-CIMInstance win32_bios
などのコマンドで取得できる BIOS にあるシリアル番号の様です。
以下参考
https://community.cloudflare.com/t/device-posture-serial-number-list-help/266427
こんな感じで登録対象のシリアル番号が入力できたら「Save」を選択します。
この状態では保存されていないので「Save」を押し忘れてタブを閉じたりすると全部消えるのでお気をつけ下さい。
なお、リストタイプは現時点で以下の4つが選択可能です。今回は Serial numbers
を使っています。
- URLs
- Hostnames
- Serial numbers
- User Emails
保存するとこんな感じでリストが作成されます。名前やリストの内容は後から編集することも可能です。
※名前を 「PCシリアル番号リスト」から「pc_serial_number」 に変更しています。「My Team > Device」の「Device Posture」に作成したリストの名前で Serial number の属性が増えているはずです。
この作成された Device Posture の属性を使って Cloudflare Access のルールを設定します。
Cloudflare Access のルール設定
「Access > Applications」からデバイスのアクセス制限を設定したいアプリケーションを選択します。
今回は新規にアプリケーション定義を作る手順は割愛します。
設定対象のルールを選択します。
画面の下部にスクロールして「Require」のルールを追加します。
ドロップダウンリストから Device Posture - Serial Number List
と先ほど作成されたDevice Postureの属性を選択します。
画面上部に戻って Save rule
を選択します。
まだ油断してはダメで、今度は Save application
を選択して保存します。
なお、保存する前に Require の設定の数が増えていることを確認しましょう。
これで、このアプリケーションに対するデバイスのアクセス制限が設定できました。
ちなみに Device Posture の設定はアプリケーション単位だけでなく「My Team > Groups」でグループ定義として設定することも可能です。
アクセス制限を設定したサイトへのアクセス
おもむろに制限を設定したサイトへアクセスすると以下のような画面が出るのではないでしょうか?
WARPクライアントが起動していない場合やシリアル番号が登録されていないデバイスからのアクセスだとこのような画面が出るように変わりました。WARP クライアントを起動してみましょう。以下のように青く「Teams」と表示されていれば Cloudflare for Teams の登録ができている状態です。Teams と連携できていない場合は赤文字の「WARP」が表示されているはずです。
WARPの導入と設定方法は割愛させて頂きます。
WARP クライアントを起動した状態で改めて同じサイトへアクセスすると Cloudflare Access のログイン画面が表示される様になるはずです。
表示される画面はログインメソッドの設定によって異なります。
今回は一番基本的な「One-time PIN」という方式です。
ちなみに、IdPとの組み合わせも可能なので設定しているとこんな風にすることも可能です。
メールアドレスを入力して「Send me a code」を選択するとPINコードが送られてくるのでコードを入力して「Sign in」を選択します。
すると正常にサイトが表示されます。
これで、ID(メールアドレス)+ PINコードの二要素認証と特定デバイスからのアクセス制限を実現することが出来ました。ちゃんとWARPクライアントが有効化されています。
シリアル番号を登録していない他のPCやモバイルからでは先程の「Forbidden」のページが表示されています。
最後に
今回は Cloudflare for Teams を使用して、デバイスのシリアル番号を使用した簡単な端末制限方法を紹介させて頂きました。
Cloudflare for Teams の情報やシリアル番号を使う情報は、まだあまり見当たらなかったので参考になる様であれば嬉しいです。
特定端末からのみ厳密にアクセス制限を出来る構成を実現することができる様になったのは、エンタープライズ利用における要件では大きなポイントではないかなと思います。