CDN

無料で使えるCloudflare Zero Trustでノープログラムでアクセス制限を実装する

無料で使えるCloudflare Zero Trustを使うと、プログラムコードを一切書かずに、簡単にサイトにアクセス制限を実装できます。

Cloudflare Zero Trustとは?

「Zero Trust(Zero Trust Security Model)」、ここ数年でよく耳するようになりましたね。簡単にいうと、「ネットワーク上では悪意が常にあるので、全てを疑って(信頼ゼロ)問題ないかを検証する」というポリシーみたいなものです。

Cloudflare Zero Trustはアプリケーションやネットワークのセキュリティ強化のためのプラットフォームです。ユーザー管理やアクセス制限などのZero Trustに必要なインターネットの様々なセキュリティ機能が統合されています。

Cloudflare Zero Trust

Cloudflare Zero Trustは実は管理ユーザーが50人までは無料プランで使うことができます。一部、無料プランで使ええない機能もありますが、基本的なことは出来ます。

今回は、Cloudflare Zero Trustのうち、無料プランでサイトのアクセス制限を使ってみました。

Cloudflare Zero Trustを有効にする

Cloudflare Zero Trustは無料で使えますがデフォルトでは有効になっていないので、まずは、Cloudflare Zero Trustを有効にします。

Cloudflare Zero Trustを有効にする

有効になったらZero Trustのダッシュボードを開けるようになります。

サイトでアクセス制限をする

ここからはCloudflareのダッシュボードでアクセス制限を設定します。

ドメインプロパティのページに入って、左目絵ニューの「Access」をクリック。ここでは、Cloudflare Zero Trustを使った様々なアクセス制限を設定できます。

Accessグループを作る

まずは、アクセスできるユーザーグループを作っていきます。

アクセスグループは、

  1. メールアドレス単位
  2. メールアドレスの後方一致
  3. アクセスグループごと
  4. IPアドレス

などで制限ができます。全員を許可する場合は「Everyone」ですが、あくまで「全員にアクセスするための認証を受ける許可をする」だけで、アクセス制限自体は入るので、世界中にオープンにする場合は後述のポリシーで「スキップ」を選択肢します。

今回は、自社の社員だけ使えるという前提で「メールアドレスの後方一致」で制限します。要は、「自社ドメイン以外のユーザーを信頼しない(Zero Trust)」というわけですね。

Accessポリシーを作る

続いて、どんな条件でアクセスを制限するかを「Accessポリシー」で設定します。ポリシーは、複数設定可能です。

ポリシーの設定方法は、まず下記の条件を設定します。

URLにマッチする条件で、

  1. 許可
  2. 拒否
  3. スキップ
  4. IDなし

がを指定します。先ほど解説したとおり、アクセス制限をしない場合は「許可」ではなく「スキップ」です。

次に、その条件で誰に対してアクションを起こすのかを決めます。先程のアクセスグループでも良いですし、IPアドレスで絞ってもOKです。

例えば、example.comというサイトを運営していたとして、

  1. example.comは公開
  2. corp.example.comは社員のみ

という場合、

  1. example.com: 決定=スキップ
  2. corp.example.com: 決定=許可、包含=Accessグループ(メールアドレスの後方一致)

とすれば、example.comはインターネットに完全公開して、企業データ等を扱うcorp.example.comは、メールアドレスが自社メールアドレスの人だけがアクセスできるようになります。

これだけで厳密なアクセス制限が実装できてしまいました。プログラムの知識も不要で、非常に簡単ですね。

実際にどんな挙動になるのか?

では、先程の設定でどんな挙動になるのかを確認してみます。

まずは、example.comは普通に表示ができることを確認しましょう。間違ってアクセス制限状態になると問題なので、複数環境でテストします。

次に、corp.example.comの方は、アクセスをすると「xxxx..cloudflareaccess.com」というドメインにリダイレクトされログイン画面が表示されます(xxxはCloudflare Zero Trustの初期設定で決めたURL)。

表示されたログイン画面でメールアドレスを入力すると、メールアドレス宛にPINが送信されます。なお、ここで許可していないメールアドレス(今回の場合は@以降の後方一致)にPINコードを送ろうとしても、永遠に届きません。ここでも安全を担保しているわけですね。

PINコードを入力すると普通にアクセスが可能になります。入力後はアクセス制限があることは全く意識しないで閲覧が可能になります。

ちなみに、認証方法は初期状態ではPINを入力する方式ですが、Googleログインなども使えます。Google Workspaceに独自ドメインでアカウントを作っている場合は、

  1. Cloudflare Zero Trustでアクセス制限
  2. Googleアカウントでログイン

というフローも作ることができます。

Googleアカウントはセキュリティが高く、それでいて簡単にログインができるのでユーザービリティを高めることができます。

Zero Trustという観点で見ると、アクセス制限で「社員以外を信頼しない(Zero Trust)」しつつ、Googleアカウントの2段階認証で「アカウントを信頼しない => 自社社員であることを証明させる」というところまで安全性を高めることができます。


価格は記載がある場合を除き、すべて税込みです。

この記事の関連キーワード

CDNの記事