APIキー漏えいを検知する方法|利用量の急増で気づく
生成AIのAPIキーの漏えいを検知する方法を解説します。漏えいの主な経路、公開リポジトリの検知サービスだけでは足りない理由、利用量の急増で気づく仕組みの作り方(しきい値・時間帯・下限の決め方)、気づいた後の初動の手順、平時に準備しておくことまでをまとめました。

生成AI の API キーの漏えいに最も早く気づける手がかりは、キーごとの利用量の急増です。漏えいしたキーは、持ち主が寝ている時間帯にも、普段の何倍もの量で使われます。キーごとの 1 時間単位の利用量を見張り、普段と比べて急に増えたら通知する仕組みがあれば、請求書が届く前に止められます。
この記事では、漏えいの経路、利用量で気づく仕組みの作り方、気づいた後の初動を説明します。API キー管理の全体像は「生成AI APIキー管理 完全ガイド」を参照してください。
API キーはどこから漏れるか
主な漏えいの経路は次のとおりです。
| 経路 | 典型例 |
|---|---|
| ソースコード | キーを直接書いたコードを公開リポジトリに push した。非公開でも、後で公開設定に変えた |
| 設定ファイル | 環境変数のファイルをリポジトリに含めた。コンテナイメージに焼き込んだ |
| クライアント側 | ブラウザやスマートフォンのアプリにキーを埋め込み、利用者の端末から見える状態になった |
| 共有・受け渡し | チャット・メール・チケットにキーを貼り付けた |
| 人の移動 | 退職者・委託先の手元にキーが残った |
| ログ・画面共有 | エラーログや画面共有の映像にキーが写った |
どの経路も、漏れた瞬間に持ち主が気づくことはほとんどありません。気づくのは、誰かがそのキーを使い始めてからです。
公開リポジトリの検知だけでは足りない理由
主要なコードホスティングサービスには、公開リポジトリに含まれた秘密情報を検知して通知する仕組みがあります。有効にしておく価値は大きいですが、これだけでは足りません。
- コード以外の経路は対象外: チャットやログ、退職者の手元からの漏えいは検知できない
- 非公開の場所は見えない: 社内の共有ドライブや、社外の非公開の場所に置かれたキーは対象外
- 「使われたかどうか」は分からない: 検知できるのはキーが露出したことで、不正利用が始まったかは別途確認が要る
つまり、露出の検知は「入口」の対策で、不正利用の検知は利用量の側で行う必要があります。
利用量の急増で気づく仕組み
不正利用されたキーには、使われ方に特徴が出ます。
| 特徴 | 理由 |
|---|---|
| 量が普段の数倍〜数十倍になる | 不正利用者は他人の予算で大量に使う |
| 普段使われない時間帯に使われる | 持ち主の業務時間と関係なく動く |
| 普段使わないモデルが使われる | 高価なモデルが選ばれやすい |
| 使われていなかったキーが急に動く | 放置されたキーが狙われる |
この特徴を捉えるには、キーごと・1 時間ごとの利用量を、そのキーの普段の量と比べます。全社合計だけを見ていると、1 本のキーの急増は全体に埋もれてしまいます。
しきい値の決め方
急増の判定は、「直近 1 時間の量が、過去の同じ時間帯の平均の何倍か」で見るのが基本です。同じ時間帯と比べるのは、昼と深夜で普段の量が大きく違うためです。
| 決めること | 目安 |
|---|---|
| 比較する期間 | 過去 7 日間の同じ時間帯の平均 |
| 倍率 | 3〜5 倍から始め、過検知の様子を見て調整 |
| 下限の量 | 普段ほとんど使われないキーでの誤報を防ぐため、一定量に満たなければ発報しない |
| 通知先 | キーの持ち主と情シス。夜間も見られる経路(チャットとメールの両方など) |
下限の量は必ず設けます。普段 1 時間に数百トークンしか使わないキーは、少し使われただけで倍率が跳ね上がり、誤報が続きます。誤報が続くと通知が無視されるようになり、本当の漏えいを見逃します。
見る単位はキー。見えない経路は代わりの単位で
OpenAI と Claude は、API キーごとの利用量が取れます。Azure OpenAI はデプロイメント、AWS Bedrock と Google Vertex AI はモデルの単位までなので、その単位で急増を見張ります。Bedrock と Vertex AI では、漏えいするのはアクセスキーやサービスアカウントの鍵で、影響はそのアカウント(プロジェクト)全体に及びます。アカウントやプロジェクトを用途ごとに分けておくと、急増が起きたときに範囲を絞りやすくなります。
急増に気づいた後の初動
急増の通知が来たら、次の順で動きます。調査より失効が先です。
- 持ち主に確認する(15 分以内): 本人の正当な利用(大量のバッチ処理など)なら終了
- 確認が取れなければ失効する: 失効で困るのは再発行の手間だけ。不正利用の費用はその間も積み上がる
- 新しいキーを発行し、正当な利用者にだけ渡す: 保管場所をシークレット管理サービスに移す
- 漏えい経路を調べる: リポジトリの履歴、共有した場所、キーを知っていた人
- 費用を確認する: 不正利用分の金額をプロバイダの利用量画面で確定し、必要ならプロバイダのサポートに相談する
- 記録する: いつ気づき、いつ失効し、いくら使われたか。次の棚卸しで再発防止を確認する
夜間・休日に通知が来ることを前提に、誰が失効してよいかを事前に決めておきます。持ち主の確認が取れない場合に、情シスの当番が失効してよいと決まっていれば、朝まで待たずに止められます。
平時に準備しておくこと
| 準備 | 理由 |
|---|---|
| キーごとの利用量を見られるようにする | 急増の判定と、事後の被害額の確定に使う |
| 急増の通知を設定する | 気づく仕組みがないと、請求書で初めて知る |
| 失効の手順と権限を決める | 夜間・休日でも止められるようにする |
| 台帳で持ち主を管理する | 急増したキーの持ち主にすぐ連絡できる |
| プロバイダ側の利用上限を設定する | 気づくのが遅れても被害額に天井を作る |
| 予算の消化率の通知も併用する | 1 時間単位の急増ほど目立たない、緩やかな不正利用に気づく |
利用上限は「止める」仕組み、急増の通知は「気づく」仕組みです。上限だけだと、上限に達するまで気づけず、正当な業務も止まります。両方を組み合わせるのが実務的です。
よくある質問
Q. 急増の通知が来たけれど、正当な利用でした。設定を緩めるべきですか? 1 回の過検知ですぐ緩める必要はありません。月末の集計バッチなど、決まった時期に大量処理があるなら、その持ち主と事前に共有しておけば確認はすぐ終わります。同じ過検知が毎週続くなら、倍率か下限の量を見直します。過検知と正検知の記録を残しておくと、見直しの判断がしやすくなります。
Q. 失効したら、不正利用された分の費用はどうなりますか? 失効で止まるのはそれ以降の利用です。すでに使われた分の扱いはプロバイダとの契約や規約によるため、被害額を確定したうえで、プロバイダのサポートに相談します。被害額の確定には、キーごとの利用量の記録が必要です。
Q. 全社の合計だけ見張っていれば十分ではありませんか? 利用が多い企業ほど、1 本のキーの急増は全社の合計に埋もれます。全社の合計は予算の消化率で見て、急増はキーや部署の単位で見る、と役割を分けます。
まとめ
- API キーの漏えいに最も早く気づける手がかりは、キーごとの利用量の急増
- 公開リポジトリの検知は入口の対策。不正利用の検知は利用量の側で行う
- 急増は「直近 1 時間 ÷ 過去 7 日間の同時間帯の平均」で見て、下限の量を設けて誤報を防ぐ
- 気づいたら調査より失効が先。夜間・休日に誰が失効してよいかを事前に決める
- 利用上限(止める)と急増の通知(気づく)、予算の消化率の通知を組み合わせる
ManageAI の急増検知は、直近 1 時間のトークン数を過去 7 日間の同時間帯の平均と比べ、下限トークン数を下回る誤報は抑止したうえで、Slack とメールに通知します。対象は全社・部署・ユーザー・API キーごとに設定できます。読み取り専用キーの登録だけで始められます。モニター企業を募集中です。
関連記事
次に読む
この記事を書いた人
モニター企業募集
初期費用0円・月額5万円(税別)
先着5社・2026年11月末まで
5プロバイダの利用量と費用を部署・利用者・APIキー別に可視化。読み取り専用キーの登録だけで当日から始められます。
募集要項を見る資料請求・お問い合わせ