一觉醒来欠费 2.5 万美元!开发者怒喷 Gemini API:10 美元预算预警形同虚设!
程序员的那些事·2026-05-06 10:23

事件概述 - 一名资深开发者因Gemini API密钥被恶意滥用,在一夜之间产生了25672.86美元(约17.5万元)的Google Cloud天价账单[1] - 该开发者最终通过与谷歌的多轮沟通获得了全额费用免除,但过程曲折,暴露了谷歌云平台在计费与安全机制上的多重隐患[1][2] 事件经过与谷歌客服响应问题 - 攻击者通过开发者数月前从AI Studio发布的Cloud Run服务的公开URL,窃取了以明文环境变量存储的API密钥[5] - 攻击者以每分钟约1000次的频率疯狂调用Gemini Pro Image等API,一夜之间发起了多达60000次图像生成请求[6] - 开发者设置了10美元预算预警,但次日上午9:30收到提醒时,实际消费已达3010美元且仍在持续上涨[6] - 谷歌账单系统存在32小时的延迟,导致预警严重滞后[7] - 与谷歌客服长达53分钟的沟通未能及时止损,期间账单从约3000美元飙升至21000美元[7][11] - 客服初期未重视“被黑”警告,后续指导的操作(如禁用计费账户)导致关键日志被删除,阻碍了调查与申诉[7][11][12] - 开发者在仅有4个粉丝的X平台发帖后,15分钟内收到了谷歌的私信联系,凸显了官方支持渠道的低效[8][9] 谷歌云平台默认设置与安全机制缺陷 - 开发者总结出谷歌云平台存在九项关键的默认设置隐患,多数为默认关闭或设置过宽,且缺乏主动提示[13] - API密钥限制默认关闭,允许任何IP、任何来源、任何服务调用,必须手动为每个密钥开启限制[13] - 每月支出上限默认空白(无上限),2026年3月之前创建的密钥仍维持此状态,除非手动修改[13] - Gemini API日志记录默认关闭,且禁用计费会立即失去日志访问权限[13] - 计费层级会在消费达到1000美元时自动且静默地升级至第3层级,拥有20000到100000美元的计费上限,无需用户批准或通知[13] - 后付费计费为默认设置,在账单生成前向用户提供无限的信用敞口,预付费选项在2026年3月才成为可选项[15] - 从AI Studio发布应用至Cloud Run时,调用者IAM身份验证默认禁用,API密钥会以明文环境变量形式存储,且服务默认公开[15] - 预算异常检测功能不智能,需用户自定义阈值,不会自动检测异常消费模式[15] - Gemini API的错误响应消息默认包含用户的API密钥,若应用暴露原始错误,可能导致密钥通过日志泄露[15] 关联金融机构的风控问题 - 开发者使用的澳新银行在事件中的扣费逻辑令人费解:在密集扣费请求中,先后批准了100、200、500、1000美元,拒绝了2000、4000、6000美元,但最终却批准了8000美元的最大一笔扣款,清空了账户余额[15][16] - 银行的风控逻辑似乎存在漏洞,未能有效拦截明显的异常交易模式[16][19] 事件反映的核心未解问题 - 谷歌云的账单默认阈值可自动升至10000美元,用户可能从未手动设置[19] - 预算提醒仅通过邮件通知,不会停止服务,即使使用量暴涨411,000%也不会触发自动异常干预[19] - API密钥滥用缺乏自动风控,从未使用量突增至每分钟1000次请求,系统未做任何标记或暂停服务[19] - 客服系统基于过时数据给出判断,在用户提供实时数据后仍无法有效处理[19] - 调查期间不会自动冻结问题账户,且按客服指示操作(如禁用计费)会关闭后续调查所需的能力[19] 开发者总结的应急与防护建议 - 发生事故后,操作顺序应为:立即撤销API密钥 -> 将每月支出上限设为0 -> 在提取IAM和日志浏览器证据前,切勿禁用计费[21] - 第一时间联系银行,要求对银行卡进行欺诈冻结并撤销所有待处理授权,需手动检查账户动态而非依赖推送通知[21] - 在社交平台公开发帖求助,可能比官方支持渠道更快获得升级处理[21] - 务必记录每位客服姓名、案例ID和时间戳,这些信息对后续申诉至关重要[21] - 开发者建议所有使用谷歌AI开发平台的同行检查并修正上述九项默认设置,以规避类似风险[13][14][20]

一觉醒来欠费 2.5 万美元!开发者怒喷 Gemini API:10 美元预算预警形同虚设! - Reportify