Closed4

Cloudflare Zero TrustでWebサイトのステージング環境へのアクセスを制限する

catnosecatnose

Webサービスのステージング環境をアクセス制限をCloudflare Zero Trustでやってみたところ、とても手軽でちょうど良かった。特に必要な知識はなかったが、今後同じことをやりたくなったときのために設定内容をメモしておく。

やったこと

  • Cloudflare Zero Trustで「特定のメールアドレスの所有者」にだけWebサイトへのアクセスを許可する(ここでは例としてhttps://app.example.com/*へのアクセスを制限する)

前提

  • ドメインをCloudflareで管理しており、DNS設定でプロキシモードが有効になっていること
catnosecatnose

設定その1: ログイン方法を追加しておく

  1. Cloudflareにログインした状態でZero Trustを開く
  2. SettingsAuthenticationLogin methodsOne-time PINを追加しておく
    • 指定したメールアドレスへのワンタイムコードの送信によりログインできるようになる

設定その2: アプリケーションの追加

  1. Zero Trustを開く
  2. ApplicationsAdd an applicationSelf-hostedを選択
  3. Application ConfigurationApplication domainapp.example.comと入力
  4. Identity providersAccept all available identity providersもしくはOne-time PINが選択された状態にする

その他いろいろと設定項目があるので必要に応じて変える。今回はデフォルトの設定値のままにした。

設定その3: ポリシー設定

  1. Policy name:「特定のメアドを持つ人だけ」とかてきとうに設定
  2. Action: Allow
  3. Session duration: 最悪アクセスされても問題ないWebサイトであれば最長(1 month)で選択しても良さそう
  4. Configure rules: Emailsを選択したうえで許可したい自分(たちの)メールアドレスを入力(複数入力可能)

他の設定値は必要に応じていじる。自分はどれもデフォルトのままにした。

動作確認

https://app.example.comにアクセスすると以下のような画面が表示される

Cloudflare Zero Trustのログイン画面

ここで、上記のポリシー設定で指定したメールアドレスを入力すると、そのメールアドレス宛にワンタイムコードが送られる。そのコードを入力すると、Webサイトにアクセスできるようになる。

このスクラップは2023/10/23にクローズされました