Cloudflare Access と WARP でゼロトラストアクセスの端末制限が簡単に実現できるよ❗️


こんにちは。
ソリューションアーキテクトの松田(@MatYoshr)です。

今回も Cloudflare(クラウドフレア)に関する情報を紹介していきたいと思います。
3月の Security Week 、4月の Developer Week と立て続けに色々出てきたので紹介したい話は色々あるのですが・・・

斎藤さんが紹介してくれていた、ゼロトラストネットワークアクセス(ZTNA)を実現する Cloudflare Access (Cloudflare for Teams) と WARP に関連したとある追加機能をご紹介していきたいと思います。

過去記事はコチラです!

www.sbcloud.co.jp

www.sbcloud.co.jp

f:id:sbc_y_matsuda:20210310014026p:plain:w850

Cloudflare is a registered trademark of Cloudflare, Inc.

はじめに

  今回紹介するのは3月頃に Cloudflare Access (Cloudflare for Teams) に追加されたデバイスのシリアル番号に対する制御ルールです。
Device serial numbers という形で Device posture に追加されました。

セキュリティやコンプライアンスの観点からエンタープライズでの利用には、特定のデバイス以外(例えば個人所有のデバイスなど)からのアクセスを制限する要件が出ることがよくあります。Cloudflare Access (Cloudflare for Teams) では、元々 Device posture という部分で他のMDMなどと連携した形での端末制限を実現することが可能でした。
ただし外部のMDM製品などを利用する前提なので、どうしても設定作業の負荷や既存のMDMの有無、価格面などが課題となることがありました。

このデバイス制限の課題解決として使えそうなのが、WARPクライアントと併用することで使える「デバイスのシリアル番号」による制御ルールです。

デバイスのシリアル番号を使った制御が実装されたことで、外部製品に依存することなくデバイスのアクセス制限が実現できるようになったことは Cloudflare Access の利用促進につながるのではないかなと思います。

イメージはこんな感じですかね。

f:id:sbc_y_matsuda:20210513173946p:plain:w850

シリアル番号リストの作成

Cloudflare for Teams のダッシュボード画面から設定をしていきます。
※Cloudflare for Teams 自体の設定方法は割愛させて頂きます。

dash.teams.cloudflare.com

ダッシュボードにログインできたら「Configuration」から Create manual list 又は Upload CSV を選んでリストを作成します。 今回は Create manual list の手順を紹介します。

f:id:sbc_y_matsuda:20210507163517p:plain:w850

List name List types を入力し、Add entry にデバイスのシリアル番号を入力して「Add」を選択します。
今回のキャプチャでは List name を日本語で入力していますが、あとあと動作がおかしくなるので英数字を利用した方が良さそうです。後から 「pc_serial_number」 に変更しました。

登録するデバイスの数だけ入力を繰り返します。
※デバイスの数が多い場合は Upload CSV がオススメです。

f:id:sbc_y_matsuda:20210507165245p:plain:w850

なお、登録するシリアル番号はMacなら「このMacについて」で表示されるシリアル番号です。

f:id:sbc_y_matsuda:20210513104236p:plain:w350

Windows の場合は Get-CIMInstance win32_bios などのコマンドで取得できる BIOS にあるシリアル番号の様です。

以下参考

community.cloudflare.com

こんな感じで登録対象のシリアル番号が入力できたら「Save」を選択します。
この状態では保存されていないので「Save」を押し忘れてタブを閉じたりすると全部消えるのでお気をつけ下さい。

f:id:sbc_y_matsuda:20210507170011p:plain:w850

なお、リストタイプは現時点で以下の4つが選択可能です。今回は Serial numbers を使っています。

  • URLs
  • Hostnames
  • Serial numbers
  • User Emails

f:id:sbc_y_matsuda:20210507164709p:plain:w350

保存するとこんな感じでリストが作成されます。名前やリストの内容は後から編集することも可能です。
※名前を 「PCシリアル番号リスト」から「pc_serial_number」 に変更しています。

f:id:sbc_y_matsuda:20210507221159p:plain:w850

「My Team > Device」の「Device Posture」に作成したリストの名前で Serial number の属性が増えているはずです。 この作成された Device Posture の属性を使って Cloudflare Access のルールを設定します。

f:id:sbc_y_matsuda:20210507221512p:plain:w850

Cloudflare Access のルール設定

「Access > Applications」からデバイスのアクセス制限を設定したいアプリケーションを選択します。
今回は新規にアプリケーション定義を作る手順は割愛します。

f:id:sbc_y_matsuda:20210507222300p:plain:w850

設定対象のルールを選択します。

f:id:sbc_y_matsuda:20210507222728p:plain:w850

画面の下部にスクロールして「Require」のルールを追加します。
ドロップダウンリストから Device Posture - Serial Number List と先ほど作成されたDevice Postureの属性を選択します。

f:id:sbc_y_matsuda:20210507222923p:plain:w850

画面上部に戻って Save rule を選択します。

f:id:sbc_y_matsuda:20210507223314p:plain:w850

まだ油断してはダメで、今度は Save application を選択して保存します。 なお、保存する前に Require の設定の数が増えていることを確認しましょう。

f:id:sbc_y_matsuda:20210507223515p:plain:w850

これで、このアプリケーションに対するデバイスのアクセス制限が設定できました。
ちなみに Device Posture の設定はアプリケーション単位だけでなく「My Team > Groups」でグループ定義として設定することも可能です。

アクセス制限を設定したサイトへのアクセス

おもむろに制限を設定したサイトへアクセスすると以下のような画面が出るのではないでしょうか?
WARPクライアントが起動していない場合シリアル番号が登録されていないデバイスからのアクセスだとこのような画面が出るように変わりました。

f:id:sbc_y_matsuda:20210512231815p:plain:w850

WARP クライアントを起動してみましょう。以下のように青く「Teams」と表示されていれば Cloudflare for Teams の登録ができている状態です。Teams と連携できていない場合は赤文字の「WARP」が表示されているはずです。

WARPの導入と設定方法は割愛させて頂きます。

f:id:sbc_y_matsuda:20210507224627p:plain:w350

WARP クライアントを起動した状態で改めて同じサイトへアクセスすると Cloudflare Access のログイン画面が表示される様になるはずです。
表示される画面はログインメソッドの設定によって異なります。
今回は一番基本的な「One-time PIN」という方式です。

f:id:sbc_y_matsuda:20210512225510p:plain:w850

ちなみに、IdPとの組み合わせも可能なので設定しているとこんな風にすることも可能です。

f:id:sbc_y_matsuda:20210512225942p:plain:w850

メールアドレスを入力して「Send me a code」を選択するとPINコードが送られてくるのでコードを入力して「Sign in」を選択します。

f:id:sbc_y_matsuda:20210512230333p:plain:w850

すると正常にサイトが表示されます。
これで、ID(メールアドレス)+ PINコードの二要素認証と特定デバイスからのアクセス制限を実現することが出来ました。

f:id:sbc_y_matsuda:20210512151056p:plain:w850

ちゃんとWARPクライアントが有効化されています。

f:id:sbc_y_matsuda:20210512232117p:plain:w850

シリアル番号を登録していない他のPCやモバイルからでは先程の「Forbidden」のページが表示されています。

f:id:sbc_y_matsuda:20210513033709p:plain:w850

おわりに

今回は Cloudflare for Teams を使用して、デバイスのシリアル番号を使用した簡単な端末制限方法を紹介させて頂きました。

Cloudflare for Teams の情報やシリアル番号を使う情報は、まだあまり見当たらなかったので参考になる様であれば嬉しいです。

特定端末からのみ厳密にアクセス制限を出来る構成を実現することができる様になったのは、エンタープライズ利用における要件では大きなポイントではないかなと思います。

Cloudflare Pages など他にも面白いものがあるのでそれらにも順次ふれて行きたいと思います。
と言いつつ次は別の話をすると思いますがー

SBクラウドでは Cloudflare の取り扱いもしていますので、お問い合わせやご相談がございましたらお気軽にどうぞ!

Cloudflare関連記事

www.sbcloud.co.jp

www.sbcloud.co.jp

www.sbcloud.co.jp

Author Profile

https://secure.gravatar.com/avatar/b00b5531fbdbc674e9f7c685a1ed32c1?s=800&d=identicon

松田悦洋(@MatYoshr)
SBクラウド株式会社 Alibaba Cloud Solution Architect

Alibaba以外にもAWS、Azure、GCPなどクラウド全般が好きです
  GitHub   Qiita