Skip to content

产品2026-11-082 分钟阅读出自项目 · 企业查询数据中台 →

一把官方密钥,怎么安全地分给多家子公司

集团只买了一把第三方数据服务的密钥,却有好几家子公司要用。我没有把密钥发出去,而是做了一层中台。记录一下当时的几个关键取舍。

需求一开始听起来很简单:集团采购了一项企业数据服务,只有一把官方密钥,但好几家子公司的业务系统都要调用。最省事的做法是把密钥发给大家——这也是最危险的做法。

直接分发会出什么问题

  • 成本不可控:谁都能调,月底才知道花了多少

  • 重复花钱:A 公司昨天查过的企业,B 公司今天再查一遍,照样计费

  • 无法追溯:出了问题不知道是哪家、哪个系统调用的

  • 无法止损:密钥一旦泄露,只能整体更换,所有系统一起停

我的方案:密钥不出门

官方密钥只保存在中台,子公司拿到的是中台签发的 子密钥。子密钥可以单独启停、单独重置,泄露了只影响一家。

一次请求进来,先过风控,再读缓存:

text
子公司请求
  → 密钥校验 → IP 白名单 → 接口授权 → QPS 限流 → 每日配额
  → 读集团缓存
      命中   → 直接返回,不消耗官方配额
      未命中 → 如实返回“未命中”

一个反直觉的决定

缓存未命中时,中台 不会 替子公司去调用官方接口。只有集团后台的查询、手动刷新和批量预热才会真正触达上游。

这样做牺牲了一点“即查即得”的体验,换来的是成本完全可预期:官方配额只由集团一侧消耗,子公司再怎么调用,都不会把预算打穿。配合批量预热,常用的企业数据会被提前沉淀下来。

几个值得提前想清楚的点

  • 字段也要分权限:不同接入方绑定不同的字段包,同一个接口返回的字段范围不一样

  • 配额要分层:子公司 QPS、子公司每日请求、集团每日配额、合同总量,四层各管各的

  • 拦截也要留痕:被风控挡掉的请求同样写日志,否则排查时会少一半信息

回头看,这个产品真正的价值不在“转发请求”,而在把一件原本靠自觉的事,变成了可配置、可统计、可审计的事。

陕ICP备2026005972号-2