睡前设了个 10 美元的预算警报,醒来发现 Google Cloud 账单上赫然挂着 25,672.86 美元——差不多 17.5 万人民币。
这不是段子,是开发者 venturaxi 的真实遭遇。根源在于 Gemini API 密钥被恶意滥用,攻击者一夜之间用他的账户生成了海量图像。

跟很多碰上类似烂摊子的开发者不同,venturaxi 在反复拉扯之后最终拿到了全额赔偿。他把整个过程公开了,我觉得值得每个用云服务的人看一遍。
主角不是小白,该做的都做了
venturaxi 在 Google AI Studio 里做过 120 多个应用,谷歌每次更新日志都仔细看,发布会直播也熬夜追。开发习惯上,每个项目设独立的 API 密钥和计费账户,能开双重验证的地方全开了,云审计日志也一直跑着。按他自己的标准,能做的防御都做了。
但问题还是来了。
有人利用他几个月前从 AI Studio 发布出去的 Cloud Run 服务,攻击了那个公开 URL。服务容器里,API Key 是明文存在环境变量里的。攻击者拿到这个 Key 就开始调 Gemini 的接口——等于谷歌自己的系统帮攻击者签发了请求。那个 URL 他从来没分享过,也没有被搜索引擎收录,但还是被精准找到了。
攻击发生在半夜。每分钟大概 1000 次的调用频率,一夜之间发起了 60,000 次图像生成请求。
53 分钟的客服噩梦
一直到第二天早上九点半,他才收到谷歌的邮件提醒,内容写着“您的消费已达到 10 美元预算的 150%”。这时候他打开控制台一看,消费已经到 3,010 美元了,而且还在往上涨。
他马上联系谷歌客服,攻击在这段时间里一刻没停。后来他把整个对话过程记录了下来,一共 53 分钟。
刚开始,他跟客服说收到了 10 美元的预算提醒,但实际账单已经 3,000 美元了。客服让他别担心,说帮忙查账户,大概要等 9 到 10 分钟。等了快二十分钟,客服才告诉他,谷歌的账单有三十二小时的延迟。
他要求电话沟通,客服说聊天支持没有电话选项。他明确说出“被黑了”三个字,客服才发来一个禁用计费的链接。他试着关掉计费账户,系统直接拒绝了,提示余额还没付清。
他问怎么升级投诉,客服反问他:“您能在账户里看到您被黑了吗?” 接着客服让他用日志浏览器去查黑客的痕迹。但这时候问题来了——他刚才已经按客服说的把计费账户禁用了,所有日志跟着全被删干净了,根本没法查。
账单一直在涨。对话进行到第四十二分钟,账单已经到了 17,000 美元。客服这时候补了一句,说预算提醒本来就不会停止服务,只是发邮件而已。
他发了实时攻击的截图给客服看,客服的回复是:这显示了服务的使用情况。他质问客服:你觉得有人会一边跑着大量图像生成任务,一边还跑来联系客服问账户出了什么问题吗?
对话第五十二分钟,客服终于说,既然你说了账户被黑,那我把案件转交处理。等到第五十三分钟对话结束,账单跳到了 21,000 美元。
他自己总结了一句话:带着 3,000 美元的债务进去跟客服沟通,在被指示删除日志后,背着 26,000 美元的债务离开。
四个粉丝的账号,十五分钟就等来了私信
接下来发生了更讽刺的事。他实在没招了,跑到 X 上发了条帖子——那个账号一共就 4 个粉丝。结果 十五分钟内 收到了谷歌的私信。客服那边扯了快一个小时没解决的问题,一条四个粉丝的帖子让官方找上门了。

后面的沟通同样折腾。谷歌的社交媒体经理让他提供近三个月的交易截图、账单报告,又问他要账户被封的通知截图。他说自己没被封。对方又问,那有没有收到滥用警告的邮件。他说倒是希望能收到。
他把完整的时间线如实交给对方五分钟后,收到了谷歌的违规通知——项目因涉嫌资源劫持被暂停了,要求他走申诉流程并解释原因。可他去准备看日志写申诉的时候发现,所有日志都没了,因为之前照客服说的禁用了项目、关了计费。证据没了,申诉还得交。
银行的风控逻辑,也让人看不懂
那天晚上谷歌对他的卡发起了多次扣费请求。时间线是这样的:
- 晚上十点:批了 100 美元
- 十点三十五分:批了 200 美元
- 十点五十一分:批了 500 美元
- 十一点零二分:批了 1,000 美元
- 十一点三十三分:拒了 2,000 美元
- 凌晨十二点二十四:拒了 4,000 美元
- 凌晨一点二十六:拒了 6,000 美元
- 凌晨两点三十二:批了 8,000 美元
挡掉了三笔小的,放行了最大的一笔八千美元。这笔钱直接把他账户余额清空了,导致后面一笔一万的扣费因为余额不足才被拒。他在 X 上质问 ANZ 这个风控逻辑是怎么回事——反复尝试就放行最大的一笔吗?没有得到回应。
好在最后谷歌确认了这是核实后的滥用活动,25,672.86 美元的费用全部免除了,之前分五次扣走的 9,800 美元也退了回来。不过他还是注销了那张信用卡,中间这几番折腾导致他好几笔正常账单扣款失败。
九个默认设置,全是坑
事后 venturaxi 把谷歌默认设置里的问题系统地列了出来,一共 9 个关键问题:
- API 密钥限制默认是关的。任何 IP、任何来源都能随便调用,得自己去手动开启限制。
- 每月支出上限默认是空白的,没有顶。2026 年 3 月之前这个功能压根不存在,那之前创建的密钥到现在还是空的,除非自己动手改过。
- Gemini API 日志默认不给记。AI Studio 里日志是个单独的开关,默认不打开,而且需要有活动的计费账户才能看,如果出了事禁用了计费,日志立刻就看不了了。
- 计费层级升级是自动的,连个通知都没有。消费到了 1,000 美元自动进第三层,计费上限变成两万到十万美元。攻击者的消费把他的层级给顶上去了,他完全不知情。
- 后付费是默认模式。后付费意味着账单生成之前,计费账户有无限的信用敞口。预付费的选项到 2026 年 3 月才有。
- AI Studio 发布应用的时候,Cloud Run 的身份验证默认是禁用的。点了发布按钮,应用就部署上去了,调用者 IAM 不开,API 密钥明文存在环境变量里,默认就是公开的。
- “你的 AI 支出”诊断工具得自己手动去激活,是个预览功能,没人会提醒你去开。
- 预算异常检测不够智能。阈值要自己定义,系统不会自动帮你识别异常的消费模式。
- Gemini 的错误响应里会返回 API 密钥。请求失败或者账户被暂停的时候,默认的错误消息会把密钥值给返回去。如果应用暴露了原始错误,等于你自己通过日志在泄露密钥。
他说,这不是一个“你应该开双重验证”就能交代过去的事。该设的他全都设了,真正出问题的是谷歌的默认设置,一共九个地方。
如果哪天你也碰上了,记住这几条
基于这次经历,他整理了一套应急方法:
- 马上撤销 API 密钥,把每月支出上限设成 0,最后再禁用计费。注意顺序——在把 IAM 和日志浏览器里的证据提取出来之前,绝对不要关计费,一旦关了马上失去取证权限。
- 立刻给银行打电话,要求对银行卡做欺诈冻结,把所有待处理的授权都撤销掉。不要指望银行 App 的推送通知,那个东西有时候会静默失败,自己登录进去手动查一遍才踏实。
- 去社交平台公开发帖。哪怕账号没几个粉丝,也可能比官方支持渠道更快得到处理。他就是四个粉丝,十五分钟等来了私信。
- 经手的每一个客服叫什么名字、案例 ID 是多少、每一步操作的时间戳,全部记下来。后续申诉和追偿的时候,这些就是底牌。
他把这些摊开来讲,就是希望别再有人掉进同样的坑里。最后他还半开玩笑地说了一句:Thomas Kurian,雇我吧,我免费帮你设一些真正管用的规则。
要是你也在用 AI Studio、Vertex 或者 Gemini,对照上面列的这九条,挨个去检查一遍。密钥限制开了没有?支出上限设了没有?日志打开了没有?别等到账单短信来了才想起这些。真到了那时候,花了钱还得脱层皮——那就太不值当了。