安全治理与权限
核心观点
Palantir Ontology 的权限不是应用层临时判断,而是 Ontology 架构的一部分。它同时控制:
- Ontology resources:对象类型、链接类型、动作类型等定义层资源。
- Objects and links:具体对象、属性值、链接实例等数据层内容。
Summary
Ontology 权限要回答两个问题:谁能改模型定义?谁能看和改具体业务对象?
两层权限模型
1. Ontology resources
Ontology resources 定义 schema 和能力。
包括:
- Object types
- Link types
- Action types
- Interfaces
- Shared properties
- Object type groups
这类权限决定谁可以创建、修改、发布或管理 Ontology 资源。
2. Objects and links
Objects and links 是 Ontology 里的实际数据。
包括:
- 具体对象实例
- 主键值
- 属性值
- 具体 link 实例
这类权限决定谁能查看、查询、编辑对象和关系。
为什么这对 AI 很重要
当 AI agent 能查询和操作业务系统时,权限边界必须比传统 BI 更严格。
Ontology 的权限机制可以帮助保证:
- AI 只能看到用户本来有权限看到的数据。
- AI 只能调用被授权的 Action 或 Function。
- 写回过程经过校验、审计和治理。
- 不同组织或团队可以安全共享 Ontology 资源。
- 敏感对象、属性和链接不会因为统一建模而失控暴露。
动态安全
Palantir 文档中多次提到 dynamic security。可以理解为权限不是只按静态角色判断,还可以结合对象属性、组织标记、上下文和规则进行动态控制。
可能的判断因素:
- 用户所属组织或团队。
- 对象所属区域、项目、客户或部门。
- 对象状态,例如草稿、已批准、关闭。
- 用户与对象的关系,例如 owner、assignee、manager。
- 动作类型和提交参数。
Action 权限
Action 是写回和副作用的入口,因此权限设计要格外谨慎。
需要考虑:
- 谁可以看到这个 action。
- 谁可以提交这个 action。
- 提交前需要哪些参数校验。
- 是否需要审批或人工确认。
- 这个 action 会修改哪些 object types 和 link types。
- 是否会触发 webhook、notification 或外部系统调用。
- action log 是否记录足够上下文。
治理建议
- 不要把所有业务变更都开放成通用编辑权限。
- 高频、关键、可审计的变更应建模为 Action type。
- 对敏感对象优先设计 object-level security。
- 对跨组织共享场景使用 shared ontology,并明确组织边界。
- 对 AI agent 只暴露必要的 object types、actions 和 functions。
- 用 action log 和 edit history 支撑审计与复盘。
- 把权限规则作为 Ontology 设计的一部分,而不是上线前补丁。
自研系统的权限实现
如果不使用 Palantir 原生权限体系,自研 Ontology 不应把所有授权逻辑集中在单一策略引擎中。推荐按职责组合:
- PostgreSQL RLS:以
tenant_id保证跨租户强隔离。 - OpenFGA/ReBAC:处理用户、团队、项目和具体对象之间的授权关系。
- PBAC:处理金额、状态、时间、网络、密级和风险等动态条件。
- 应用服务:处理字段脱敏、业务不变量和 Action 参数校验。
- 工作流与审计:处理人工审批、重试、补偿和完整追溯。
具体模型、适用边界和渐进式迁移方案参见 OpenFGA 与 PBAC 权限模型对比。
风险点
Warning
Ontology 把组织数据、业务动作和 AI 工具统一在一个操作层中。这个抽象很强,但也意味着建模错误、权限错误或 action 设计错误会放大影响范围。
常见风险:
- 对象建模过宽,导致不该共享的数据被统一暴露。
- Action 权限过松,导致用户或 agent 可以绕开流程写回。
- Function 调用外部系统时缺乏审计。
- AI agent 的工具权限超出实际任务需要。
- 只关注 object type 权限,忽略 link 暴露出的间接信息。
参考资料
- Object permissioning overview
- Architecture center overview
- Action types permissions
- Ontology permissions