Skip to content

[security] Cloudflare → Cloud Run 間に Secret Header 検証を実装する #229

Description

@yusuke0610

背景

案 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 が返ること

依存

Metadata

Metadata

Assignees

No one assigned

    Labels

    backendバックエンド

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions