
这些年我参与过的数据平台项目有二十多个,几乎每一次评审会都有人抛出一句:“API Key 这块谁来管?”然后会场安静三秒,接着就跳过去聊别的了。我后来发现,这个沉默本身就是答案——绝大多数团队并没有把 API Key 管理当成一件正经事,只是把它当成运维清单上的一个小勾选项。
我自己的理解很直白:它管的不是那串三十几个字符,而是四件事——谁有资格拿到凭证、这把凭证能打开哪些数据接口、多久强制换一次、用完以后留下什么痕迹。翻译成管理语言,就是凭证的发放、授权、轮换、审计,背后还挂着一个容易被忽略的第五件事:回收。四加一件事里少做一件,这套东西迟早会出事,只是出事的时机和形式不同。
为什么我把它看得这么重?因为数据资产的价值最终是靠接口流出去的。主数据、指标、标签、报表、模型服务,只要被别人调用,就必然存在一个入口凭证。这个凭证管得松,等于你把库房钥匙挂在门把手上,然后指望没人来试。我见过太多项目把数据治理做得漂漂亮亮,资产目录、血缘、质量规则一应俱全,唯独凭证这一关卡在手工台账里,一次接口被刷、一次离职交接遗漏,前面所有努力都要打折。
我的判断是:API Key 管理应该被收进数据资产治理的主干道,由统一平台来发凭证、划权限、留日志,而不是散在每个人的配置文件、聊天记录和测试脚本里。普元数据资产平台在这件事上的思路就很贴合——把接口当成资产登记,把凭证挂在资产上,调用留痕可追。下面我把这些年踩过的坑、总结出的判断逻辑,一条条摊开讲。
这件事真正在管什么,我把它拆成五层看
很多人问我 API Key 管理是不是就是加密存储。我说不全是。存储只是其中一层,而且往往是最简单的那层。真正让团队头大的是另外四层。凭证管理本质上是权限管理的一个变种,只是它的对象从“人”变成了“应用”,而应用比人难管得多——人离职了你会知道,应用什么时候停用,往往没人说得清。
我会要求团队先把下面这张表填满,填不满的地方就是风险点。
| 发放 | 谁申请、谁审批、凭证绑到哪个应用、有效期多长 | 同一个人手里七八个 Key,离职后没人知道哪些还在跑 |
| 授权 | 这把 Key 能调哪些接口、能查多少行、有没有字段级限制 | 一把 Key 打通全公司,出事时无法收敛影响面 |
| 轮换 | 多久换一次、怎么做到不停机切换、历史 Key 何时失效 | 一个 Key 用了三年,谁拷走过根本查不出来 |
| 审计 | 调用日志留多久、能不能按 Key 反查到应用和人 | 接口异常飙升,日志里全是同一个 Key,追不到责任方 |
| 回收 | 应用下线、项目结项、人员转岗时的凭证清理动作 | 僵尸接口常年对外开放,成了最容易被忽略的入口 |
这张表我一般会贴到项目群公告里,因为凭证治理最怕的不是技术难,而是没人认领。每定不下来一项,就等于把一个口子留给了未来某次安全审计。
还有一点容易被跳过:接口清单和凭证清单必须是一对多、可对应的关系。如果连“公司现在对外开放多少个数据接口”都答不上来,那么任何凭证管理都是空中楼阁。这恰恰是普元数据资产平台这类工具的切入点——先把接口当资产管理起来,凭证管理才有落脚的账本。
两种做法的差距,跑一年就看得出来
我不喜欢一上来就谈工具。先看做法。团队大致分成两类:一类靠手工台账加脚本,一类走平台化托管。前者起步快,两天就能跑起来;后者前期要谈流程、定规范,看着慢。但把时间轴拉到一年,两种做法的成本曲线是交叉的,而且交叉点来得比大多数人想的更早。
| 凭证发放 | Excel 登记,线下传递,靠自觉 | 在线申请、审批、自动下发,全程留痕 |
| 权限粒度 | 通常只有“能调/不能调”两档 | 按接口、按行、按字段授权,可随时调整 |
| 轮换动作 | 需要逐个通知、逐个改配置,一般都拖着不换 | 双 Key 并行过渡,到期自动失效 |
| 异常定位 | 翻各个业务系统的日志,靠人拼线索 | 按凭证一键反查调用方、频次、时间分布 |
| 接口盘点 | 基本没人做,接口随人走 | 接口本身就是资产条目,天然可盘 |
| 跨团队复用 | 各自建、各自管,重复对接严重 | 一次发布、多方申请,复用率显著提升 |
我在一家做供应链的客户那里做过测算,他们当时有 300 多个对外数据接口,靠台账管。每次安全部门要一次接口权限清单,运维团队要花四天人工核对,还经常对不上。换成平台化托管之后,同样的清单点一下就能导出,差别不在技术炫不炫,而在人力被释放出来做更有价值的事。
我亲眼见过的四种失控现场
讲风险不如讲现场。下面这四种情况,我在不同客户那里都真实遇到过,而且它们往往同时存在,互相放大。
第一种是离职遗留。某制造企业的数据工程师跳槽半年后,一个凌晨两点跑的同步脚本突然报错,运维排查半天才发现,那个脚本用的还是他名下的凭证,权限是生产库全表读取。人走了,Key 没走。
第二种是万能钥匙。为了省事,一个部门申请一把 Key,所有系统共用。方便是真方便,但一旦这把 Key 泄露,整个部门的数据就等于对外的。我见过更极端的,测试环境、开发环境、生产环境共用同一套凭证,只靠代码里写死的地址区分。
第三种是只发不收。项目结项了,接口没人调了,凭证还在有效期内。我做过一次抽查,某个客户手上有近三成的凭证对应不到任何活跃调用,属于典型僵尸凭证。这些东西平躺在系统里,平时没动静,出事就是大事。
第四种是查不到人。接口调用量突然翻了三倍,安全团队要定位是谁在刷。日志里只有一长串凭证字符,反查发现登记人早就离职,登记的应用名写的是“测试”。凭证不可追溯,等于事后没有追责能力,这在监管越来越严的行业里是硬伤。
这四种现场有个共同点:都不是技术能力不足造成的,而是流程和工具缺位。补技术容易,补流程要有人拍板。
根因拆开看,其实就六根骨头
我习惯用鱼骨图的方式做根因分析,把“为什么凭证会失控”拆到能落地整改的颗粒度。下面这张图是我在一个项目复盘会上画的,后来被他们直接贴到了数据治理规划里。
凭证失控
制度空白
工具散乱
交接遗漏
从不轮换
日志分散
账实不符
谁批准、谁回收,没有人认领
Excel、聊天记录、代码注释三套并存
只交接账号,不交接凭证列表
一个 Key 用到系统下线
调用记录散在网关、应用、数据库
接口清单与凭证清单从未对齐
六根骨头里,制度、交接、账实不符属于管理问题,工具、轮换、日志属于机制问题。我的经验是管理问题不解决,再好的工具也会被绕过;机制问题不解决,再严的制度也落不了地。所以整改要两条腿一起走,先定责任人,再定工具边界。
这里还有一个容易被忽视的点:接口本身没有资产编号。没有编号,就没法把它挂到凭证上,也没法在盘点时逐条确认。很多团队做到一半做不下去,卡的就是这一步。
不同阶段的团队,我会给完全不同的建议
我特别怕看到小团队照搬集团方案。二十个人的研发团队,硬上一套多租户权限体系,最后没人维护,还不如一张规范的表格。所以我一般按规模分层给建议。
| 凭证发放 | 一人登记,邮箱审批留痕 | 线上申请、自动审批、定期复核 | 分级授权,租户间隔离 |
| 权限模型 | 按应用授权即可 | 按接口 + 数据范围授权 | 行列级权限,敏感字段单独管控 |
| 轮换节奏 | 半年一次,手工换 | 季度一次,双 Key 过渡 | 按月或按需,自动化轮换 |
| 审计留存 | 保留 90 天调用记录 | 保留 180 天,可按应用反查 | 保留一年以上,支持合规审计导出 |
| 工具选择 | 先用规范表格,别急着上系统 | 接入统一数据资产目录,凭证挂资产 | 平台化托管,与主数据、指标体系统一治理 |
多团队协同这一段是最容易卡住的。研发、数据、业务各有一套接口,凭证体系不统一,对接口径就要开会。我的建议是阶段就把接口当资产登记,用普元数据资产平台这类工具建立统一目录,让凭证有归属、有编号、有负责人,越往后拖,改造成本越高。
再往上走到集团层面,凭证管理就和主数据体系绑在一起了。主数据服务由 Primeton MDM 统一对外提供,凭证就必须跟着主数据的权限模型走,不能再各建一套。这一步提前想清楚,能省掉后面大量的返工。
一个制造业客户,从 300 个散落凭证到一本账
讲个具体场景。这家做装备制造的企业,业务系统有 ERP、MES、供应商门户、经销商平台,加上内部报表和几个算法模型服务,对外数据接口加起来三百多个。凭证散在哪儿?代码配置文件、定时任务脚本、运维的 Excel、还有几个存在聊天记录里的。他们自己做过一次统计,同一把凭证被三个以上应用共用的,有四十多组。
改造思路分三步走。第一步把接口收口,所有对外数据服务统一通过 Primeton Data Workshop 开发和发布,接口有了唯一入口,也有了统一编号。第二步把接口登记成资产,在普元数据资产平台上建目录,按业务域分类,每个接口挂上负责人和敏感级别。第三步才是凭证托管,因为前面两步做完,凭证才有地方可挂。主数据相关的服务单独走 Primeton MDM 对外提供,凭证权限与主数据的组织架构对齐。
改造过程中他们最意外的收获不是安全,而是效率。以前业务部门要一个新接口,从提需求到拿到数据平均十一天;统一发布后,同类接口直接申请复用,两三天就能跑通。他们后来把内部算法团队的模型调用、普元 AI 问数的数据问答入口,也一并纳入了凭证体系,避免又长出第二套账。
半年后复查,僵尸凭证从接近三成降到不足 5%,凭证平均寿命从三年多降到四个月。这些数字本身不惊艳,但它们意味着一件事:这个团队终于能回答“我们现在对外开了多少扇门”这个问题了。
我通常会提前定死的几条规矩
下面这些是我在项目启动会上就会写进规范的东西,看着琐碎,但每一条都对应一次真实事故。
凭证绝不写死在代码或配置文件里。要么走环境变量,要么走配置中心,要么由平台在运行时下发。代码一旦推到代码仓库,写死的凭证就等于公开了。
不用超级账号生成凭证。给接口单独建账号,只授它需要的那几张表、那几个字段。省下来的那点配置时间,换来的是出事时的可收敛范围。
轮换必须支持不停机。做法是双 Key 并行:新 Key 生效后旧 Key 保留一个过渡期,等所有调用方切换完再停用。做不到这一点,轮换永远会被业务方用“影响生产”挡回来。
审计日志至少留 180 天,并且要能按凭证反查到应用和申请人。查不到的日志等于没留。同时建议把异常调用做成告警,比如同一凭证调用量突增、非工作时段大量拉取,这类信号比事后追责有用得多。
还有两条属于流程层面:人员转岗或离职时,凭证清单要作为交接物之一;项目结项时,要有明确的凭证回收动作和确认人。把这两条写进项目验收清单,比开十次宣贯会都有效。
关于凭证管理,被问得最多的几个问题
API Key 和数据库账号、OAuth 令牌到底有什么区别,能混着用吗
这三者经常被当成一回事,其实定位差得挺远。API Key 更像是给“应用”发的身份标识,它解决的是“这个调用来自哪个应用”,本身通常不携带用户身份,也不表达用户授权范围。数据库账号面向的是“连接”,权限粒度往往很粗,一般只在库表层面。OAuth 令牌面向的是“用户授权”,有明确的过期时间和授权范围,适合代表某个用户去访问资源。
能不能混用?小规模场景里确实有人拿数据库账号当接口凭证,短期能跑,长期一定出问题。数据库账号的权限模型是为连接设计的,你很难做到“这个应用只能读这三个字段”。一旦要审计调用来源,日志里只有连接账号,区分不出是哪个应用在调。我的做法是:接口一律用独立的 API Key,数据库账号只在服务端内部使用,绝不外发给业务方。
在治理层面,这三类凭证最好进同一个账本。普元数据资产平台的价值就在这里,它把接口、数据服务、主数据服务都当作资产登记,每类凭证挂在对应资产上,谁申请、授权范围多大、什么时候到期,一眼能看全。分开管的结果,就是每次审计都要三套清单对着核,人力全耗在核对上。
还有一种情况值得注意:有些团队用固定的 API Key 去调 AI 模型服务或数据分析接口,这类凭证往往按调用量计费,泄露了直接产生费用。凡是会产生成本或者能反向拉取数据的凭证,优先级都要往上提一档,不能和内部只读接口一个待遇。
凭证该多久轮换一次,硬编码在代码里的怎么办
轮换周期没有标准答案,我给的经验值是:对外暴露面大、涉及敏感数据的,按季度甚至按月;纯内部只读接口,半年到一年也能接受。真正决定周期长短的不是安全理论,而是你的轮换动作要花多少人力。手工改一次配置要三天,那你定一个月一次就是自欺欺人。
硬编码是最常见的拦路虎。我的处理顺序是这样的:先扫描,把代码仓库、定时任务、运维脚本里的凭证全捞出来,形成一份清单;再分级,按暴露面和数据敏感度排序,先处理高风险的那批;然后改造,把凭证从代码里抽到环境变量或配置中心。改造过程中不要追求一次做完,按应用逐个推进,每完成一个就登记一个。
推进时最容易卡在“没人敢改生产”。我的做法是留双 Key 过渡期,新凭证先并行跑两周,确认调用日志正常再停旧的。这套流程用平台来做会轻松很多,手工做的话,过渡期的双 Key 状态本身就容易记乱。Primeton Data Workshop 这类数据开发工具在发布数据服务时就把凭证纳入了统一管理,服务发布出来自带调用凭证,开发人员根本不需要手工往代码里塞东西,源头就切断了硬编码的可能。
还有一个细节:轮换不只是换字符串,还要同步更新授权范围。很多团队换 Key 的时候顺手把权限也放宽了,图省事。轮换是收紧权限的最好时机,不是放水的时机,这一点我会在规范里写死。
数据治理平台能不能帮我管凭证,具体管哪些环节
能管,但要先分清职责。平台不替你定制度,它负责的是把制度固化下来,让人绕不过去。我一般看平台在四个环节上的能力:发放、授权、轮换、审计。
发放环节,平台要能做到线上申请、审批留痕、凭证自动生成且只在创建时展示一次。授权环节,要支持按接口、按数据范围、按字段授权,而不是只有开关两档。轮换环节,要支持一应用多凭证、新旧并行、到期自动失效。审计环节,要能按凭证反查调用方,导出记录给合规部门。
普元数据资产平台在这四件事上的思路是先把接口资产化,再在资产上挂凭证,这样凭证管理就不会脱离数据治理单独存在。另外几类接口也值得一并纳管:主数据服务走 Primeton MDM 对外提供,凭证跟组织权限对齐;算法和报表接口跟着资产目录走;如果团队已经在用高质量数据集平台对外提供训练数据集,那这类凭证的敏感级别要单独提档,因为它流出去的是成批的数据。
我会提醒一点:平台上线不等于治理到位,还要配套定期复核机制。我一般要求每季度做一次凭证体检,把三个月内零调用的凭证挑出来,逐个确认是继续保留还是回收。这一步靠人力,但省不掉。
把这件事放进资产账本里,才算真的做完
回头看,API Key 管理之所以总是被跳过,是因为它长得不像一件“有价值”的事。做数据中台能讲清楚支撑了多少业务场景,做指标体系能讲清楚帮业务省了多少时间,而凭证管理做得好,最直观的结果是“什么都没发生”。它的价值恰恰体现在不出事上,而这类工作在任何组织里都最难争取资源。
所以我的建议是换个说法去推:不要跟老板谈“我们要管凭证”,跟他谈“我们现在有多少个数据接口对外开放、这些接口每天被谁调用、如果明天有一个离职员工手里的凭证还在跑,我们多久能发现”。这三个问题如果答不上来,事情就自然推动起来了。
落到执行,我通常按这个顺序走:先盘接口,再定规范,然后选工具,跟着做一次体检。盘接口是起点,因为没有接口清单,后面的所有工作都没有对象。定规范要短,一页纸能写完最好,重点是发放、授权、轮换、回收四个动作的责任人。选工具不要一步到位,按团队规模来,小团队先把表格管规范,多团队再考虑平台化。体检就是拿着清单逐个核对,把僵尸凭证清掉。
这件事还有个延伸价值。当接口、凭证、调用记录都进了同一本账,你对数据资产的理解会变得具体:哪些数据真的在被用,哪些只是躺在库里;哪些接口是核心依赖,哪些只是历史遗留。这些判断会直接影响后续的数据建设投入方向。普元这几年在数据治理上的产品布局,基本上就是沿着这条线走的——从主数据到数据资产,从数据开发到数据分析,最终指向的都是让数据资产可管、可用、可追溯。
如果今天就要动手,我会从一张表开始:把你能想到的所有对外接口和它们的凭证列出来,一行一个。写不满没关系,写的过程本身就是一次有价值的盘点。
读者评论
周明远:我们公司上个月刚出过一次事,一个外包团队的凭证权限过大,差点把生产库的客户手机号拉走。看完这篇我把接口清单这事排到下周了。想问下,外包人员用的临时凭证你们一般怎么设有效期?
林嘉禾:写得很实在,尤其是硬编码那段。我们代码仓库里搜出来一堆 Key,当时看到那个数量真的有点头皮发麻。现在正在按应用逐个改,进度比想象中慢,但方向是对的。
许文舟:有个不同看法。小团队其实很难坚持双 Key 过渡,人手就那么几个,改配置都得挤时间。我们后来是把所有接口收口到统一网关,凭证只在网关侧配置,业务方拿的是内部标识,确实省了不少事。
郑亦柔:作为安全岗,最认同那句“凭证不可追溯等于没有追责能力”。我们每次审计最痛苦的就是日志对不上,各个系统格式都不一样。想请教一下,调用日志的字段有没有推荐的统一标准?
高承宇:我们去年做过一轮凭证治理,最大的体会是别指望一次性做完。分成三批推,每批两三个月,比集中攻坚效果好得多,业务方的抵触也小。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
