コンテンツにスキップ

Cloudflare Pages + Access Plan

このページは、Company Intranet の active deployment candidate として Cloudflare Pages + Access を採用する場合の plan を整理するための文書です。

この phase では deployment はまだ有効化しません。
Cloudflare Pages project も Cloudflare Access policy も、この文書では作成しません。

Purpose

Cloudflare Pages + Access を使い、Git を SSOT としたまま private / internal intranet を配信するための実行計画を定義します。

Why This Path Is Active

GitHub Pages + GitHub Actions は候補として残していますが、private Pages access の条件確認が未完了です。

そのため現時点では、Cloudflare Pages + Access を active deployment path として準備します。

Git Integration Plan

Cloudflare Pages は接続した GitHub repository から自動で deploy できます。

この repository では以下を前提にします。

  • source repository は frt-labs/company-intranet
  • production branch は main
  • GitHub App scope はこの repository のみに限定する

Cloudflare の GitHub integration は selected repositories に絞る前提で扱います。
この intranet では organization 全体ではなく、frt-labs/company-intranet のみを許可対象にします。

Access Protection Scope

Cloudflare Pages preview deployments は public by default です。
そのため preview だけ守れば十分、という扱いにはしません。

保護対象は最低でも以下の 3 面です。

  • production / custom domain
  • primary *.pages.dev project domain
  • preview deployments

Access Policy Design

Cloudflare Access policies は Include rule が必須です。
Eligible users を Include で定義した上で、必要に応じて Exclude / Require rules で絞り込みます。

この intranet では以下を基本方針とします。

  • broad Include rules は使わない
  • Everyone は使わない
  • company-managed identity or approved internal users のみを Include する
  • 必要に応じて specific emails, email domain, group, or IdP-backed identity attributes を使う
  • Exclude rules で unintended accounts を除外する
  • Require rules で追加条件を掛ける場合は、必要な最小限に留める

Proposed Rollout Order

  1. Cloudflare Workers & Pages GitHub App を selected repositories で接続する
  2. frt-labs/company-intranet のみを repository access 対象にする
  3. Pages project を作成し、production branch を main にする
  4. MkDocs build command と output directory を設定する
  5. production / custom domain を Access で保護する
  6. *.pages.dev project domain を Access で保護する
  7. preview deployments を Access で保護する
  8. intended internal users only で access verification を行う

Build Assumptions

Current repository assumptions:

  • build command: python3 -m mkdocs build
  • dependency install source: requirements.txt
  • generated site/ output is not committed

If Cloudflare build environment needs explicit commands, keep them aligned with repository-documented usage and avoid hidden dashboard-only assumptions where possible.

Verification Checklist

Before first live deployment, confirm all of the following:

  • GitHub App repository access is limited to frt-labs/company-intranet
  • production branch is main
  • production / custom domain is protected by Access
  • *.pages.dev domain is protected by Access
  • preview deployments are protected by Access
  • Include policy is scoped to intended internal users only
  • no Everyone Include rule is used
  • unintended external users cannot reach any deployment surface

Boundaries

This document does not:

  • create a Cloudflare Pages project
  • configure Cloudflare Access
  • enable GitHub Pages
  • create .github/workflows
  • change repository visibility
  • change repository access permissions