- APIキーが漏れると「サービスが壊れる」のではなく「あなたが請求される」
- APIキーとは何か
- どうやって漏れるのか
- 実際に起きる流れ
- なぜAIサービスで特に問題になるのか
- 「バレないのでは?」が危険な理由
- 正しい使い方
- すでに漏れた場合の対処
- よくある誤解
- 覚え方
APIキーが漏れると「サービスが壊れる」のではなく「あなたが請求される」
AIサービスや外部APIの説明でよく出てくる言葉に「APIキーを公開してはいけない」があります。
ただ、多くの場合は理由が曖昧なまま覚えています。
APIキーが漏れると何が起きるのか。
結論から言うと、あなたのアカウントを他人が自由に使える状態になります。
そしてほとんどの場合、最初に起きる問題はセキュリティ侵害ではありません。
請求です。
「システムが壊れる」「サイトが乗っ取られる」と想像されがちですが、現実にはもっと地味で深刻です。
他人の利用料金をあなたが支払うことになります。
APIキーとは何か
APIキーは、簡単に言えば「サービスを使うための身分証明」です。
ログインIDとパスワードに近い役割ですが、違いがあります。
通常のログイン:
- 人間が入力する
- 画面にログインする
APIキー:
- プログラムが送信する
- サービスを呼び出す
サーバはリクエストを受け取ると、「誰が呼び出したか」をAPIキーで判断します。
つまりAPIキーは、利用者そのものを識別する情報です。
どうやって漏れるのか
もっとも多い原因は、JavaScriptへの直書きです。
const API_KEY = "sk-xxxxxxxxxxxxxxxxxxxx";
これをWebページに置くと、ブラウザがそのまま読み込みます。
そしてブラウザのコードは、誰でも見ることができます。
見える場所に置いた時点で公開です
ブラウザでは、次の操作だけでコードが見えます。
- 右クリック → 検証
- ソース表示
- ネットワークタブ
つまり「公開していないつもり」でも、インターネットに置いた時点で公開されています。
実際に起きる流れ
APIキーが見つかると、攻撃者は次の行動を取ります。
1. キーをコピーする
2. 自分のプログラムに設定する
3. APIを大量に実行する
重要なのは、アクセス元を判別できない点です。
サーバから見れば、すべて「あなたの利用」です。
curl https://api.example.com/v1/ai \ -H "Authorization: Bearer sk-xxxxxxxx"
このリクエストは、あなたのサイトとは無関係な場所から送られていても、あなたの利用として処理されます。
なぜAIサービスで特に問題になるのか
AI APIは従量課金が多いです。
つまり使った分だけ費用が増えます。
そのため、悪用されると短時間で大きな請求になります。
- ボットが自動実行する
- 24時間呼び出される
- 数万回リクエストされる
気づくきっかけは「請求通知メール」です。
ここで初めて漏洩に気づくケースが少なくありません。
「バレないのでは?」が危険な理由
検索エンジンやボットは、公開ページを巡回しています。
GitHubに上げたコードや、公開されたHTMLは自動収集されます。
つまり「人に教えていない」ことは安全ではありません。
インターネット上では、発見される前提で設計する必要があります。
正しい使い方
APIキーはブラウザではなく、サーバに置きます。
正しい構造はこうなります。
- ブラウザ → あなたのサーバ
- サーバ → APIサービス
ブラウザから直接APIを呼び出さないことが重要です。
fetch("/api/chat", { method: "POST", body: text });
# サーバ側 response = requests.post( "https://api.example.com/v1/ai", headers={"Authorization": "Bearer " + API_KEY} )
ブラウザはあなたのサーバにしか接続しません。
APIキーは外部から見えない場所に置かれます。
すでに漏れた場合の対処
もし公開してしまった場合、やることは一つです。
すぐにキーを無効化し、再発行します。
- キーを削除
- 新しいキーを作成
- サーバ側にのみ設定
「後で直す」は危険です。
公開から数時間で悪用される例もあります。
よくある誤解
小さなサイトだから狙われない
人ではなくボットが探しています。
規模は関係ありません。
難しいキーだから安全
文字列の強度は関係ありません。
公開されていれば意味がありません。
覚え方
APIキーは「パスワード」ではありません。
クレジットカード番号に近いものです。
見える場所に置けば、使われます。
そして請求は所有者に来ます。
セキュリティは専門知識より、置き場所の理解が重要です。
AIを使う前に、この1点だけは必ず押さえておく必要があります。