シークレット Rotation 手順
各種トークン・API キーの更新手順。定期 rotation(年 1 回 or 漏洩時)。
1Password Service Account Token
OP_SERVICE_ACCOUNT_TOKEN は GitHub Actions・ローカル CLI 双方で使用。
更新手順
- 1Password Web → Service Accounts → 対象 SA → 「Generate new token」
- ローカル
~/.op/sa_token.txtを新トークンで上書き - GitHub Secrets 更新
- URL:
https://github.com/high-field/parky/settings/secrets/actions - シークレット名:
OP_SERVICE_ACCOUNT_TOKEN - 新トークン値を貼り付け
- URL:
- 動作確認:
OP_SERVICE_ACCOUNT_TOKEN=$(cat ~/.op/sa_token.txt) op vault list
Cloudflare API Token
Wrangler / Pages / GitHub Actions が使用。
更新手順
- https://dash.cloudflare.com/profile/api-tokens → 該当 token → 「Roll」
- 1Password に新 token を保存(レコード上書き、旧 token は履歴で保持)
- GitHub Secrets (
CLOUDFLARE_API_TOKEN) を新値で上書き - 動作確認:
wrangler whoami
Supabase service_role_key / anon_key
更新手順
- Supabase Dashboard → Project Settings → API → 「Reset service_role key」
- 1Password に新キーを保存
- Cloudflare Workers secrets を更新:
cd parky/api wrangler secret put SUPABASE_SERVICE_ROLE_KEY --env dev wrangler secret put SUPABASE_SERVICE_ROLE_KEY --env prod - 各 Pages プロジェクトの環境変数も更新(Dashboard)
- GitHub Secrets 更新
- deploy-api-*.yml を手動再実行して反映
Firebase Admin SDK Private Key
FCM 配信で使用(api/ Workers)。
更新手順
- Firebase Console → プロジェクト設定 → サービスアカウント → 「新しい秘密鍵の生成」
- 1Password に保存
wrangler secret put FIREBASE_ADMIN_PRIVATE_KEY --env <env>で更新
チェックリスト(rotation 共通)
- 1Password の対応レコードを更新
- GitHub Secrets を更新
- Cloudflare Workers / Pages secrets を更新
- 動作確認(認証が通るか、ヘルスチェック OK か)
- 旧 token を revoke(新 token で問題ないこと確認後)
TODO:
- 定期 rotation カレンダー化
- secrets 一覧の棚卸しドキュメント