AI 搭的站点把华为云 Access Key 塞进浏览器了?先停用这把 IAM 密钥再谈对账
公开报道里,一批用 AI 搭站工具「几分钟上线」的站点,把本不该离开服务端的密钥直接写进了访客能下载的前端代码。2026 年 10 月,Cyble Research and Intelligence Labs(CRIL)扫描超过 130 万个新注册域名,识别出 22306 个 AI 搭站点;其中 35 站确有「不该出现在浏览器」的私钥级凭证——含 OpenAI Key、Stripe 私钥、Supabase service-role、AWS Access Key、Slack webhook 等。更麻烦的是克隆模板:同一把密钥会跟着模板复制到整舰队域名。
把同一逻辑换到华为云语境:如果永久 Access Key(AK/SK),或任何可调开 ECS、OBS、按需资源的编程凭证,进了 AI 生成的前端 / 公开 JS bundle,访客不必登录控制台,就能用 API 花掉你账号的钱。计费主体是华为云账号(资源归属与费用归属),不是「写提示词的人」,也不是「部署脚本的外包」。
下面用公开外证对齐企业侧风险,再落到华为云 IAM、访问密钥、费用中心与成本中心上可复现的核对与止血清单。示例一律打码。
一、外证怎么读:浏览器里的「账单钥匙」
Cyble 扫到了什么(只引公开数字)
按公开报道可核对的事实(出处见文末):
- 扫描规模:新注册域名 130 万以上
- AI 搭站点识别:22306
- 确认「私钥级、不该进浏览器」的站点:35
- 其中 5 站共 16 把 OpenAI Key;另有 Stripe 私钥、Supabase service-role JWT、AWS access key、Slack webhook 等类型分布
- 模式之一:clone-and-leak——模板里塞进一把密钥,舰队每个域名共用同一凭证
报道同时强调:大量「看起来像密钥」的字符串其实是浏览器侧本就公开的值(如 reCAPTCHA site key、Stripe publishable key);真正危险的是 secret、service-role、云厂商永久 Access Key 这类。
映射到华为云:为什么是「账号买单」
华为云官方文档写得很直白(摘要转述,以文档为准):
- 账号是资源归属、资源使用计费的主体;账号级凭证效力接近「整本账本」。
- Access Key(AK/SK)用于 API / CLI / SDK,不能登录控制台,但在权限范围内可创建、变更、删除资源——按需费用照样记在账号账单上。
- 官方明确建议:不要给账号(根)创建访问密钥;日常用单独 IAM 用户;编程侧优先临时安全凭证或委托,而不是把永久 AK 嵌进代码。
因此,前端 bundle 里若出现形如永久 AK 的凭证,攻击面不是「网站丑一点」,而是:
- 访客读到页面源码,复制 AK/SK
- 用编程方式调华为云 API(在该 IAM 用户权限范围内)
- 开按需资源、拉对象存储、甚至扩权路径上的二次操作
- 费用中心里曲线抬升;钱记在账号,不记在访客浏览器
虚构打码示例(勿当真钥,仅供对照自家「最近使用时间」):
IAM 用户:iam-ai-landing-xxxx Access Key ID:HPUAxxxxxxxx3F9Q 状态:启用 出现位置:某 AI 搭站公开 JS bundle(克隆到 4 个营销域名) 权限画像:曾挂过过宽的计算/存储相关系统策略(应立即缩权)

二、谁受损:同一把钥匙,四种账
损失形态不同,别用一张「总损失」糊弄过去。分开看:
财务 / 出纳方面,直接损失是按需账单陡升、可用额度被抽干、可能触发欠费停服;连带是对账周期被打乱,异常日之后的包年包月误购更难冲正。
安全 / 合规方面,直接问题是凭证失控面从「一个站点」扩到「整舰队克隆域名」;连带是审计拿不出「密钥最近使用时间」与轮转记录;若同时泄露了其他云或支付类密钥,事件面更宽。
业务负责人方面,直接冲击是核心服务因欠费、资源争抢或紧急停钥而受影响;连带是对客户承诺的服务时限与内部追责交叉;营销站「一晚上起十个域名」的速度,变成事故扩散速度。
工程师 / 外包搭站方方面,个人未必被扣款,但要面对权限与密钥治理追责。「我只是把环境变量贴进了 AI 搭站的客户端字段」无法对抗账单上的 API 轨迹。
结论先写死:止血顺序是停用密钥,再缩权、清异常资源,再核对账单与告警,最后才谈复盘;不是先开复盘会,更不是先争论「是不是 AI 的锅」。
三、三条边界:IAM、访问密钥、账单
IAM 边界:人、组、策略,不是「一个管理员密码」
对照华为云 IAM 安全使用最佳实践,企业侧应固定记住:
- 不要给账号创建访问密钥——密码与 AK/SK 对账号效力同等;账号 AK 泄露接近全账号风险。
- 为人创建单独的 IAM 用户,不要共享账号密码;日常管理用 IAM 用户,少用根身份。
- 授予最小权限——系统策略过宽时,用自定义策略收到「刚好够用」。
- 控制台用户与编程用户分开——只登录控制台的用户,不要顺手再发一把 AK。
- 高权限用户开启虚拟 MFA;对删除资源、生成访问密钥等开启敏感操作(操作保护)。
- 不要把访问密钥嵌入代码——官方原文级建议;AI 搭站的「客户端可访问字段」与硬编码是同一类事故。

访问密钥边界:永久 AK/SK 和临时安全凭证不是一回事
硬约束(以「管理 IAM 用户的访问密钥」为准):
- 每个 IAM 用户最多 2 个永久访问密钥,有效期为永久(除非停用或删除)。
- 「最近使用时间」按规则采样:15 分钟内多次使用仅记第一次——可用来判断旧钥是否仍在被调用,但不要误解成「精确到每一次调用」。
- SK 仅在创建时可下载;关掉弹窗后无法再取 SK,只能删了重建。
- 更稳妥路径:临时安全凭证(临时 AK/SK 加 security_token),或在 ECS 等场景用委托自动取临时凭证——永久密钥应视为「不得已」。
与 Cyble 场景的对照:OpenAI / Stripe 的 secret 进前端,花的是对方余额;华为云永久 AK/SK 进前端,在权限范围内花的是你账号的按需费用;模板克隆让同一 AK 出现在多个域名,等于多个公开入口指向同一把账单钥匙。
账单边界:费用中心看花了什么,成本中心看偏没偏
费用中心 / 账单:账单概览、消费走势、流水与明细;异常当周盯按天消费走势与 Top 产品类型。未出账数据有延迟,明细不建议直接当最终对账依据。
成本中心的异常成本监控:用模型标「潜在异常」,不会自动关资源,也不对资损结果负责;系统监控器记录常见 T+2 时延,自建监控器常见 T+1。
成本中心的预算:可按天/月/季/年设实际或预测阈值,超阈值短信或邮件提醒——适合做「早发现」,不能替代密钥停用。预算检查有节奏(常见按小时检测),且周期内「首次触达阈值才通知」——告警到达时,费用往往已经上去。
按需异常规则的官方示例(便于对照自家曲线):某日实际支出 105 元、预测最大值 100 元,差额大于 1 元即可生成异常记录(系统监控器场景下往往在 T+2 下午可见)。包年包月则看环比是否超过阈值(默认 20%)且差额大于 1 元。


四、控制台逐步核对(费用到密钥到资源再到告警)
以下假设你具备账号或 IAM 管理员权限;生产环境请先开变更窗。先停用可疑密钥,再删异常资源。
步骤 A|费用侧:偏了多少、偏在哪类产品
- 登录控制台,打开「费用中心」里的「账单」再进「账单概览」。
- 将时间调到疑似异常前后各 3 到 7 天,看消费走势是否出现单日陡升。
- 进入流水账单或明细账单,按产品类型、计费模式(按需)、区域过滤;记下 Top 资源 ID(后文用于关停)。
- (可选)打开「成本中心」里的「成本洞察」再进「异常成本监控」,看是否已有记录;没有记录不代表没有资损(注意 T+1 / T+2 时延)。
可自填核对(代入本账号真实导出):
- 异常日前 7 日日均:____ 元
- 异常日当日:____ 元
- 比值:____ 倍
- Top 产品类型:____
步骤 B|身份侧:陡升对齐到哪把密钥、哪个用户
- 打开「统一身份认证服务 IAM」里的「用户」,排查长期未用、命名含「ai」「web」「landing」「tmp」「ci」「legacy」的用户,以及近期新建用户。
- 进入对应用户的「安全设置」再看「访问密钥」:记录状态、创建时间、最近使用时间。
- 若最近使用时间落在异常开资源窗口内,将该密钥视为优先嫌疑对象。
- 同步检查:账号(根)是否仍持有访问密钥——若有,按官方建议评估后停用并删除(业务确需编程访问时,迁到最小权限 IAM 用户)。
- 有云审计服务 CTS 的,按时间窗检索凭证创建、ECS 开机等事件,交叉验证调用方身份(具体事件名以 CTS 控制台为准)。
步骤 C|权限侧:这把密钥本来能做什么
- 查看该 IAM 用户所属用户组及附加策略(系统策略 / 自定义策略)。
- 若存在「Tenant Administrator」、过宽的「* FullAccess」、或「所有资源」范围,泄露影响面接近账号级。
- 对照官方建议:编程用用户尽量用自定义策略收到「刚好能完成工作」;控制台管理员与机机账号分离。
步骤 D|资源侧:停钥之后再清异常开出来的东西
- 先停用嫌疑 Access Key(删除不可恢复;官方路径通常是:停用,确认业务无影响,再删除)。
- 每个用户最多 2 把钥——可走「一主一备」轮转:新建,业务切新钥,观察旧钥最近使用时间不再更新,停用旧钥,再删除。
- 按步骤 A 记下的资源 ID,在对应区域释放异常 ECS / EVS / EIP 等;保留必要快照仅用于取证,取证后按合规要求处理。
- 检查委托(agency)、新创建的 IAM 用户或用户组,防止攻击者留下第二条通路。
步骤 E|前端与舰队:别只盯一个域名
对应 Cyble 的 clone-and-leak:
- 列出同一模板 / 同一 CI 产物部署过的全部域名与环境(测试、预发、活动页)。
- 对公开页面做自检:在自有站点源码中检索是否出现 Access Key 形态字符串、「.env」内容、服务端专用 token(具体检索由你们安全流程定义)。
- 任一域名出现过私钥级凭证,即视为整舰队同源凭证已暴露——轮转范围按舰队计,不按「被举报的那一个域名」计。
- 凭证一律改到服务端 / 工作流 / 密钥管理;前端只保留浏览器侧本就公开的值。


五、缓解清单
已发生或高度疑似泄露(小时级)
- 停用嫌疑 Access Key;必要时同时缩权(禁止再创 IAM 用户、禁止删日志、禁止批量开停计算或存储——细则以官方最佳实践与你们变更单为准)。
- 账号根 AK 若存在:业务切到 IAM 用户最小权限钥后,停用并删除根 AK。
- 释放异常按需资源;确认费用中心当日走势回落。
- 高权限控制台用户开启虚拟 MFA;开启敏感操作 / 操作保护。
- 通知财务关注可用额度与欠费风险,避免「密钥停了但生产也停了」。
- 若密钥曾出现在 AI 搭站 / 公开 bundle:按舰队域名范围轮转,不要只换一个站。
48 小时内(防止复发)
- 清点全部 IAM 用户访问密钥:无「最近使用」、仅控制台登录的用户,删除多余 AK。
- 编程负载优先改为临时安全凭证或委托;必须用永久钥时:最小权限加定期轮转(双钥一主一备)。
- 代码仓、CI、共享盘、搭站平台「客户端可访问字段」检索永久凭证痕迹;凡出现过的一律视为已泄露并轮转。
- 成本中心配置预算告警(例如:月预算的 80% 实际或预测阈值);确认异常成本通知覆盖按需与包年包月(包年包月通知范围可能需手动打开)。
- 开通并保留 CTS 对 IAM 关键操作的审计查询能力。
制度与架构(按迭代落地)
- AI / 低代码搭站发布门禁:上线前强制「自有页面源码自检」加「密钥不得进客户端字段」检查项。
- 用户组按职能拆分(只读 / 运维 / 费用 / 安全),禁止「一人进多组后权限并集失控」却无人复核。
- 自定义策略优先于过宽系统策略;授权范围优先指定区域 / 企业项目,慎用「所有资源」。
- 密钥轮转节奏写入变更日历(例如每 90 天);轮转记录与「最近使用时间」截图一并归档。
- 演练一次「停用密钥,业务切流,账单回看」桌面推演,记下真实耗时。
六、常见误区
1. 「这是营销站 / AI 生成站,又不是生产 API,不会动到云账单」
否。只要前端能读到可调开资源的永久凭证,计费主体仍是华为云账号。站点类型不改变账单归属。
2. 「开了 IAM 最小权限就等于密钥安全」
否。最小权限降低的是单次泄露的爆炸半径;永久 AK 仍可能在权限范围内持续开资源。临时凭证与委托解决的是凭证生命周期。
3. 「异常成本监控会自动停机」
否。官方写明:只识别潜在异常,不对资源做操作,也不为资损负责;且有 T+1 / T+2 时延。它是辅助发现,不是熔断器。
4. 「预算告警等于实时风控」
否。告警有检测周期与「周期内首次触达才通知」等机制;告警到达时,实际费用往往已经上去。告警是财务雷达,停用密钥才是安全刹车。
5. 「删了密钥就万事大吉」
不完整。还需:清异常资源、查是否被创建了新用户或新委托、按舰队轮转同源凭证、补 MFA 与操作保护、回头修搭站模板与 CI。
6. 「只处理被扫到的那一个域名」
危险。克隆模板场景下,一把密钥活在整舰队;响应范围按凭证计,不按域名计。
7. 「主账号登录方便,日常也用主账号,顺便给主账号开一把 AK」
与官方建议相反。日常管理用已授权 IAM 用户;不要给账号创建访问密钥。
七、参考(华为云文档域 + 公开报道出处)
华为云官方文档(support.huaweicloud.com)
- IAM 的安全使用最佳实践:https://support.huaweicloud.com/bestpractice-iam/iam_0426.html
- 安全使用 IAM(新版最佳实践):https://support.huaweicloud.com/bestpractice-iam5/iam_05_0111.html
- 管理 IAM 用户的访问密钥:https://support.huaweicloud.com/usermanual-iam/iam_02_0003.html
- 临时安全凭证概述:https://support.huaweicloud.com/usermanual-iam5/iam_01_1236.html
- 异常成本规则(成本中心):https://support.huaweicloud.com/usermanual-cost/costcenter_000013_05.html
- 创建预测预算并接收告警:https://support.huaweicloud.com/qs-cost/billing_qs_0000003_01.html
- 流水和明细账单(费用中心):https://support.huaweicloud.com/usermanual-billing/bills-topic_new_1000102.html
公开报道出处
- Cyble:The Keys Are in the Browser: Secret Exposure Across AI-Built Websites
https://cyble.com/blog/secret-exposure-across-ai-built-websites/
(控制台路径以登录后实际菜单为准;文档版本随官网更新,引用时请打开链接核对更新日期。)
本文为华为云控制台可复现的企业治理说明。示例账号与密钥均为虚构打码;Cyble 数字仅作公开外证,不构成对其方法或覆盖面的背书。若你方已完成密钥停用与账单回看,建议把「日均费用对比异常日费用」「密钥最近使用时间对比资源创建时间」「舰队域名清单对比轮转完成数」三组数字写进内部故障报告——比任何口号都更有用。
如果你平时还要把合同、简历或配置文档发给外部大模型处理,可以先在本地用青椒智能脱敏处理敏感字段再上传:https://qingjiaolab.com
- 点赞
- 收藏
- 关注作者
评论(0)