久々の投稿になります、遠藤です。
このページや私が運営している AnveIno技術士事務所 のWebサイトは Cloudflare Pages でホスティングされています。 具体的には、Hugo という静的コンテンツジェネレーターを使ってページを作成しています。 GitLabに原稿をpushするたびに自動でビルドが走り、デプロイが実行されるという大変な優れものです。 しかも、一定以下のトラフィック量なら無料という何ともありがたい大盤振る舞いをしていただいています。
さて、私は今放送大学大学院に進学しているわけですが、研究メモ(いわゆるラボノート)というのをまともにとったことがないなということにいまさら気づきました。 ラボノートは、研究の再現性や正しさを主張する上で必要となる資料です。 ただ、ラボノートのイケてないところは、紙で書くことが多いということです。 コマンドの実行履歴などを手書きに書くのはしんどいですよね。
電子ラボノートというものも巷には出回ってますが、今一つしっくりこない。 そこで、私はブログ形式でラボノートを残すことにしました。
ブログ形式に関する先行文献には、下記の轟先生の文献があります。
アクセス認証の問題
Cloudflare Pages は大変よくできていて、Gitlab/GitHubのリポジトリを指定すると、プッシュしたたびにビルドしてデプロイしてくれる 超有能なシステムなのですが、そのままだと問題があります。 それは、世界中に内容が公開されてしまうということです。
このブログのような公開を前提とした記事では問題がありませんが、今回は研究に関する情報をブログ化します。 ということは、未発表の学術研究データも当然入ってきますから、おいそれと公開するわけにはいきません。 そこでアクセス認証の問題が浮かび上がってきました。
幸い、Cloudflare には Cloudflare Zero Trust というアクセス認証機構があります。 しかもなんと太っ腹なことか、50ユーザーまでは Free プランの範疇で利用可能です! これは利用しない手はないということで、さっそく設定してみました。
Let’s 設定!
(1) まずは Google アカウント認証の設定を行う
まずは、Google認証ができるようにします。 手順は次の通りです。
- Google Cloud Console で適当なプロジェクトを作り、 OAuth同意画面 に行く
- クライアント から クライアント作成 をクリック
- 以下のように設定
- アプリケーションの種類 を ウェブアプリケーション にする
- 名前 は適当に設定する
- 作成 を押す
- クライアントID と クライアントシークレット を控える(ここで控えを取らないと、以降永遠に表示されません!)
- 認証済みのJavaScript生成元 に
https://<your-team-name>.cloudflareaccess.comを入力 - 認証済みのリダイレクトURI に
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callbackを入力
(2) Cloudflare 側の認証の準備を行う
- Zero Trust をクリック→ Accessコントロール をクリック → アプリケーション をクリック
- 少し下にスクロールして、 「IDプロバイダー(IdP)を追加する をクリック
- Google を選択
- アプリID, クライアントシークレット を入力し テスト を実行
- うまくいったら 保存 を押して完了!
## (3) Cloudflare Pages にアクセス認証を適用
- 再び Acessコントロール > アプリケーション をクリック
- アプリケーションを追加する をクリック
- セルフホスト を選択
- アプリケーション名は適当に
- セッション時間は適当に (私は利便性を考えて 1week に設定しました)
- パブリックホスト名にブログのURLを書く (Cloudflare Pages が自動で公開するURLも忘れずに塞ぐ!)
- あとは適当にOKを押す
(4) アクセス対象のユーザーを追加する
- Zero Trust の設定から、 ポリシー へ移動し、 ポリシーを追加する をクリック
- ポリシー名 は適当に入れる
- セレクター は Emails を選択、自分の Gmail アドレスを入れる
- Zero Trust → アプリケーション へ移動し、編集画面に行く
- ポリシー タブから 既存のポリシーを選択 する
- アプリケーションを保存 する
まとめ
若干手間数は多いですが、 Cloudflare Pages 上の Web サイトにアクセス制限を書けることに成功しました。 Googleの認証なので、よほどのことがない限りは安全です。 このような高度な機能を無料で提供して下っている Cloudflare 様には足を向けて寝られませんね。
ということで、Cloudflare Pages にアクセス認証が無事かかりました。 これで安心してインターネットには流せない情報(と言うと語弊がありますが)をバシバシかけるようになりますね!
Happy Researching :-)
※注意※ 当然ですが、Zero Trustの設定が済むまでの間は、コンテンツはインターネットにダダ洩れです。 confidential な情報が書かれていない状態の仮のページみたいなものでアクセス認証が通ることを確認してから、機密情報を書き込みましょう。
また、当然ながら情報漏洩の危険性が微粒子レベルで存在していますので、本当に漏らしたくない情報はローカルで閉じておきましょう。 私の場合は、万が一漏洩してもそこまで影響がないと自分で判断したうえで、それよりも利便性を取るという判断でこうしています。