世界を動かす技術を、日本語で。

制限なしのFirebaseブラウザキーによるGemini APIアクセスで13時間で€54,000の急増

概要

  • Firebase AI Logic 有効化後、 Gemini API による高額請求発生事例
  • 自動化された異常アクセス が短時間で発生
  • Google Cloudサポート による調査も請求は有効使用と判断
  • 既存のアラート機能 では迅速な対応が間に合わず
  • 類似事例や 追加の安全策、エスカレーション方法を求める相談

Firebase AI Logic有効化後のGemini API高額請求事例

  • Firebase Authentication のみ利用していた既存プロジェクトでの事例
  • AI機能追加 (テキストプロンプトからWebスニペット生成)時に Firebase AI Logic を有効化
  • 有効化直後、 Gemini API の利用量が急増し、短時間で €54,000超 の請求発生
    • 実際のユーザー動向とは無関係な自動化されたアクセス
    • API無効化・認証情報ローテーション で事態は収束

事後対応とGoogleの判断

  • Google Cloudサポート にてログ・分析提出
    • プロジェクト発信の正規リクエスト とみなされ、請求調整は拒否
  • アラート機能 (予算アラート・異常コストアラート)は 数時間の遅延 で発報
    • 対応時点で既に €28,000 のコスト発生
    • 最終請求額は遅延報告により€54,000超 に到達

よくある質問・相談ポイント

  • Firebase AI LogicGemini API 導入後に同様の高額請求を経験した事例有無
  • App Check・クォータ・サーバーサイド移行 以外の追加セーフガード策
  • Google Cloud への更なるエスカレーション手段の有無
  • 実体験や具体的な対策例 の共有を希望

推奨される追加セーフガード案

  • APIキーのIP制限リファラ制限 による外部アクセス遮断
  • APIクォータの厳格設定、利用上限値の明確化
  • App CheckOAuth認証 の徹底適用
  • サーバーサイドでのAPI呼び出し への全面移行
  • リアルタイムのコスト監視ツール 導入、外部サービス連携による即時通知
  • テスト・開発環境と本番環境の明確な分離、権限管理の最小化

エスカレーション・相談先案

  • Google Cloudサポート の担当者レベルを超えた エスカレーション申請
    • Billing SpecialistTechnical Account Manager への直接連絡
  • Google Cloud CommunityStack Overflow での広範な事例共有・情報収集
  • 契約内容の再確認、明確な利用規約違反がないか法務部門への相談

まとめ

  • AI関連API自動化アクセス による高額請求リスクが常に存在
  • 多層的な安全策リアルタイム監視 の導入が不可欠
  • 異常検知後の即時対応体制 を整備し、 Googleサポート窓口 の活用を継続推奨

Hackerたちの意見

関連: https://news.ycombinator.com/item?id=47156925

公開GitHubにハードコーディングされたGemini APIトークンが含まれたリポジトリがこんなにあることを考えると、驚くことじゃないよね。Googleは歴史的にAPIキーを秘密じゃないものとして扱ってきたけど、LLM推論用のキーが導入されてからは、ユーザーはそれを秘密に扱うべきだって言われてる。でも、みんながそのメモを受け取ったわけじゃないと思う。著者がどのウェブサイトについて話しているのかを共有していないことを考えると、彼らがフロントエンド経由で偶然漏らしたか、認証情報付きのソースコードを共有したんじゃないかな。

結果には本物のGemini APIキーが一つもないよ。

え?APIキーが秘密じゃない世界ってどんなの?

Googleは歴史的にAPIキーを秘密ではないものとして扱ってきたけど、LLM推論用のキーが導入されてからは、ユーザーはそれを秘密に扱うべきだって言われてる。これはずいぶん前に報告されていて、Googleがこのレガシーの公開キーがGeminiやAIで使えないようにすることで修正するはずだった。 https://news.ycombinator.com/item?id=47156925 https://ai.google.dev/gemini-api/docs/troubleshooting#google... 「漏洩したAPIキーをGemini APIでブロックすることにデフォルトで設定して、コストやアプリケーションデータの悪用を防ぐ手助けをしています。」なんでまたこれについて聞かされてるの?

...JCip3SJw => あなたのAPIキーが漏洩したと報告されました。別のAPIキーを使ってください。 ...afnt0t-E => あなたのAPIキーが漏洩したと報告されました。別のAPIキーを使ってください。 ...-UYzYTYU => あなたのAPIキーが漏洩したと報告されました。別のAPIキーを使ってください。全部すぐに漏洩として報告されて無効化されると思う。

これを読んで、すぐに自分のFirebaseプロジェクトに行ってプランをダウングレードしたよ。これはひどい。 > 「はい、約1ヶ月の間にGenerativeLanguage.GenerateContentへのコールで$6,909の請求書を見ているけど、これは自分がしたものじゃない。ライブのGoogleトレーニングセッション中にAPIキーをすぐに作成したけど、誰にも共有してないし、公開(またはプライベート)リポジトリやウェブサイトにもプッシュしてない。」 0 - https://discuss.ai.google.dev/t/unexpected-gemini-api-billin...

誰かがライブトレーニングセッションでキーの写真を撮ったのかな?疑われている原因は何?

生成AI APIに触れるGCPプロジェクトでデフォルトにすべき2つのこと: 1. HTTPリファラーとAPI(generativelanguage.googleapis.comのみ)によるAPIキー制限、2. Pub/Subの「キャップ」アクション付きの請求予算、ただのメールアラートじゃなくて。どちらもデフォルトではオンになってなくて、ほとんどの人が出荷前に設定しない。13時間での検出は実際には早い方だよ。ほとんどのチームは月末の精算時に気づくから。

月間と時間ごとのクォータ、そしてレートリミティング付きのAPIキーが欲しい。例えば、1時間に50,000リクエスト、その上は1/s/クライアントで最大20リクエスト/秒。1人のユーザーが問題を起こしても、他のユーザーのためにサービスをぶっ壊したくないんだ。出血のレートを設定したい。

他の人が言ってるように、これはGoogleにとっての「機能」であってバグじゃない。プロジェクトの請求にハードキャップを設定する簡単な方法はない。GCPの請求設定でそれを見つけるのに1時間近くかけたけど、redditで予算アラートを設定してPub/Subメッセージをトリガーする方法を見つけて、それがCloud Functionをトリガーしてプロジェクトの請求を無効にするってことがわかった。狂ってるよ。

そのまま言っちゃおう、これはアンチフィーチャーで、ユーザーを罠にかけるものだよ。

Hacker Newsで議論の続きを見る