日期:2026-08-26
我们的 AI 网关要接几十个业务系统,早年是各接各的账号,API Key 满天飞,谁申请了什么权限说不清。最要命的是离职人员的 Key 没人回收,人走了 Key 还在外面调,越权调用查都查不到,合规审计一来全公司紧张。我们做过一次排查,活跃 Key 里至少有小两成对应已离职或转岗的人,这种敞口放在任何审计里都是红线,老板知道后下令必须收口。更严重的是,有些 Key 权限过大,一个测试账号拿着能调生产全部模型,一旦泄露后果不堪设想,安全团队每次红蓝对抗都能揪出几个这样的敞口,网关成了整个 AI 平台最薄弱的那一环。
我们把网关接入改成统一 OAuth 单点。业务系统不再各自管账号,统一走企业的身份源做单点登录,调用方在网关侧注册应用,拿到的是短期令牌而不是长期 Key。身份联邦把企业身份源的用户映射到网关里的调用方身份,离职或转岗在身份源一改,网关这边的权限自动失效,不用人工逐个回收。网关侧做了越权检测,某个调用方调了不在它权限范围内的模型或接口,直接拦截并留痕。审计留痕全覆盖,每一次调用都能回溯到是哪个应用、哪个真人发起的,合规检查一键导出。此外,权限也做了最小化,每个应用注册时只申明它要用的模型和接口,网关按申明发令牌,超范围一律拒绝,从根上消灭了大权限 Key。
身份联邦映射最容易出错。我们一开始用自动映射,把测试环境的账号也同步进了生产,结果测试账号在生产网关调了真模型,越权跑了一周才在审计里发现。后来改成映射双审,生产映射必须两人确认,测试和生产严格隔离。短期令牌的刷新要稳,令牌过期前自动续,但不能无限续,我们设了最大生命周期,超期强制重新认证,防止令牌被长期盗用。越权检测不能误伤正常调用,我们按应用声明的最小权限做基线,超出基线的才拦,但基线要经常审视,业务扩权限时忘了更新声明就会误拦,我们加了声明漂移检查。审计留痕量很大,全量存成本高,我们按关键字段抽样加全量索引,查的时候能定位又不爆存储。令牌续期也踩过坑,初期续期接口偶发失败,调用方拿着过期令牌狂重试,把网关刷出限流,后来加了退避和续期预刷新,才稳。
案例片段(已脱敏): OAuth 接入与身份联邦配置(示意): auth.mode: oauth_sso token.ttl: short token.max_life: bounded fed.map_review: dual audit.coverage: full permission.model: least_privilege 某网关收口后活跃 Key 中离职关联占比从约 18% 降到 0,越权调用数从每月数十次降到个位数,接入新应用耗时从两天压到两小时,大权限 Key 清零。
我们主要看 Key 回收时效、越权调用数、接入耗时和审计覆盖率。回收时效从过去的人工数天变成身份源一改即刻失效,离职敞口基本清零;越权调用从每月几十次降到个位数,合规审计不再心惊。接入新应用从原来走流程两天压到两小时,业务方不用再等账号审批。审计覆盖率拉满,每次调用可追溯,合规检查从翻日志变成导报表。文中数据为项目复盘口径,已做脱敏。我们把越权拦截的 pattern 接到了安全运营,哪种越权手法变多提前告警,从被动封堵变成主动发现,安全水位比单纯收口 Key 高了一个档次。最小权限模型上线后,红蓝对抗里能揪出的大权限敞口从好几个降到零,安全团队终于敢说网关这环守住了。
网关账号绝不能散养,API Key 满天飞就是定时炸弹,我们就是被离职 Key 吓过才下定决心收口,短期令牌加身份联邦比长期 Key 安全得多,人走了权限自动没。身份联邦映射必须双审,尤其生产环境,自动映射翻过车把我们教训够呛,测试账号跑生产这种事一次都不能有。越权检测要带最小权限基线,但基线得常更新,业务扩权忘了改声明就误拦,漂移检查不能省。令牌续期要预刷新加退避,否则过期重试会自伤,我们被限流刷爆过才改。我现在的看法是,网关身份治理的价值不在接入多快,而在把谁在调、调什么、该不该这三问变成默认答案,合规和安全的底气都来自这里,省下的审计加班比系统成本重要。
我们把权限申请也做成了自助流程,业务方在线申明要用的模型和接口,审批人点一下就发令牌,不用再找管理员开 Key。安全团队每月拉一次权限审计报告,哪个应用权限过大一眼可见,收口之后红蓝对抗再没揪出过大权限敞口。
我们把令牌的使用也做了异常检测,某个应用短时间换令牌太频繁或者调了不常用的模型,系统会标异常并临时降权,防止令牌泄露被刷。安全团队靠这个抓到过一次测试环境令牌误配到生产的事故,比人工审计快得多。