AWS 开源 TOLAP:把授权从「能不能调这个工具」下沉到「这个工具能返回哪几列」
9 月 22 日,AWS 开源博客介绍 TOLAP——一套对象级访问控制规范与库,解决的是现有智能体授权链条里被漏掉的一段。文章把问题写得很清楚:主流框架(Bedrock Agents、Google Vertex AI Agents、LangChain)管的是「这个智能体能不能调用这个工具」,而「工具能返回哪些数据」通常被留给工具实现者自己解决;每个团队各做一遍,就等于每个团队各有一个可以出错的地方。TOLAP 补的就是这一层。
它的三条原则决定了实现形状:一是源头强制——策略在数据产生处生效,工具包住数据源并在数据跨出边界前拦截,不存在一条绕过强制的取数路径;二是对象粒度——策略可以点名到列、行、字段、标签、端点、HTTP 方法、相似度阈值、存储前缀与结果条数上限,例如「该用户可查 patients 表、但看不到 SSN 列、只返回其所属区域的记录、email 字段以哈希形式给出」;三是智能体透明——调用方不需要写任何安全相关代码,受限数据干脆不出现在它收到的内容里。作者特意强调这是架构性防御而非行为性防御,因此对提示注入成立:上下文里没有东西可被套出来。
开源的是一整套而非一个库:分三层的版本化策略 schema(策略定义 / 绑定到用户或组并带范围与期限 / 合并后的生效策略,一套 schema 同时覆盖数据库、API、知识库与对象存储四类源)、一份规范性说明(规范签名、强制流水线顺序与 fail-closed 规则,且跨语言行为由共享测试夹具锁定)、.NET / Python / TypeScript 三个 SDK(核心包在三种语言里都是零外部依赖,因为强制引擎要能塞进 Lambda、边缘 worker 或插件而不把依赖树拖进安全路径)、一个参考策略服务器与授权控制台,以及 14 个集成(MCP SDK、Strands、LangChain、LangChain.js、Vercel AI SDK、Mastra、OpenAI Agents、Pydantic AI、Semantic Kernel、Bedrock Agents 等),全部在 CI 里验证对同一策略给出一致结果。
它改变了什么:智能体安全从「提示词层的行为约束」挪到「数据边界上的架构约束」,并且把跨语言一致性当成安全缺陷而非工程瑕疵来对待。边界:TOLAP 不是 MCP server、不说 MCP 协议,它只对自己工具层调用的那个函数提供强制;本条读的是官方博客正文,未复核仓库实现。
原文链接:AWS 开源博客