跳至正文

机器翻译。英文版本为权威来源,母语审校尚未完成。

核心概念

覆盖范围与归因保真度

Olivares AI 如何用两个诚实的维度标注每条访问映射边——数据源证明读写的能力有多强,以及访问与单个代理的关联有多牢固

最近更新:

一个夸大自身能力的安全工具比没有工具更糟糕:它给你带来虚假的安全感。因此,访问映射中的每条边都携带两个独立的保真度标签,产品会如实呈现它们——绝不将一条勉强已知的边伪装成一条已证实的边。

这两个轴回答两个不同的问题:

  • 覆盖范围 ——数据源能在多大程度上证明这次访问是还是
  • 归因 ——这次访问与单个代理的关联有多牢固,而非共享身份。

它们独立变化。一个带有原生审计的数据仓库提供清晰的覆盖范围;如果每个代理共用一个服务账户来访问它,归因仍然只是近似的。两个轴都不从另一个推断而来。

覆盖范围:读与写

覆盖范围描述底层存储能告诉我们关于访问读/写性质的程度。它是数据源的属性,而非代理的属性。

  • clean ——存储发出原生、权威的审计,因此读写分类是逐字记录的。包括通过 pgAudit 的 Postgres、通过 CloudTrail(s3.readOnly)的对象存储,以及数据仓库和数据湖(Snowflake、BigQuery、Redshift、Databricks、MSSQL、Oracle),加上内核级 eBPF 的真实数据。
  • lossy ——存储产生边,但较为粗略。文档存储(例如 MongoDB)属于此类:边存在,但读/写区分是近似的。
  • opaque ——存储完全不提供被动的读/写信号。Redis、SQLite 和 D1 无法通过观测来重建,因此边的 mode 标记为 unknown 而非猜测。

还有一个 mixed 层级,用于协作或工具级信号——MCP 工具、HTTP API、代理任务——这些不与某一类存储绑定。

核心规则是:当存储为 opaque 时,读/写分类为 unknown,绝不凭空捏造。而在 lossyopaque 数据源上缺失的边并非证明访问未发生——只是数据源无法证明它发生了。这就是允许与观测的区别。

归因:哪个代理

归因描述观测到的访问与一个具体代理的关联有多牢固。审计日志将活动归因于凭证角色,而非天然地归因于代理——因此这个轴比单纯的信号信任更严格,且采用默认拒绝:没有确定的按代理信号,它就保持低级别。

  • firm ——访问明确解析到一个代理。这需要真正的按代理身份信号:一个 SPIFFE 工作负载 SVID、一个工作负载身份联合的服务账户、一个治理铸造的专用非人类身份,或一个只绑定到一个代理的凭证。
  • approximate ——身份已知,但无法确定单个代理。连接池后面的共享或池化服务账户、模糊的凭证,或仍在等待的按代理关联都属于此类。
  • unknown ——完全无法进行按身份归因。这是非协作后备观测到的 opaque 存储的底线,或者无法与任何身份关联的访问。绝不伪造代理。

因为归因采用默认拒绝,后续更弱的信号永远不能降级一条已确定归因的边——但强信号可以提升弱信号。两个轴也恰好在一个方向上交互:在 opaque 存储上,任何低于 firm 的归因都被拉低到 unknown,而不是将共享账户的猜测伪装成 approximate

因此,按代理身份是高保真映射的硬性依赖。良好的治理意味着为每个代理分发身份——参见身份治理模型

为什么这很重要

标注两个轴的目的是克制。产品不会像对待 clean/firm 边那样,将 lossy/approximate 边标为违规,并且它公开展示 unknownapproximate,而非隐藏它们。一个系统尚无法确定归因的漂移发现会被标记为待调和,而非渲染为已确认的违规。

这就是为什么访问映射可以作为证据而非猜测来信任:每条边在两个维度上准确说明它知道多少。知道得少的地方,它如实说明。

这些标签出现在哪里

两个标签跟随图 API 和 UI 覆盖层中的每条边传递,同时附带产生该边的信号源。读取访问图是一项特权操作,限定于租户范围,并完全受审计。

访问映射图和漂移的确切字段级结构位于产品的类型化接口中,故意不作为 OpenAPI 合约的一部分提供——参见参考模块诚实与局限页面,了解已证明与推断的完整边界。

相关内容

  • 访问映射 ——什么是边以及它如何构建。
  • 允许与观测 ——这些标签所限定的最小权限漂移。
  • 诚实与局限 ——关于运行中、设计阶段和产品有意不做之事的完整合约。

搜索文档