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.devproject 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
- Cloudflare Workers & Pages GitHub App を selected repositories で接続する
frt-labs/company-intranetのみを repository access 対象にする- Pages project を作成し、production branch を
mainにする - MkDocs build command と output directory を設定する
- production / custom domain を Access で保護する
*.pages.devproject domain を Access で保護する- preview deployments を Access で保護する
- 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.devdomain is protected by Access- preview deployments are protected by Access
- Include policy is scoped to intended internal users only
- no
EveryoneInclude 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