こんなメールが届きませんでしたか?これは何の通知?

これ、なんの連絡? 簡単に言うと、「サービスアカウントキー(JSON)とかAPIキーを、そのまま長期間ほったらかしにして運用するのは危ないから、セキュリティ的にちゃんとした管理方法に変えてね」っていうGoogle Cloudからの連絡。 一番大事なポイントは、「自分のとこの環境で、そういうキー(認証情報)を持ってるか?使ってるか?」ってことです。

これ、なんの連絡? 簡単に言うと、「サービスアカウントキー(JSON)とかAPIキーを、そのまま長期間ほったらかしにして運用するのは危ないから、セキュリティ的にちゃんとした管理方法に変えてね」っていうGoogle Cloudからの連絡。 一番大事なポイントは、「自分のとこの環境で、そういうキー(認証情報)を持ってるか?使ってるか?」ってことです。
起こりうるリスク
- もしサービスアカウントキー(JSON)が誰かにバレたら…
- → 不正アクセスされて、データを見られたり、勝手に変えられたり、消されたり、なんなら新しいリソースを作られたりする可能性があります(そのキーにどんな権限がついてるかによりますけど)。
- もしAPIキーが誰かにバレたら…
- → 第三者にAPIを勝手に使われて、想定外の請求が来るかもしれません(特に、制限をちゃんと設定してない場合は危険)。
メールが求めてる対応(要点)
- コードやリポジトリにキーをそのまま書かない
- ソースコード、設定ファイル、Git、社内のメモとかにキーを直書きするのはNGです。
- 代わりに Secret Manager みたいなサービスを使って管理して、プログラムが動くときにそこから読み込むようにしましょう。
- 使ってないキーは削除する
- 30日以上使われてないキーなんかは、棚卸しして削除しましょう(放置しておくのが一番危ないです)。
- APIキーには絶対に制限をかける
- 「どのAPIで使えるか」を限定する(例:Maps JavaScript APIだけで使えるようにする)。
- 「どこから使えるか」も限定する(HTTPリファラー、IPアドレス、アプリIDなどで制限する)。
- サービスアカウントの権限は必要最小限に
- 強い権限をつけっぱなしにしないようにしましょう。
- IAM Recommender が「この権限、使ってないよ」って教えてくれるので、そういうのを削っていきましょう。
- キーの有効期限を短くする、またはそもそも作れないようにする
- 組織ポリシーで
iam.serviceAccountKeyExpiryHoursを設定して、キーの最大寿命を決めましょう。 - できれば
iam.managed.disableServiceAccountKeyCreationを設定して、新しいキーを作れないようにしちゃうのがベストです。
- 組織ポリシーで
- 緊急連絡先(Essential Contacts)を最新にしておく
- 何かセキュリティの問題があったときに、ちゃんとした担当者に連絡が届くようにしておきましょう。
まずはこれだけ!最短手順(これで十分なことも多いです)
- 手順A:サービスアカウントキー(JSON)があるかチェック
- GCPコンソールで「IAM と管理」→「サービス アカウント」→(対象のアカウントを選ぶ)→「キー」を見てみましょう。
- キーが0個なら:今回の通知は「予防」のためのものだったと思ってOK。次はAPIキーの確認へ。
- キーがあるなら:それが本当に必要か確認しましょう。
- いらないなら削除。
- 必要なら、Secret Managerなどに移して、有効期限やローテーションのルールを決めましょう。
- 手順B:APIキーに制限がかかってるかチェック
- GCPコンソールで「API とサービス」→「認証情報」→「APIキー」を見てみましょう。
- API制限(使うAPIだけ許可してるか)
- アプリケーション制限(リファラー、IP、アプリIDなどで制限してるか)
- この2つが甘かったり、設定されてなかったりしたら、最優先で設定しましょう。
「重要かどうか」の判断基準(ざっくり版)
- JSONキーを作った記憶がある、どこかに保存してる → 重要!(要確認)
- MapsなどのAPIキーを使ってて、制限の設定が適当 → 重要!(請求額がとんでもないことになるかも)
- そもそもキーを作ってない、使ってない → 緊急度は低い(けど、今後のために知っておいて損はない)



