
写完安全最佳实践那篇之后,接下来的两个多月里,我被问得最多的一句话是:
"原则我们都知道——统一身份、最小权限、高危操作二次确认。可具体到实施,还是一片空档。"
空档集中在三处。
第一处,权限挂在谁身上说不清。 传统权限模型里,权限授给人。Agent 不是人,它没有岗位、没有工龄,也不会自己想起来"我该收敛一下"。给 Agent 配权限时,团队常见做法是照着人的岗位复制一份——结果就是权限长期虚高,而且永远没有回收时机,因为没有人会为 Agent 办离职。
第二处,多 Agent 一协作,权限就开始漏。 单个 Agent 权限收敛得再好,一旦出现"A 委托 B 去办",事情就变了。B 拿到了 A 的权限,而 A 本来就可能是被过度授权的。权限在委托链上是累加的,风险也是。
第三处,日志记下来了,但没人能看懂。 常见做法是打一行文本:"用户 X 调用了工具 Y"。真出事要复盘时,你发现无法回答最关键的那个问题——它当时为什么这么做、依据的是哪条指令、经过了谁的确认。日志量大,但不可回放,等于没记。
这三处空档,正好对应 OWASP《Top 10 for Agentic Applications》里的三条:ASI03 身份与权限滥用、ASI09 人机信任被利用、ASI10 失控 Agent。这份清单由 OWASP GenAI 安全项目在 2025 年 12 月发布、标注为 2026 版,是继《LLM Top 10》之后专门面向"能自主调用工具的 Agent"的威胁框架。
有个细节很说明问题:把这份清单横着读,会发现日志类控制反复出现。比如 ASI09(人机信任被利用)对应的主要控制里就有日志类要求,ASI10(失控 Agent)的主要控制更是以签名审计日志、行为监控、熔断开关和凭证吊销为首要手段;一份第三方控制映射统计显示,ASI10 的核心控制项中日志类占了两项,还有两项直接指向检测响应(来源:AI Secured by Design 的 OWASP 控制映射,2026)。另有第三方逐条梳理统计称,十条风险里九条把日志或监控列为缓解手段、七条要求人工审批(来源:AI Sigil,2026;此为该站自行统计口径,非 OWASP 官方计数,仅供参考)。
这说明对 Agent 安全而言,日志和审批不是可选项,而是几乎所有风险的公共底座。

本篇给出三块可落地的设计,我把它概括成一句话:权限要能自动过期,日志要能回放,告警要能定位。
不再给 Agent 挂一份长期权限,而是把权限授给一个三元组:
(发起人) × (会话/任务 ID) × (工具名)含义是:某人发起的某个具体任务,可以调用某个具体工具,仅此一次。任务结束,权限自动失效。

这一改动的关键收益不是"更安全"这种空话,而是权限有了生命周期。传统 RBAC 最难的不是授权,是回收;而按任务发权限,回收就是自然结果——任务关闭即关闭,不需要有人记得去撤销。
这是我认为 Agent 场景最反直觉、也最容易出事的一条。
当 Agent A 把任务委托给 Agent B 时,B 获得的权限应该是 A 权限与 B 自身权限的交集,而不是并集,更不是直接继承。

OWASP 在 ASI03 里给的场景几乎就是这个形状:一个高权限 Agent 把完整凭证无意间共享给了低权限的下游 Agent,于是后者能访问到远超自身职责的数据(来源:OWASP《Top 10 for Agentic Applications》2026 版,ASI03)。该清单所列缓解措施中与本文主张方向一致(此处为转述,非逐字原文),包括检测传递性权限继承并撤销过期授权、为每个 Agent 分配独立且受限的身份并配短期凭证两条。
换句话说,"委托链权限只能衰减"不是我编的保守做法,而是这份清单开出的处方。 我只是把它落成了具体配置:一句话记住——委托是收权,不是扩权。 如果设计评审里出现"下游继承上游权限",那基本可以直接判定为高危。
日志的目标不是"证明我们留了记录",而是让人能重放当时的决策链路。OWASP 的原则表述得很直白:如果无法回放一个决策为什么被做出,你就无法审计、无法调试、也无法防御(来源:OWASP Top 10 for Agentic Applications 2026,Observability 原则)。
所以日志字段的取舍标准只有一条:这个字段能不能帮我在三个月后解释当时的决策?
不展开数据库设计,只给字段骨架(示意,非可直接运行的建表语句):
表一 · 工具权限清单
字段 | 说明 |
|---|---|
工具名 | 与实际注册名严格一致,错字等于放行 |
所需参数范围 | 例如"仅允许 SELECT"、"仅允许写入指定目录" |
数据分级上限 | 该工具能接触的最高数据等级 |
风险等级 | 可逆 / 难逆 / 不可逆(见 3.3) |
默认状态 | 默认关闭,任务内显式开启 |
表二 · 任务授权单
字段 | 说明 |
|---|---|
任务 ID | 与会话绑定,任务终止即失效 |
发起人 | 真实自然人身份,不允许匿名发起 |
授权工具清单 | 本任务允许的工具集合 |
有效期 | 起止时间,到点自动失效 |
审批记录 | 高危工具的审批人与时间 |
表三 · 委托关系表(多 Agent 场景必备)
字段 | 说明 |
|---|---|
上游 Agent / 下游 Agent | 委托双方 |
权限传递方式 | 固定记录为「交集」而非「继承」 |
委托有效期 | 不超过上游任务有效期 |
委托层数上限 | 建议设硬上限,防止无限传递 |
📌 踩坑提示:我见过把"权限有效期"写成空的。空有效期在实现上通常等价于"永久有效",而这正是权限黑洞的开始。上线前第一件事:检查所有授权记录的有效期字段是否有值。
这是本篇最想给出去的一份可直接抄的字段清单:
# | 字段 | 为什么要 |
|---|---|---|
1 | 时间戳(含时区) | 排障与合规留存的基准 |
2 | 任务 ID / 会话 ID | 把散落动作串成一条链 |
3 | 发起人身份 | 责任归属的终点是自然人 |
4 | 执行 Agent(含版本) | 换模型后行为变化可对比 |
5 | 调用工具名 | 定位能力面 |
6 | 参数摘要(脱敏) | 判断"做了什么",不是"说了什么" |
7 | 指令来源标记 | 关键字段,见下 |
8 | 命中的权限策略 ID | 事后能复盘授权判断对不对 |
9 | 返回状态(成功/失败/被拒) | 被拒记录往往比成功记录更有价值 |
10 | 耗时 | 识别异常循环 |
11 | 是否经过人工确认 / 确认人 | 对应高危操作的责任链 |
12 | 数据分级标记 | 证明敏感数据经过哪条链路 |
13 | 上下游委托关系 | 多 Agent 场景还原链路 |
14 | 日志签名 | 防篡改,见 3.4 |
第 7 项单独说一下,它是 Agent 场景独有的。 一条指令可能来自三种地方:可信的编排层发起、外部内容里夹带(典型的间接提示词注入)、或前序步骤的产物。只记"做了什么"而不记"指令从哪来",就无法区分"系统正常执行"和"被内容劫持"。OWASP 在 ASI01 目标劫持的缓解手段里,把"验证指令来源"列为首要控制——而验证的前提是先在日志里记下来源。
同样是"对外操作",风险差别巨大。建议按可逆性分三级:
级别 | 定义 | 审批要求 | 日志要求 |
|---|---|---|---|
可逆 | 读取、检索、生成本地草稿 | 无需审批 | 常规字段 |
难逆 | 修改共享文档、发送内部通知、写入业务库 | 任务内一次性授权 | 增加审批人与参数明细 |
不可逆 | 删除、外发至外部、支付、权限变更、对外发布 | 逐次人工确认,不可批量授权 | 全字段 + 签名,不可删除 |
为什么不可逆级必须逐次确认、不能批量预授权?因为 OWASP 把人在环列为核心原则之一:转账、删文件、对外发布这类动作,无论 Agent 多有把握,都应经过人工检查点(来源:OWASP Top 10 for Agentic Applications 2026,Human Approval 原则)。批量预授权本质上是把审批责任前置摊薄,出了事追不到具体的人。

日志一旦 Agent 自己能改,审计就失去意义——所以日志要写到 Agent 无权访问的独立系统,并对记录做签名。OWASP 在 ASI10(失控 Agent)的控制措施里明确列出签名审计日志、行为监控、熔断开关、凭证吊销四项,其中两项正是本节要解决的。
留存期限不能凭感觉定,而且这条规矩刚刚变了——引用旧条文会出事,先说这一点。
《中华人民共和国网络安全法》已于 2025 年 10 月 28 日经十四届全国人大常委会第十八次会议修改通过,自 2026 年 1 月 1 日起施行。修订后,原第二十一条变为第二十三条,内容延续了"等级保护义务"的框架,其中第(三)项仍是那句老话:采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月。
变化大的是罚则。原第五十九条已变为第六十一条,修订后罚则显著加重,并首次将责任穿透至直接负责的主管人员和其他直接责任人员,对关键信息基础设施运营者的处罚上限更高。具体数额以修订后官方条文为准。
同法还新增了第七十三条的合规缓释机制:违法行为轻微并及时改正、没有造成危害后果的,不予行政处罚;主动消除或减轻危害后果的,应当从轻或减轻处罚(依据《行政处罚法》第三十二条、第三十三条)。
📌 这一条对本文的意义:第六十一条把责任从"公司被罚"穿透到了"直接负责的主管人员和其他直接责任人员"。也就是说,日志留存不再只是IT 部门的事——制度里没人签字、没人复核,最后被追责的是签字的那个人。这条我建议直接写进内部制度,省掉每次论证。
六个月是法定下限,不是建议值。 但也别把它当成"及格线"就完事:新法第七十三条给的是"主动整改可减免",不是"没出事就没事"。
内容 26 讲了"要有行为基线告警",但没讲怎么定阈值。踩过坑之后我的做法是三条:
审批疲劳。 逐次确认如果全靠人,很快会变成闭眼点"同意"。解法是把确认设计成批量预览 + 差异高亮:一次列出这批动作的影响对象,异常项单独标出来让人只审异常,而不是审全部。
信任被利用。 这是 ASI09 专门列的风险:人会过度信任一个表达流畅的 Agent,从而批准有害动作。解法是审批界面上必须显示动作的真实影响(哪个文件、发给谁、涉及多少条记录),而不是显示 Agent 给出的理由。理由可以是 Agent 编的,影响不会。
这部分我先说方法,再谈数字。
方法上:新接一个 Agent,我们现在的顺序是——先建工具权限清单并标风险等级,再开授权单(有效期必填),最后才允许跑任务。没有权限清单的 Agent 不许上线。 这条内部规则听起来死板,但它把"权限设计"从上线后的补救变成了上线前的必答题。
效果上(引第三方公开报告,非本人实测):OWASP《State of Agentic AI Security and Governance》v2.01(2026 年 6 月发布)追踪了 53 个 agentic 项目,其中 28 个是编码类 Agent;公开漏洞建议最多的几个项目依次是 n8n(57)、Claude Code(22)、AutoGPT(15)、Dify(13)、Roo-Code(11)。这份清单本身不说明我的防护做得多好,但它说明一件事:能自主调用工具的系统,出问题不是偶发,是常态。
同一份报告还有两个数字我建议管理层看一眼。其一,提示词注入出现在 OWASP Agentic Top 10 十类风险中的六类——说明它不是十个独立的 bug,而是同一个架构问题的十种表现:模型把系统指令、用户输入和外部检索内容当成同一串 token,没有可靠办法区分哪些是"命令"、哪些是"数据"。其二,只有 37% 的组织报告自己有任何影子 AI 检测策略——也就是说,多数企业连自己环境里跑了哪些 AI Agent 都说不清(来源:Help Net Security、Cyber-ivy 对 OWASP v2.01 的报道,2026-06)。
企业侧的 preparedness 数字同样值得看。Cisco《State of AI Security 2026》报告(2026 年 2 月发布)显示:83% 的组织计划把 agentic 能力部署到业务职能中,但只有 29% 认为自身已准备好为这类部署提供安全防护(来源:Cisco 官方博客《Identity is the Battleground》与 Help Net Security、VentureBeat 报道交叉印证)。
McKinsey《The State of AI in 2025: Agents, Innovation, and Transformation》(2025 年发布)给出的判断同样值得细看:多数受访组织已在试验 AI Agent,其中一部分已在一两个职能中规模化;但相当比例的使用者报告至少出现过一项负面后果,其中 AI 输出不准确是最常见的一类;企业需管理的 AI 相关风险数量也较 2022 年明显上升。该报告数据本轮未核验到公开官方出处,此处仅作定性引用。
我的判断是:83% 想上、29% 有准备、过半企业已经出过问题——这三者摆在一起,说明这不是"要不要做"的问题,而是"准备够不够"的问题。而"准备"里最便宜的一项恰恰是日志和权限设计,因为它不需要额外预算,只需要改流程。对我们这种刚开始推的企业职能条线来说,结论很直接:早做比晚做便宜得多,因为权限一旦发出去再收,牵涉的是业务连续性,不是技术问题。
小团队没人做权限治理,先做哪一步?先做工具权限清单 + 风险分级。这一步不需要专职安全岗,一个下午能列完,但它决定了后面所有配置的上限。没清单直接授权,等于没设防。
权限收得太紧,Agent 什么都干不了怎么办?那是分级没做细,而不是权限原则错了。把工具按"读 / 写 / 删 / 外发"拆开,前两类放开,后两类收紧。真正需要审批的只有少数几个动作,绝大多数任务应该无感通过——审批只该拦少数情况,否则它一定会被绕过。
日志存了这么多,隐私怎么合规?日志记"参数摘要 + 数据分级标记",不记原始敏感内容本身。要能回答"当时处理了什么数据、走的是哪条链路",但不必把原文再存一份。存元数据,不存内容。
多 Agent 委托层数一般设几层?我这边设的是硬上限,宁可浅。委托每多一层,权限面和排障难度都是乘上去的。如果业务确实需要更深,先问一句:这几层能不能合成一层?
告警太多接不过来怎么办?先看是不是阈值设在了绝对值上——早期系统样本不足,绝对阈值必然噪音大。改成相对基线偏离 + 只对三类高价值行为告警(触碰不可逆工具、权限被拒、外部指令触发敏感工具),量会下来一个数量级。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。