APIキーをどこで管理しているか聞くと、「Slackのどこかに貼った」「スプレッドシートにある」「誰かのローカルにある」という答えが返ってくることがあります。小さなチームではよくある状態ですが、リスクは小さくありません。

APIキーが漏れるとどうなるか

APIキーが漏れた場合、最悪のケースでは外部サービスへの不正アクセス、意図しない課金、データの流出につながります。GitHubのパブリックリポジトリにキーを誤ってコミットしてしまった、という事故は今でも頻繁に起きています。

まず「どこに何のキーがあるか」を把握する

管理を始める前に、現状の棚卸しが必要です。どのサービスのAPIキーが存在して、誰が持っていて、有効期限はいつか。これを一覧にするだけで、すでに使われていないキーや、有効期限が切れているキーが見つかることが多いです。

キーごとに最小限の権限を設定する

APIキーに与える権限は、そのキーが必要とする最小限にとどめるのが原則です。読み取り専用でいい用途に書き込み権限を与えない。特定のリソースにしかアクセスしない用途に全リソースへのアクセスを与えない。この原則を守るだけで、漏れた場合の被害を限定できます。

有効期限を設定して定期的に更新する

期限のないAPIキーは、漏れても気づきにくいです。90日や180日の有効期限を設定して、定期的に更新する運用にすると、古いキーが長期間使われ続けるリスクを減らせます。更新のリマインダーを自動化しておくと、忘れにくくなります。

完璧な管理体制を一度に作る必要はありません。まず棚卸しをして、次に権限を絞る。それだけでもリスクは大きく下がります。MeshPanelのAPIキー管理機能は、この2つのステップを少し楽にするために作りました。