如何构建AI工具的细粒度授权体系?

13 人参与

我最近在公司内部搞安全审计时,意外踩到一个“AI工具授权”坑——Kibana 9.4.4 的 Agent Builder 竟然在调用机器学习功能前,根本没检查用户到底有没有对应权限。想想那种低权限小白突然能跑高级模型的画面,我直接笑出声:这特权提升的潜力,简直太好用了(当然是坏事)。于是,我把这件事当成了构建细粒度授权体系的案例,和大家聊聊怎么避免类似尴尬。

先从“谁能干什么”说起

细粒度授权的核心,就是把每个操作拆到最小粒度,然后把对应的权限明确标记。像 Kibana 里,agent:*、ml:*、space:* 这些通配符权限就太宽了,低权限用户只要有 agent:run,就可能触发 agent:create,从而走到特权路径。我的经验是:角色里只放必需的细项,比如只给 Agent Builder – Run,不顺手给 Create/Update,这样即使被利用,攻击面也被限制在最小范围。

认证域别忘了“唯一性”

ESA‑2026‑124 提到,Agent Builder 判断私有 Agent 所有权时,只比用户名不比 Realm,导致不同域的用户被误当同一个人。我们在审计时,先打开 Elasticsearch 的 realm 配置,确认有没有多个 Realm 共用同一用户名。若有,立刻在权限模型里加入 Realm 维度,让同名用户在不同域之间互不干涉。这样一来,跨域的“误认所有者”就不可能再出现。

Space(空间)里的隔离必须“空间专属”

在 ESA‑2026‑156 里,跨空间的机器学习作业数据泄露让人揪心。我的做法是:在 Kibana Spaces 中,给每个空间单独绑定角色,绝对不要让非管理员拥有全局 ml:* 或 agent:* 权限。比如给某个业务团队的空间只配 Space‑specific 的 ml:read,而把 ml:manage 限在管理员角色。这样即使有人误操作,也只能看到自己空间的数据,根本不可能跨空间读到别人的模型结果。

实时审计是“最后的保险”

细粒度授权不是一次性配置完就完事儿。开启 Kibana 的审计日志,记录所有 /api/agent_builder/ 之类的调用,定期对比异常行为。我们在升级到 9.4.5(甚至 9.5.1)后,跑了一遍审计报告,发现几条可疑的 POST 请求被拦截,幸好及时发现并回滚了错误的角色配置。

小结:从案例到体系

  • 拆解权限:把 agent:*、ml:*、space:* 细化到具体动作。
  • 加入域/空间维度:在所有权判断和空间授权里,都要把 Realm 和 Space 纳入模型。
  • 最小权限原则:角色只授予业务必需的最小权限,避免“跑偏”。
  • 审计监控:开启审计,定期回看日志,及时发现授权链路的异常。

把这些点落到实际的 AI 工具上,就能把“特权提升”这颗定时炸弹拦在门外。下次如果你们的产品要引入类似的 AI 自动化功能,记得先把授权链路拉细、拉严,免得以后像我一样,半夜被安全告警吓醒。祝大家玩得开心,也玩得安全!

参与讨论

13 条评论
  • 栀子

    Kibana 这权限漏洞确实吓人,差点就出大事了

    回复
  • 光影魔咒

    细粒度授权虽然麻烦,但为了安全必须得做

    回复
  • 孤月独白

    Realm 维度这个细节太容易漏了,得回头查查现有配置

    回复
  • 杞人忧天

    跨域用户名相同导致误判,这个坑太隐蔽了

    回复
  • 红砖屋

    审计日志真的是最后一道防线,不能省

    回复
  • 冰刃无痕

    我们团队也刚升级,正愁怎么配置空间隔离

    回复
  • 枫叶流丹

    最小权限原则听起来简单,落地时真容易漏项

    回复
  • 数字陶艺师

    这类权限问题,最好把越权回归测试也接进升级流程

    回复
  • 善良的月光

    通配符权限确实省事,回头清理起来才头疼。

    回复
    1. Tiger猛虎

      @ 善良的月光 权限一开始拆细点,后面排查也省心;最怕通配符一路叠上去,最后谁都不敢删。

      回复
  • 沧海刀尊

    Realm 维度这点平时真容易忽略,同名账号还挺隐蔽。

    回复
  • 淡墨题帕

    千问 审计日志这块确实关键,半夜被告警吓醒的痛谁懂

    回复
    1. qianwen

      @ 淡墨题帕 哈哈,半夜被审计告警吓醒确实是安全人的日常了,日志这块真不能省。

      回复