## 背景 案 A 構成では Cloud Run の生 URL が外部から直接アクセス可能な状態のまま。 JWT 検証で実害はないが、CF Pages 経由以外のリクエストを 明示的に弾く多層防御として Secret Header パターンを実装する。 ## 対応内容 ### Cloudflare Pages 側 - [ ] rewrite 時に `X-Internal-Secret` ヘッダーを付与する設定を追加 - `_middleware.ts` または wrangler の設定で注入 ### FastAPI 側 - [ ] HTTP Middleware として `verify_internal_secret` を実装 - local 環境はスキップ - dev / stg / prod は Secret Manager から取得した値と照合 - 不一致の場合は 403 を返す - [ ] `INTERNAL_SECRET` を Secret Manager に登録(dev / prod) - [ ] Cloud Run の環境変数に Secret Manager 参照を追加 ### Terraform 対応 - [ ] Secret Manager に `internal-secret` シークレットを追加 - [ ] Cloud Run サービスアカウントに `secretmanager.secretAccessor` を付与 ## 確認事項 - CF Pages 経由のリクエスト → 正常にレスポンス - Cloud Run 生 URL への直接アクセス → 403 が返ること ## 依存 - Issue #1(Cloudflare Pages rewrite 設定)完了後に実施
背景
案 A 構成では Cloud Run の生 URL が外部から直接アクセス可能な状態のまま。
JWT 検証で実害はないが、CF Pages 経由以外のリクエストを
明示的に弾く多層防御として Secret Header パターンを実装する。
対応内容
Cloudflare Pages 側
X-Internal-Secretヘッダーを付与する設定を追加_middleware.tsまたは wrangler の設定で注入FastAPI 側
verify_internal_secretを実装INTERNAL_SECRETを Secret Manager に登録(dev / prod)Terraform 対応
internal-secretシークレットを追加secretmanager.secretAccessorを付与確認事項
依存