「API キーが漏れた」と聞くと、悪意のある誰かに盗まれた場面を思い浮かべがちです。実際に多いのは、鍵を置いた場所が思ったより広く見えていた、という漏れ方です。
この記事では、公開されている報告と事例、そして私たちのサイトに実際に届いたアクセスの記録から、API キーが漏れる経路を 7 つに分け、それぞれ何から塞ぐかを答えます。冒頭の図は、左に 7 つの経路を漏れる場所ごとに並べ、右にそれぞれ先にすることを並べた一覧です。引用した原文と細かい数字は、調査ページ API キーはどこから漏れるのか — 7 つの経路 に 1 行ずつ載せています。
1. まず、言葉をそろえる
| 言葉 | 意味 |
|---|---|
| 鍵 | システムが「使ってよい相手か」を確かめるための、秘密の文字列。パスワード、API キー、アクセストークンなどがある。この記事では、これらをまとめて「鍵」と呼ぶ |
| API キー | 鍵の一種。プログラムが別のシステムの API を呼ぶときに、自分が誰かを示すために送る文字列。API キーを持っている人は、持ち主と同じ操作ができる |
| 環境変数 | プログラムを動かすときに、外から渡しておく設定の値。API キーを入れることが多い |
| .env | 環境変数に入れる値を書いておくファイル。API キーやパスワードが入る |
| .git | コードの変更の記録が入ったフォルダ。過去の記録も丸ごと入っている |
| コンテナイメージ | アプリを動かすための部品一式を、1 つにまとめて配る形 |
| MCP | AI に外のサービスや道具をつなぐための決まり |
| シークレットスキャン | GitHub などのサービスが、置かれたコードから鍵の形をした文字列を探し、見つけた鍵を知らせる仕組み |
2. 漏れる経路は 7 つ
漏れる場所で分けると、サーバーや公開の置き場が 3 つ、AI が 3 つ、利用者の画面(ブラウザ)が 1 つです。どれも、鍵を置いた場所が思ったより広く見えていた、というものです。
📎 7 つの経路の出典は API キーはどこから漏れるのか の「漏れる経路は 7 つ」 にあります。
3. いちばん多いのは、公開リポジトリ
件数が最も多いのは、GitHub などに公開したコードに鍵を書いたままにしてしまう漏れ方です。GitGuardian の年次報告によると、2025 年の 1 年で公開 GitHub に新しく置かれた鍵は 2,865 万件でした。
日本の例では、トヨタ自動車の委託先が公開したソースコードに、データサーバーへのアクセスキーが入っていて、約 5 年間、第三者が見られる状態だったと発表されています。設定ファイルに書いたまま公開する、サンプルに本物の鍵を入れたまま共有する、といった手違いで起きます。
📎 原文は API キーはどこから漏れるのか の「公開リポジトリ」 にあります。漏れた鍵を誰が止めるのかは シークレットスキャンとは にまとめています。
4. Web サイトの .env は、名前を当てるだけで読まれる
Web サイトの公開フォルダ(誰でも読める場所)に、環境変数を書いた .env を置くと、名前を当てられただけで中身が返ります。探す側は、ありそうな名前と置き場所を順に試していきます。
実際に、私たちのサイトにも 22 日分の記録で、攻撃に使われる形の要求が 8,219 件届き、そのうち .env を探す要求は 1,566 件以上、.git を探す要求は 108 件以上ありました。私たちのサイトは .env を置いていないので、中身を返したものは 0 件です。
📎 探された場所の上位 10 と数え方は API キーはどこから漏れるのか の「調査の詳細」 にあります。.env をどこに置けばよいかは .env の名前を変えれば安全か — 合鍵の置き場所 にまとめています。
5. AI の会話・設定・学習データにも残る
AI を使うようになって、鍵の置き場所が増えました。AI の道具を外のサービスにつなぐ MCP の設定ファイルからは、公開 GitHub で 2 万 4,008 件の鍵が見つかり、うち 2,117 件はまだ使えました。
AI エージェントの部品の弱点のうち 73.5% は、動作を確かめるための出力が AI の会話に流れ込むことが原因だった、という研究もあります。会話の記録は手元に残ります。さらに、AI の学習に使われる公開リポジトリからは、まだ使える鍵が 54 万 3,699 件見つかっています。一度集められたデータからは、元のリポジトリを消しても鍵は消えません。
📎 原文は API キーはどこから漏れるのか の「AI の設定と学習データ」 にあります。AI エージェントに鍵を渡すときの注意は AI エージェントに鍵を渡しても大丈夫か に、MCP サーバーを足す前に確かめることは MCP サーバーを追加する前に、何を確かめるか にまとめています。
6. 公開してよかった鍵の権限変更
Google の地図を Web ページに表示するときは、Google の鍵をページの HTML に書いて公開します。この鍵は、もともと誰に見られてもよい前提の鍵です。ところが、同じプロジェクトで別の担当者が生成 AI の Gemini の API を有効にすると、公開していた同じ鍵で Gemini も使えるようになります。鍵の文字列は変わらず、鍵の持ち主に知らせも来ません。
Truffle Security は、この状態の Google の鍵を 2,863 件見つけました。ページから鍵を拾った人は、その鍵で、アップロードされたファイルを見たり、AI の利用料を持ち主に請求させたりできます。
公開してよい鍵でも、使える API と使えるサイトを鍵に設定して絞っておかないと、後から漏らしてはいけない鍵に変わります。
📎 原文は API キーはどこから漏れるのか の「公開してよかった鍵の権限変更」 にあります。
7. 経路ごとに、先に塞ぐところ
| 経路 | 先にすること |
|---|---|
| 公開リポジトリ | 漏れた鍵を取り消す。プッシュ保護とシークレットスキャンも使う(シークレットスキャンとは) |
| Web サイトの公開フォルダ | .env や .git を公開フォルダに置かない |
| パッケージとコンテナイメージ | 配る前に、途中の層まで含めて鍵が無いかを確かめる |
| ログと AI の会話 | 鍵を出力させない。AI に .env を表示させない |
| AI の設定と MCP | 設定ファイルを公開しない。権限を絞った鍵を使う |
| 学習データ | 漏れた鍵を取り消す |
| 公開してよかった鍵の権限変更 | 使える API と、使えるサイトを絞っておく |
鍵が漏れたと分かったら、どの経路でも、まず漏れた鍵を取り消します。コードやファイルから鍵を消しても、鍵は使えるままだからです。鍵の期限と取り消し方は API トークンはいつ切れ、どう取り消すか にまとめています。
一次出典
| 出典 | 内容 |
|---|---|
| GitGuardian: The State of Secrets Sprawl 2026 | 公開 GitHub の鍵 2,865 万件・MCP の設定ファイル |
| トヨタ自動車: お客様のメールアドレス等の漏洩可能性に関するお詫び | 公開されたソースコードにアクセスキー |
| Codecov: April 2021 Post-Mortem | コンテナイメージの途中の層から鍵 |
| Chen et al.(arXiv 2604.03070) | AI エージェントの部品の弱点の 73.5% |
| Truffle Security: Why exposed credentials stay live for years | 学習に使われる公開リポジトリの鍵 |
| Truffle Security: Google API keys and Gemini | Gemini に使える Google の鍵 2,863 件 |
引用した原文と出典は、すべて調査ページで 1 行ずつ公開しています。確かめたい方は API キーはどこから漏れるのか — 7 つの経路 をご覧ください。
読者アンケート実施中
このテーマをもっと深掘りしてほしい方は、記事に「いいね」をお願いします。「いいね」の多いテーマから順に追加調査し、結果は新着記事でお知らせします(フォローしていただくと通知が届きます)。
【転載OK】本記事の転載について
本記事の文章・図表は、すべて転載 OK です。図は加工しないままお使いください。転載の際は、出典として、この記事の完全版 『API キーはどこから漏れるのか』(renkeimap.jp)へのリンクをお願いします。事前の連絡は不要です。
※ 筆者は日立系ITベンダー・介護ソフトベンダー・大学病院IT部門を経て独立し、現在は中小企業のIT・DX支援をしながら、業務システムの「つながり」を一次資料で調べています。 文中の「編集部」は、筆者が所属する IT連携マップ編集部 のことです。誤りを見つけられましたら 訂正窓口(無料・アカウント不要)へお願いします。訂正履歴も公開しています。