KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

05. 权限越宽,模型的一次误判就越昂贵 — keel 龙骨

提示注入是否造成事故,取决于 Agent 最终能做什么。只能读取一个 staging 指标的 Worker 与持有全公司生产管理员 token 的 Worker,面对同一攻击文本会产生完全不同的最坏影响。

提示注入是否造成事故,取决于 Agent 最终能做什么。只能读取一个 staging 指标的 Worker 与持有全公司生产管理员 token 的 Worker,面对同一攻击文本会产生完全不同的最坏影响。

最小权限有多个维度

动作:read_metrics,不是 admin:*
资源:tenant-a/payment-service,不是所有租户
环境:staging,不是 production
时间:10 分钟短期凭据,不是永久 token
通道:只访问监控 API,不允许任意互联网
数量:最多 20 次查询,不允许无限循环
委派:不可再次 handoff,不可扩展 scope

只做“只读/写入”二分还不够。大量敏感数据的只读权限同样能造成严重泄露。

权限在运行时求交集

effective_actions = user.actions & delegation.actions & agent.actions & task.actions
effective_resources = user.resources & task.resources & resource_policy.resources

生产实现通常不会直接用 Python set 表达复杂策略,但交集思维能防止一个常见错误:把父主体和子 Agent 权限取并集。

凭据在最后一刻注入

Agent prompt 和 Task 只携带资源引用,不携带 token。PEP 允许后,credential broker 为 Adapter 签发短期凭据:

audience=config-api
scope=set_pool_limit
resource=tenant-a/staging/payment-service
expires_in=60s

Adapter 不应把凭据放进返回结果、异常消息、trace 或 Persistent Memory。

网络本身也是 capability

允许任意出站 HTTP 意味着 Agent 可能访问:

因此 egress policy、DNS/IP 校验、代理和域名 allowlist 属于权限设计,不只是基础设施细节。

限额阻止级联失控

多 Agent 或循环 Harness 至少限制:

Prompt 中的“请少调用工具”不是配额。超限必须由运行时停止并记录。

检查理解

下一章:网页里的一句话,为什么能劫持整个 Agent?

进入 keel 阅读