公司动态
Havenlon | 杂谈:Agent 时代,权限管理的对象正在从“一个人”变成“一件事”
近期身份与特权访问管理厂商 Britive 对外给出了一套面向 AI Agent 的运行时访问控制方案名为Agentic Runtime Control简称 ARC。这家公司成立于 2018 年长期把“零常驻权限”Zero Standing Privileges当作产品前提——权限在运行时才被创建在任务结束时被收回。ARC 是这条路线向 Agent 的一次延伸。如果只看功能清单它仍然落在企业熟悉的访问控制范围内确认 Agent 身份、判断权限、记录操作、撤销访问。真正值得停下来看一眼的是它介绍自己时用的两个词——intent-bound与task-scoped。它的思路不是提前给 Agent 一个长期存在的高权限账号让它在未来各种任务里反复取用而是等到一项具体工作真正发生时再根据任务、身份、目标和上下文临时生成所需权限任务完成之后权限随即消失。执行过程中控制还会继续向下延伸到具体的 Tool Call、SSH 命令与 SQL 语句一个已经获得数据库读取能力的 Agent如果随后试图执行未经授权的删除操作仍然可能在命令真正抵达数据库之前被拦下。表面上看这只是 Just-in-Time Access 在 AI Agent 身上的一次自然延伸。但把视角拉远一点会发现更基础的东西正在移动。过去权限管理最常问的问题是“这个人拥有什么权限”而在 Agent 时代这个问题正在慢慢变成“这一次任务需要什么权限”。两句话只差几个字背后的安全模型却并不完全相同。一、传统权限体系的基本单位一直是“主体”一家公司的权限表通常是围绕人建立起来的。财务人员可以访问财务系统研发人员可以登录开发服务器管理员拥有更高等级的系统权限。后来随着云计算、自动化与微服务普及“人”又扩展出 Service Account、Workload 以及各种 Non-Human Identity但基本逻辑没有发生根本变化先确定一个主体是谁再决定这个主体原则上能够做什么。这套模式在过去非常合理因为真正完成任务的往往还是人。财务人员虽然拥有付款权限却不会因为今天登录了银行系统就把账户里的钱全部付出去。他知道自己正在处理哪一张发票、应该支付给哪一家供应商、金额是多少以及为什么这笔钱今天应该付。这些信息并没有全部写进 IAM。它们一部分存在于业务流程里另一部分存在于人的判断里。于是传统权限模型其实隐含了一个长期存在、却很少被明说的分工系统负责授予能力人负责决定能力应该在什么事情上被使用。Agent 的出现正在改变这个分工。当一个 Agent 不只读取信息而是能够理解任务、选择工具、调用 API、修改数据库并连续完成多个步骤时过去隐藏在人脑中的那层判断第一次需要被系统化。因为一个 Agent 拥有payment.write权限只能证明它有能力付款却无法证明这一笔钱现在应该付。能力与事由之间的这道缝隙过去由人填补现在它必须被交回给软件。而缝隙有多宽可以用一张发票量出来。二、“可以付款”和“支付这张发票”不是同一种授权假设一家企业让 AI Agent 处理一张供应商发票。人的要求其实非常具体支付供应商 A 的这张发票金额 3 万元。但为了让 Agent 能够工作传统权限系统给它的往往是另一样东西读取供应商数据库、查询账户以及调用支付 API 的能力。两者的差别就是上一章那道缝隙的具体形状。“支付供应商 A 的 3 万元”是一项具体任务包含对象、金额、目的和上下文“拥有支付权限”则是一种抽象能力只告诉系统这个主体原则上能够调用什么。前者有边界后者只有范围。如果 Agent 最终向供应商 B 支付了 3 万元或者向供应商 A 支付了 30 万元从传统权限模型的角度看它甚至未必发生了典型意义上的“越权”——它始终在使用自己合法拥有的 Payment Permission。系统的每一条日志都会显示一切正常。但从任务本身来看事情已经完全不同了。这就是为什么 Agent 可能迫使权限体系重新关注一个过去很少被明确建模的对象工作的边界本身。Britive ARC 目前给出的做法是把 Privilege 与具体工作绑定根据请求者身份、代表谁行动、使用什么工具、传入什么参数、目标是什么以及当前条件来判断这一次请求并在动作真正发生时才生成所需权限任务完成、时间到期或安全信号触发之后权限被撤销。也就是说权限开始不再只是“属于谁”而越来越变成为了什么事情在什么时间以什么范围暂时存在。一旦把“事情”而不是“主体”放到句子中央一条被引用了半个世纪的老原则也会露出它一直存在、却很少被认真兑现的那一层。三、最小权限原则正在重新暴露它更深的一层含义计算机安全领域有一条非常古老的原则Principle of Least Privilege即一个用户或程序只应该获得完成工作所必需的最少权限。它也长期被称作Principle of Least Authority。所以严格来说从 Least Privilege 到 Least Authority 并不是今天才出现的术语演进而是同一条原则的两种表述。但 Agent 正在让这条原则中最容易被略过的一层重新变得重要。现实里的 Least Privilege 通常被实现成这样一个数据库工程师需要工作于是给他数据库权限一个 Service Account 需要完成自动化于是给它一组 Role一个 Agent 未来可能需要调用十种工具于是提前把相应 Scope 配置好。权限已经比 Administrator 小很多因此我们认为它满足了“最小”。问题在于这里的“最小”被算错了对象一个主体完成所有可能任务所需要的最小权限和它完成眼前这一项任务所需要的最小 Authority并不是同一个范围。一个运维 Agent 一整年可能需要执行上百种命令但在“查看某台服务器磁盘空间”这项任务里它真正需要的 Authority 也许只是读取几项状态。如果因为未来可能需要重启服务就让重启能力提前且长期存在那么权限虽然从“无限”缩小到了“一组工作所需权限”却仍然远大于这一刻真正需要的能力。这个差额过去之所以可以被容忍是因为人天然拥有克制。一个人拿着管理员账号不代表他会把看到的每一个按钮都按一遍Agent 却会根据目标、上下文和模型推理自主寻找可用路径。一旦某种能力存在它就可能进入 Agent 的行动空间——不是因为它想越界而是因为它在按定义完成工作。因此对 Agent 而言真正重要的可能不只是给它尽可能少的权限而是进一步追问在这一项任务、这一段时间、这一次动作上它真正需要能够让什么发生而一旦“需要”被限定到“此刻”权限本身的形态也会随之改变。四、权限开始从一种“资产”变成一种“瞬时关系”传统权限体系还有一个很深的习惯权限被理解成一个主体拥有的属性。王某是管理员这个 Service Account 拥有数据库写权限这个 Agent 有权访问 CRM。这类关系一旦建立通常会持续相当长的时间直到有人重新配置或撤销——权限因此更像一份资产被登记、被继承、被遗忘。Task-Scoped Runtime Authorization 表达的是另一种思路Authority 不一定需要长期属于一个主体它可以只在一件事情成立的时候存在。Agent 没有任务时不需要持有高权限任务开始以后只获得这件事真正需要的能力任务进行过程中如果上下文发生变化可以重新评估任务结束以后Authority 消失。这带来一个相当有意思的变化权限不再只是 Identity 的附属物而开始成为 Identity、Intent、Task、Context 与 Time 之间的一种动态关系。这可能非常适合 Agent因为 Agent 本身就是动态的。它今天处理发票下一分钟可能查询库存再下一项任务或许是生成报告。如果我们仍然试图为这样一个主体配置一张静态的“权限总表”最终只有两种结果权限太少Agent 到处被卡住权限足以完成所有任务却又长期持有大量当前根本不需要的能力。围绕任务形成 Authority因而比围绕 Agent 本身不断叠加 Role更贴近自主系统真实的工作方式。不过把权限收缩到任务这一刻只是把问题推到了更靠近现实的地方并没有让它消失。五、但 Runtime Authorization 仍然不是问题的终点假设系统已经确认了所有它能确认的事这是合法 Agent这是合法任务它当前也确实持有完成任务所需的临时权限。仍然还有最后一个问题悬在那里——真正准备发生的这一次动作是否仍然符合原来的任务一项支付任务最初完全合法权限也是围绕这张发票临时生成的。但就在执行前供应商的收款账户被修改了。Identity 没变Task 没变Permission 也没有过期真正变化的是现实状态。这时如果系统仅仅因为“任务已经获得 Runtime Authorization”就继续支付依然可能产生错误结果。这说明 Agent 安全真正完整的链条很可能还要继续往后延伸Identity → Intent → Task → Authority → State → Action → Execution前半段的系统可以确认谁在行动、为什么行动、这项任务需要什么能力越接近现实执行系统越需要回答另一类问题当前的对象、参数和状态是否仍然满足最初那条边界。授权解决的是“可以”执行面对的是“正在”。二者之间永远存在一小段现实可能发生变化的时间。因此 Runtime Authorization 很可能是一个重要进步却未必是最终的安全边界。真正的终点始终是谁拥有让 Action 最终成为现实的权力。六、Agent 时代真正变化的也许是权限管理的基本单位回到最初那张表。过去我们管理权限时很自然地只需要两列谁可以做什么。而 Agent 可能迫使企业在这张表后面继续增加几个维度——为了什么任务针对哪个对象在什么状态下持续多久以及这一次具体动作是否仍然成立。这并不是因为 AI Agent 天生比人危险而是因为它把过去由人类判断承担的大量隐性边界暴露了出来。人的权限长期以来其实也不是完全静态的一位财务负责人虽然拥有支付能力但真正使用这种能力时仍然受到发票、合同、预算、时间和组织程序的约束。只是这些限制大量存在于制度与人的认知之中并没有全部进入计算机权限模型。Agent 把这个问题重新交回给了软件。于是权限管理的基本单位开始从“这个主体能够做什么”逐渐向“为了完成这件事这个主体此刻究竟需要什么能力”移动。Britive ARC 是否会成为最终答案并不重要更值得注意的是它所代表的方向Agent 不应该因为“部署时可能需要某些能力”就长期持有这些能力Authority 开始跟随任务出现在运行过程中被持续约束并随着任务结束而消失。这其实是把一条非常古老的安全原则重新推到了 Agent 时代面前不要给一个主体它可能需要的所有能力只给它完成眼前这件事真正需要的能力。而当软件开始自主行动之后我们还需要再往前走一步不仅要限制它拥有什么更要限制这些能力究竟可以让什么事情发生。