ハクソク

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

制限なしの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をトリガーしてプロジェクトの請求を無効にするってことがわかった。狂ってるよ。
そのまま言っちゃおう、これはアンチフィーチャーで、ユーザーを罠にかけるものだよ。
僕のお気に入りのGoogleのLLMベンチマークは、GeminiモデルにGCPからプロジェクトのAPI使用状況(リクエスト数だけ)を取得するスクリプトを作らせることなんだけど、失敗率は100%だね。
他のユーザーが言ってた通り、これはアンチフィーチャーでユーザーに敵対的だよね。これって、何かしらの理由でこういう機能に取り組むインセンティブが足りないってことのサインだと思う。
これは、AWSやAzureでも同じ経験がある。使用量がクリティカルな閾値を超えたら、キルスイッチが欲しい。5時間のダウンタイムはアプリを殺さないけど、大きなクラウド請求書はやばいかも。
これはおそらく意図的だよね。カスタムの請求保護実装が重要な時に失敗したとしても、ベンダーの責任になるわけないじゃん。ダッシュボードで請求のオーバーシュートを許可するスイッチに対して防御するのはもっと難しいし。
> 「€80の予算アラートとコスト異常アラートを設定していたけど、どちらも数時間の遅延でトリガーされた。反応した時には、コストはすでに約€28,000になっていた。GCPでも似たような経験があって、$100の予算を設定したら、予算を超えてから5時間後にしかメールが来なかった。その時にはすでにかなり超えていた。こんな機能が優先されないのは本当に驚きだ。短期的にはGoogleの利益が減るかもしれないけど、開発者にこんなひどい体験をさせて、誰も他の人にあなたのプラットフォームを勧めたくなくなる方がずっと悪いと思う。」
まさにその通り。遅延アラートが許容されるってのが理解できないよ… Googleとのコストの件は解決できた?結果はどうだった?
実際にお金の供給を断つ機能を優先するクラウドプロバイダーってどこ?AWSも全然そんなことしないし。
> 短期的にはGoogleの利益が減るかもしれないけど、開発者にそんなひどい体験を提供して、二度とあなたのプラットフォームを誰にも勧めないようになるよりは、そっちの方がマシだよね。これが後期資本主義の現実だよ。長期的な思考なんてなくて、短期的な利益の奪い合いだけ。
これが話題になるたびに怒りがこみ上げてくるし、何故か大手テックを擁護する人たちがいるのが理解できない。私の小さなビジネス(約2人)は、暴走した仕事のせいで潰されそうになったんだ。GCPの指示に従って完璧に準備してたのに、請求が上限を超えた瞬間に通知がキルスイッチに接続されて、すぐに止まったんだ。GCPは、ベストプラクティスとして提供された通知を6時間遅れて送ってきた。彼らは、私が領収書を持っていることに気づくまで、アカウントにクレジットを与えないようにあらゆる手を尽くしたんだ。調査の結果、彼らのパイプラインがアイテム数で圧倒されていたから遅れたって言ってたけど…それって本来機能するはずのシナリオだよ。マジで。
無知を許してほしいんだけど、詐欺師が短期間で生成AIサービスにアクセスすることで得られるメリットって何なの?EC2やGCCの資格情報があれば、ビットコインマイニングに全力を注ぐのは理解できるけど、ここでAIに何をさせようとしてるの?ボットネットや自動化を使って侵害されたキーを探す価値があるの?
もし彼らが敵対的な国家のために働いているなら、その報酬は経済と社会契約の破壊だね。ここにダメージ、そこにダメージ。全部積もっていくよ。
割引でAI推論を提供しているサービスはたくさんあるよ。中には、将来の精製のためにあなたのデータを使うものもあるし、他にはバルクディスカウントを利用して、個々のユーザーにそれを渡しているものもある(請求やサポートのリスクを引き受けながらね)。もしかしたら、トラックから落ちたトークンを売ってるだけのところもあるかも?
蒸留かな?
完全に推測だけど、もしかしたら何かのLLMをサービスとして提供してて、盗まれたAPIキーを裏で回してるからお金を払わなくて済むのかも?それか、犯罪目的(自動社会工学とか)でLLMを使ってて、APIキーが個人情報に結びつかないようにしてるのかも。でも、これにはローカルモデルを使うこともできるから、よくわからないけど。
初期の生成AIは、スパマーにとって主流になる前に人気があったのは、無限のスパムメッセージのバリエーションを書けたからだよね。メッセージをユニークにすることでスパムフィルターを通過しやすくなるし。トークンを大量に使って問題をブルートフォースする必要があるAIのユースケースもたくさんある。誰かがコードベースのセキュリティ脆弱性を探したいけど、自分のお金で5万ドルのトークンを使いたくないって場合もある。誰かのキーを見つけて、ロックアウトされるまでできるだけ使うことで、これらのプロジェクトを前に進めることができるかも。
> 予算アラート (€80) とコスト異常アラートがあって、どちらも数時間遅れて発動したんだ。 > 反応した時には、コストはすでに約 €28,000 になってた。 > 最終的には、遅れたコスト報告のせいで €54,000 以上になったよ。 これで、ハードな支出上限を提供しなかったこの3社を擁護している人たちの言い分もおしまいだね。「でも予算は設定できるし」「請求を心配するのは間違ってる」「ハードキャップは技術的に不可能」とかさ。
シャーキーの原則が働いてるね。
これは明らかに、VCが支援している企業向けの仕組みだね。株主は、ディナーパーティーでこのクールなスタートアップに投資したって自慢できる限り、支出を気にしないから。普通のビジネスはこういうのから離れた方がいいよ。
> Gemini API は、請求アカウントレベルとプロジェクトレベルの両方で月間支出上限をサポートしています。これらのコントロールは、予期しない超過を防ぐためにあなたのアカウントを保護し、サービスの可用性を確保するために設計されています。 https://ai.google.dev/gemini-api/docs/billing#project-spend-...
技術的に不可能な角度を買うかも。マイクロサービスが支出したお金をリアルタイムで決済アカウントに同期させることができたとしても(不可能だけど)、それでも超過分を免除しなきゃいけなくて、誰かがクォータを超えるたびにお金を失うことになる。
プリペイドサービスを使うもう一つの良い理由だね。今はOpenrouter.comやPPQ.ai、routstr.comみたいに選べるものがたくさんある。
これは違法にすべきだよ。もしお風呂のタイルを交換するために雇った業者が、裏庭のリフォームの請求書を送ってきたら、当然拒否する権利があるよね。
それ、マジでクレイジーだわ。自分が好きなプロジェクトを作って、いいことをしてるのに、いつの間にか大手テック企業に30,000€(または50,000€)も払う羽目になるなんて、どう考えてもフェアじゃないよね。ソフトウェアエンジニアとして、全ての弱点を考慮するべきだとは思うけど、何かを見落とすことが30/50kの損失に繋がるなんて、昔は全然違った意味だったよ。それって、人生を変えるレベルだよね。
そう、それが私がGoogle Cloudみたいなサービスを使わない主な理由だよ。ハードキャップが不可能なんだ。専門家を気取ってる人たちも、全然ダメだよ。Googleは、ハードキャップを提供できないのは、すべてのサービスを停止することになるからだって言ってるけど、せめてユーザーに選択肢を与えてほしいよね。
ハードキャップは技術的に不可能だって。これらの企業は、広告オークションであなたの個人情報を瞬時に売れるのに、なぜかキャッシュフローを止めるためのタイムリーなアラートを提供する方法がわからないんだ。驚きだよね。
ソロ開発者や小さなチームでパブリッククラウドを使うのは怖いよね。安全ネットがないし、コストが無限に膨らむ可能性もあるし。個人プロジェクトの大部分は、予期しないコストを防ぐ方法や、それを検知・制限する方法、反応する方法を考えるのに使ってる。昔は全部ドロップレットやVPSに放り込んでたけど、最近やってるプロジェクトはGoogleやAWSのサービスが必要なものが多い。今はGCPを好む傾向があって、少なくともアラートが出たらプログラムで請求アカウントを切断できるから。
私たちも全く同じ問題があったよ(最初はキーが秘密じゃなかったけど、警告なしでGemini APIを有効にしたら秘密になった)。アラートのおかげで早めに気づいたから、被害は26,000ドルだけで済んだ。Google Cloudのサポートに返金をお願いしたら、最初はダメだって言われたけど、今はさらに検討中だって。できるだけ上にエスカレーションした方がいいよ。
彼らは全然気にしないよ。10kを超えると、経営陣の承認が必要だって言われた。