12
5

Cloudflare PagesとCloudflare Accessで安全にWebサイトを共有する

Last updated at Posted at 2024-09-05

Webサイトを特定の人に向けて共有したい!

  • 自分だけが使えればいい
  • 社内の一部にだけ公開したい

などなど、特定範囲にだけWebサイトを共有するニーズは、常に一定存在していると思います

そんなあなたに!

Cloudflare Pages + Cloudflare Accessという技術スタックがおすすめです

Cloudflare Pages

  • Webアプリケーション(サイト)を専門とするPaaS
  • VercelやNetlify、Amplify Hosting相当のサービス
  • GitHub連携、CLI経由、Zipのアップロードなどデプロイ方法は色々
  • ブランチ単位でデプロイする機能もあるよ!
  • SSRしない限りは完全無料
    • SSRする場合も1000万アクセスぐらいまでは無料(2024/9/5)

Cloudflare Access

  • Cloudflare ZeroTrustの1機能
  • Cloudflareでプロキシしているアプリケーションなどに様々なアクセス制限を追加できる
    • IP制限、メール認証、SAML、OpenIDConnect etc...
  • 50名までは無料!
    • 小規模なチームなら十分

手順

  1. Cloudflare Pagesにデプロイ
  2. Pagesプロジェクトの設定からアクセス制限を有効にする

おわりです!

認証掛けられるとどうなる?

こんな感じ
SAMLのみ有効化しています

cloudflare-access.png

注意点

便利ですが難点か注意点があります

  • Pagesの設定でアクセス制限を有効にしても、本番環境の.pages.devドメインには認証がかかりません

    • 手動で認証対象に本番環境を含める必要があります
    • 初期状態では一番上のワイルドカードサブドメインのみ対象になっているはずです
    • 2番目のサブドメイン指定なしの設定が必要です
      スクリーンショット 2024-03-28 14.46.52.png
  • GitHub連携するといきなりデプロイが始まるので、アクセス制限を掛ける前に公開されてしまう

    • ビルドをわざと失敗させる(ビルドコマンドを適当に設定するなど)など、工夫が必要
  • Zipで公開する場合も空Zipを渡すと言った工夫をしたほうがいいでしょう

認証方法

  • メール認証
    • デフォルトで有効
    • メールを飛ばして認証コードを入力させる方式
    • メールアドレスのドメインを制限できます
      • @dokokanokigyou.co.jpのみするなど
    • ただ、届くまでやたら遅延することがある…
  • SAML、OpenIDConnect
    • 個人的なおすすめ
    • 非常にシームレスに連携可能
    • Cloudflare Access側の追加費用がなく素晴らしい
  • その他
    • IP制限などなど

最初はメール認証で検証し、良さそうならSAML、OpenIDConnectの設定を行うのがおすすめです

AWSのIdentify CenterやCognito、GMOトラスト・ログイン、Auth0など、個人 or 少人数であれば非常に安価でSAML、OpenIDConnetを提供するサービスもあるので、連携しておくと幸せになれます

最後に

  • Cloudflareはいいぞ
  • 設定が容易でかつ、(SAMLやOpenIDConnect提供側が対応していれば)MFAも絡めて認証できるため、非常にセキュアに共有する事ができます
  • 本記事のスコープから外れているため省略しましたが、Cloudflare Pagesも非常に魅力的なサービスです
    • サーバサイドも行けるし、ホスティングの費用がほぼかからない!
12
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
5