シークレット Rotation 手順

各種トークン・API キーの更新手順。定期 rotation(年 1 回 or 漏洩時)。

1Password Service Account Token

OP_SERVICE_ACCOUNT_TOKEN は GitHub Actions・ローカル CLI 双方で使用。

更新手順

  1. 1Password Web → Service Accounts → 対象 SA → 「Generate new token」
  2. ローカル ~/.op/sa_token.txt を新トークンで上書き
  3. GitHub Secrets 更新
    • URL: https://github.com/high-field/parky/settings/secrets/actions
    • シークレット名: OP_SERVICE_ACCOUNT_TOKEN
    • 新トークン値を貼り付け
  4. 動作確認: OP_SERVICE_ACCOUNT_TOKEN=$(cat ~/.op/sa_token.txt) op vault list

Cloudflare API Token

Wrangler / Pages / GitHub Actions が使用。

更新手順

  1. https://dash.cloudflare.com/profile/api-tokens → 該当 token → 「Roll」
  2. 1Password に新 token を保存(レコード上書き、旧 token は履歴で保持)
  3. GitHub Secrets (CLOUDFLARE_API_TOKEN) を新値で上書き
  4. 動作確認: wrangler whoami

Supabase service_role_key / anon_key

更新手順

  1. Supabase Dashboard → Project Settings → API → 「Reset service_role key」
  2. 1Password に新キーを保存
  3. Cloudflare Workers secrets を更新:
    cd parky/api
    wrangler secret put SUPABASE_SERVICE_ROLE_KEY --env dev
    wrangler secret put SUPABASE_SERVICE_ROLE_KEY --env prod
    
  4. 各 Pages プロジェクトの環境変数も更新(Dashboard)
  5. GitHub Secrets 更新
  6. deploy-api-*.yml を手動再実行して反映

Firebase Admin SDK Private Key

FCM 配信で使用(api/ Workers)。

更新手順

  1. Firebase Console → プロジェクト設定 → サービスアカウント → 「新しい秘密鍵の生成」
  2. 1Password に保存
  3. wrangler secret put FIREBASE_ADMIN_PRIVATE_KEY --env <env> で更新

チェックリスト(rotation 共通)

  • 1Password の対応レコードを更新
  • GitHub Secrets を更新
  • Cloudflare Workers / Pages secrets を更新
  • 動作確認(認証が通るか、ヘルスチェック OK か)
  • 旧 token を revoke(新 token で問題ないこと確認後)

TODO:

  • 定期 rotation カレンダー化
  • secrets 一覧の棚卸しドキュメント
↗ Source markdown (secret-rotation.md)