返回博客
Palantir数据安全RBACABAC访问控制数据脱敏合规

Palantir 权限模型深度解析:为什么政府敢把机密数据交给它

深入分析 Palantir 源自军事情报分区的安全模型,包括 RBAC/ABAC/PBAC 三重访问控制、动态脱敏和行列级权限。

Coomia 团队发布于 2025年4月25日14 分钟阅读
分享本文Twitter / X

#TL;DR

  • Palantir 的安全模型源于军事情报分区体系(TS/SCI),将"需要知道"原则(Need-to-Know)嵌入平台底层——不是事后加上的访问控制,而是从第一行代码就设计为安全优先的架构。
  • Palantir 同时实现了 RBAC(基于角色)、ABAC(基于属性)和 PBAC(基于策略)三种访问控制模型,支持行级、列级、单元格级的细粒度权限控制和动态数据脱敏。
  • 这种"安全即架构"的理念正在成为行业标准,Coomia DIP 等开源数据平台也在以更开放的方式实现企业级数据治理和安全控制。

#引言:当"数据泄露"意味着人命

对大多数企业来说,数据安全是一个合规问题——罚款、声誉损失、客户流失。

但对 Palantir 的核心客户来说,数据安全是生死攸关的:

Code
Palantir 客户的数据安全级别:

┌─────────────────────────────────────────────────────┐
│  美国国防部 (DoD)                                     │
│  - 处理 TS/SCI 级别情报(最高机密/敏感分区信息)         │
│  - 泄露后果:特工身份暴露、军事行动失败、人员伤亡          │
│                                                       │
│  中央情报局 (CIA)                                      │
│  - 处理人力情报源信息                                   │
│  - 泄露后果:线人被杀、情报网络瓦解                      │
│                                                       │
│  英国 GCHQ                                            │
│  - 处理信号情报和通信监控数据                            │
│  - 泄露后果:监控能力暴露、国家安全受损                   │
│                                                       │
│  NHS(英国国家医疗服务体系)                             │
│  - 处理 6500 万人的医疗记录                             │
│  - 泄露后果:患者隐私侵犯、法律诉讼                      │
│                                                       │
│  摩根大通                                              │
│  - 处理交易数据和客户金融信息                            │
│  - 泄露后果:监管处罚、市场操纵风险                      │
└─────────────────────────────────────────────────────┘

这些客户不会接受"我们尽力了"。他们需要的是数学上可证明的安全保证

#一、军事信息分区:Palantir 安全模型的起源

#1.1 "需要知道"原则

军事安全的核心不只是"你有没有权限",而是"你是否需要知道":

Code
传统权限模型:               军事安全模型:

问题:你有权限吗?           问题 1:你的安全等级够吗?
  │                           │
  ├─ 是 → 允许访问            ├─ 否 → 拒绝
  └─ 否 → 拒绝               └─ 是 → 问题 2:
                                    你有对应分区许可吗?
                                      │
                                      ├─ 否 → 拒绝
                                      └─ 是 → 问题 3:
                                            你需要知道这个信息吗?
                                              │
                                              ├─ 否 → 拒绝
                                              └─ 是 → 允许访问

即使你是将军(最高权限),
如果你不在这个任务中,你也看不到任务相关的情报。

Palantir 将这个三层检查模型直接嵌入了平台:

Code
Palantir 的三层访问检查:

┌──────────────────────────────────────────┐
│  Layer 1: 身份认证 (Authentication)       │
│  "你是谁?"                              │
│  - SSO / SAML / OAuth 2.0               │
│  - MFA (多因素认证)                       │
│  - PKI 证书 (军事环境)                    │
└──────────────────┬───────────────────────┘
                   │ 通过
                   ▼
┌──────────────────────────────────────────┐
│  Layer 2: 授权 (Authorization)            │
│  "你有权限吗?"                           │
│  - RBAC: 角色检查                         │
│  - ABAC: 属性检查                         │
│  - PBAC: 策略检查                         │
└──────────────────┬───────────────────────┘
                   │ 通过
                   ▼
┌──────────────────────────────────────────┐
│  Layer 3: 数据级控制 (Data-Level Control) │
│  "你能看到哪些数据?"                     │
│  - 行级过滤: 只看到自己部门的数据           │
│  - 列级控制: 敏感列被隐藏                  │
│  - 动态脱敏: 部分数据被模糊处理             │
└──────────────────────────────────────────┘

#二、RBAC + ABAC + PBAC:三重模型协同

#2.1 RBAC——基于角色的访问控制

RBAC 是最基础的权限层——根据用户的角色决定能做什么:

角色读取数据修改数据执行 Action管理权限查看审计
查看者本部门----
分析师全局----
操作员本部门本部门本部门--
编辑者全局全局全局--
业务管理员全局全局全局本部门本部门
安全管理员全局--全局全局
平台管理员全局全局全局全局全局

#2.2 ABAC——基于属性的访问控制

RBAC 告诉我们"你能做什么",ABAC 告诉我们"在什么条件下能做":

场景RBAC 能做吗?ABAC 策略
只看本区域数据需要为每个区域创建角色user.region == data.region
工作时间才能访问做不到time BETWEEN 08:00 AND 22:00
只能在内网访问做不到network.type == "INTERNAL"
合同期内才能看做不到contract.end_date > now()
高密级需要双人做不到data.class >= SECRET AND approvers.count >= 2

#2.3 PBAC——基于策略的访问控制

PBAC 是最高层的策略抽象——定义组织级的安全策略:

Code
组织级策略:

Policy 1: "数据主权"
- 中国区客户数据不能出境
- 欧盟数据遵守 GDPR

Policy 2: "最小权限"
- 所有权限默认拒绝
- 明确授予才能访问

Policy 3: "职责分离"
- 创建者不能审批自己创建的内容
- 数据管理员不能修改审计日志

Policy 4: "时间衰减"
- 临时权限自动过期
- 离职员工权限立即撤销

三种模型的协同评估:

Code
请求: 用户 A 要读取订单 #12345

┌──────────┐
│ RBAC 检查 │ → 用户 A 的角色是"采购员",有读取权限 → 通过
└─────┬────┘
      │
      ▼
┌──────────┐
│ ABAC 检查 │ → 采购员只能看本部门数据
│          │   订单 #12345 属于"华东采购部"
│          │   用户 A 属于"华东采购部" → 通过
└─────┬────┘
      │
      ▼
┌──────────┐
│ PBAC 检查 │ → 组织策略:内网环境才能访问采购数据
│          │   当前网络:内网 → 通过
└─────┬────┘
      │
      ▼
   允许访问(但可能需要数据脱敏)

#三、动态数据脱敏

#3.1 为什么需要"动态"脱敏?

传统的数据脱敏是静态的——创建一个脱敏后的数据副本。问题是需要维护两份数据且所有人看到相同的脱敏结果。

Palantir 的动态脱敏是实时的、基于角色的——同一份数据,不同人看到不同的结果:

Code
动态脱敏——同一数据,不同视图:

客服人员看到:                   风控分析师看到:
┌──────┬──────┬────────┬────┐  ┌──────┬───────────┬────────┬──────────┐
│ 张*  │ ****  │ 138****│ ** │  │ 张三  │ 3101**0123│ 138****│ ¥500,000 │
│     │ ****  │ **5678 │ ** │  │      │ 4         │ **5678 │          │
└──────┴──────┴────────┴────┘  └──────┴───────────┴────────┴──────────┘
 (只看到姓和手机后四位)           (看到更多,但身份证中间脱敏)

#3.2 六种脱敏模式

模式效果适用场景示例
全掩码 (Full)完全替换无权查看张三 -> ***
部分掩码 (Partial)保留部分字符需要核对身份13812345678 -> 138****5678
哈希 (Hash)不可逆转换数据关联分析张三 -> a7b3c9
范围 (Range)显示范围而非精确值统计分析¥523,000 -> ¥500K-600K
泛化 (Generalization)降低精度趋势分析1990-03-15 -> 1990年代
置空 (Null)返回空值完全隐藏张三 -> null

#四、行级和列级安全

#4.1 列级安全

不同角色看到不同的列:

Code
管理员视图 (所有列可见):
┌──────┬──────┬────────┬──────┬──────┬────────┐
│ 工号  │ 姓名  │ 部门   │ 职位  │ 薪资  │ 绩效评分│
├──────┼──────┼────────┼──────┼──────┼────────┤
│ E001 │ 张三  │ 技术部  │ 高工  │ 35000│  A     │
└──────┴──────┴────────┴──────┴──────┴────────┘

普通员工视图 (只看到基本信息):
┌──────┬──────┬────────┬──────┐
│ 工号  │ 姓名  │ 部门   │ 职位  │
├──────┼──────┼────────┼──────┤
│ E001 │ 张三  │ 技术部  │ 高工  │
└──────┴──────┴────────┴──────┘

#4.2 行级安全

不同角色看到不同的行:

Code
全局管理员看到所有数据 (1,247 行):
┌────────┬────────┬──────────┬──────────┐
│ 订单号  │ 区域    │ 客户     │ 金额     │
├────────┼────────┼──────────┼──────────┤
│ PO-001 │ 华东   │ 客户 A   │ ¥52,000  │
│ PO-002 │ 华北   │ 客户 B   │ ¥18,000  │
│ PO-003 │ 华东   │ 客户 C   │ ¥31,000  │
└────────┴────────┴──────────┴──────────┘

华东区经理只看到华东数据 (423 行):
┌────────┬────────┬──────────┬──────────┐
│ 订单号  │ 区域    │ 客户     │ 金额     │
├────────┼────────┼──────────┼──────────┤
│ PO-001 │ 华东   │ 客户 A   │ ¥52,000  │
│ PO-003 │ 华东   │ 客户 C   │ ¥31,000  │
└────────┴────────┴──────────┴──────────┘

关键:用户完全不知道其他区域的数据存在!

#4.3 行列交叉的精细控制

真实场景中,行级和列级安全往往需要组合:

Code
组合效果:华东区客服人员

行过滤: region = "华东"
列过滤: 隐藏 [薪资, 绩效]
动态脱敏: 手机号部分掩码

结果:
┌────────┬──────┬────────┬────────────┐
│ 客户名  │ 区域  │ 等级   │ 手机号      │
├────────┼──────┼────────┼────────────┤
│ 张三   │ 华东  │ VIP    │ 138****5678│
│ 王五   │ 华东  │ 普通   │ 159****2345│
└────────┴──────┴────────┴────────────┘

三层安全措施同时生效:
1. 行过滤 → 只看到华东客户
2. 列过滤 → 看不到敏感列
3. 动态脱敏 → 手机号部分隐藏

#五、查询重写——透明的访问控制

Palantir 最强大的安全特性之一是查询重写——用户的查询在执行前被自动注入安全过滤条件:

Code
用户原始查询:
  SELECT * FROM orders WHERE amount > 10000

查询重写引擎处理后:
  SELECT order_id, region, customer_name,
         MASK(customer_phone, 'partial', 3, 4)
            as customer_phone,
         amount, status
  FROM orders
  WHERE amount > 10000
    AND region = '华东'
    AND classification_level <= 'B1'

用户完全感知不到安全过滤的存在——
他以为自己查询了所有数据,实际上只看到了被允许看的部分。

这种透明的安全控制消除了"开发者忘记加权限检查"的风险。安全是平台的责任,不是应用的责任。

然而,Palantir 的安全能力与其封闭平台深度绑定,企业一旦采用就面临长期锁定。Coomia DIP 的数据治理模块同样实现了行列级安全、动态脱敏和自动化审计,但基于开放标准构建,让企业在获得企业级安全能力的同时保持技术自主权。

#六、安全设计哲学:为什么这种模型有效

#6.1 "安全即架构"而非"安全即插件"

Code
传统方法: 安全是事后加上的

┌──────────┐
│ 应用代码  │ <- 先开发功能
└────┬─────┘
     │ 然后加上
     ▼
┌──────────┐
│ 安全中间件│ <- 容易被绕过
└────┬─────┘
     │
     ▼
┌──────────┐
│ 数据库    │ <- 直接访问 = 绕过安全
└──────────┘

Palantir 方法: 安全是架构的一部分

┌────────────────────────────────────────┐
│              Ontology Layer            │
│  ┌──────────────────────────────────┐ │
│  │ 每次数据访问都经过安全引擎         │ │
│  │                                    │ │
│  │ Object → Permission → Masking     │ │
│  │   |         |          |          │ │
│  │ Storage   RBAC/ABAC  Dynamic      │ │
│  │           /PBAC      Transform    │ │
│  └──────────────────────────────────┘ │
│                                        │
│ 没有"绕过"的路径 — Ontology 是唯一      │
│ 的数据访问通道                          │
└────────────────────────────────────────┘

#6.2 零信任原则

原则实现方式
永不信任,始终验证每次请求都重新评估权限
最小权限默认拒绝,显式授权
假设已被入侵全链路加密 + 审计
纵深防御RBAC + ABAC + PBAC 多层检查
持续监控实时异常检测 + 自动响应

#七、合规认证

Palantir 持有的安全认证:

认证级别含义
FedRAMPHigh可处理美国联邦政府最敏感的非密数据
IL4Secret秘密级军事信息
IL5Mission-Critical关键任务系统
IL6Top Secret最高机密级别
SOC 2 Type II-安全控制独立审计
ISO 27001-信息安全管理体系

Palantir 是极少数能同时满足 IL2-IL6 的软件平台。

#Key Takeaways

  1. Palantir 的安全模型源于军事情报分区体系,这不是营销噱头而是真实的设计起源——"需要知道"原则、分区隔离、多因素认证这些军事级概念被直接嵌入平台架构。RBAC + ABAC + PBAC 三模型协同确保了从角色、属性到组织策略的全维度访问控制。

  2. 动态数据脱敏和查询重写是 Palantir 安全模型最优雅的实现——同一份数据,不同角色看到不同的视图,而开发者不需要在应用代码中编写任何安全逻辑。安全是平台的责任,不是应用的责任。

  3. "安全即架构"正在成为企业数据平台的标准——无论是 Palantir 还是 Coomia DIP,核心理念都是将安全控制嵌入数据访问的唯一通道,而非作为可选的中间件插件。

#想要 Palantir 级别的能力?试试 Coomia DIP

Palantir 的技术理念令人赞叹,但其高昂的价格和封闭的生态让大多数企业望而却步。Coomia DIP 基于相同的 Ontology 驱动理念,提供开源、透明、可私有化部署的数据智能平台。

  • AI 管线构建器:用自然语言描述,自动生成生产级数据管线
  • 业务本体:像 Palantir 一样建模你的业务世界,但完全开放
  • 决策智能:内置规则引擎和假设分析,数据驱动每一个决策
  • 开放架构:基于 Flink、Doris、Kafka 等开源技术栈,零锁定

👉 立即免费试用 Coomia DIP | 查看产品文档

相关文章