背景
ローカル開発環境の点検で、Firebase Admin SDK のサービスアカウント鍵が、想定より広く読み取れる状態で保管されていた期間があることが分かりました。
ローカル側の是正(パーミッションの修正、不要なコピーの撤去、Git オブジェクトからの除去)は完了していますが、発行済みの鍵そのものは今も有効です。手元のコピーを消しても、Google Cloud 側で無効化しない限り、その期間に読まれていた場合の対策にはなりません。
本リポジトリは公開のため、対象アカウント・key id・該当期間・保管場所といった識別情報は記載していません。作業時に手元の gcloud で確認してください。ローテーション完了後であれば、経緯を本 issue に追記しても安全です。
やること
差し替えが必要な箇所(3か所・漏れると本番が落ちる)
| # |
対象 |
備考 |
| 1 |
jnavi_web のサーバ側 Firebase Admin 用の環境変数 |
src/lib/server/firebaseAdmin.ts が参照 |
| 2 |
本リポジトリの GOOGLE_APPLICATION_CREDENTIALS が指す鍵ファイル |
ローカル開発で使用 |
| 3 |
Vercel の環境変数(本番) |
Git 連携デプロイのため、ローカルからは未確認 |
手順
gcloud config set project <PROJECT_ID>
# 現行の鍵を確認
gcloud iam service-accounts keys list --iam-account=<SA_EMAIL>
# 新規発行(git 追跡外・パーミッション 0600 の場所へ)
gcloud iam service-accounts keys create <NEW_KEY_PATH> --iam-account=<SA_EMAIL>
chmod 600 <NEW_KEY_PATH>
# ↑ 3か所の差し替えと疎通確認がすべて終わってから実行する
gcloud iam service-accounts keys delete <OLD_KEY_ID> --iam-account=<SA_EMAIL>
注意
- 外向き・不可逆な操作です。旧鍵の削除は、3か所の差し替えと疎通確認がすべて完了してから行ってください
- 新しい鍵ファイルは 0600・Git 追跡外のディレクトリに置き、リポジトリ内には決して置かないでください
- 鍵ファイルを一時的にでもリポジトリ配下に置くと、
git add していなくても取り違えの原因になります
🤖 Generated with Claude Code
背景
ローカル開発環境の点検で、Firebase Admin SDK のサービスアカウント鍵が、想定より広く読み取れる状態で保管されていた期間があることが分かりました。
ローカル側の是正(パーミッションの修正、不要なコピーの撤去、Git オブジェクトからの除去)は完了していますが、発行済みの鍵そのものは今も有効です。手元のコピーを消しても、Google Cloud 側で無効化しない限り、その期間に読まれていた場合の対策にはなりません。
やること
keys listで旧鍵が消えたことを確認する差し替えが必要な箇所(3か所・漏れると本番が落ちる)
src/lib/server/firebaseAdmin.tsが参照GOOGLE_APPLICATION_CREDENTIALSが指す鍵ファイル手順
注意
git addしていなくても取り違えの原因になります🤖 Generated with Claude Code