动作类型详解

读写授权(Read/Write authorizations):给动作加安全边界

读写授权(处于 beta 阶段)给动作类型套上两道安全边界:读授权限制动作能直接读取或接收的带标记数据,写授权规定它创建/修改的数据必须满足的最低安全。它们只是"补充",不替代现有权限与提交条件。

原文 Palantir Foundry · Action types 预计阅读 12 分钟 互动演示 + 5 道测验
本文来源 · Source 内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/action-types/read-write-authorizations/
原始标题:Read and write authorizations

一句话速览

读写授权(Read/Write authorizations):给动作加安全边界:读写授权(处于 beta 阶段)给动作类型套上两道安全边界:读授权限制动作能直接读取或接收的带标记数据,写授权规定它创建/修改的数据必须满足的最低安全。

1 read / write authorization
读写授权为动作类型增加安全边界(security boundaries)
2 读取的上限
读授权给动作能读取的数据设了一道额外的上限(upper bound)
3 写入的底线
写授权定义了动作创建或修改的数据必须满足的最低安全
4 强制标记保证与"降级"风险
强制标记(mandatory markings)本应沿数据依赖传播,让衍生数据保留输入的防护
1

什么是 read / write authorization

两道边界,一上一下。

读写授权为动作类型增加安全边界(security boundaries)

  • Read authorization(读授权)限制动作在执行时能读取或直接接收的带标记(marked)数据的上限;
  • Write authorization(写授权)为动作创建或修改的数据设定最低安全要求(minimum security)

它们补充用户现有权限与动作的 submission criteria,但不授予访问、也不替代现有权限或提交条件。

注意:该功能是 beta 阶段,你的 enrollment 上可能尚未提供,平台支持也可能变化。
2

Read authorization:读取的上限

即使你能看,动作也可能读不到。

读授权给动作能读取的数据设了一道额外的上限(upper bound)。它在 Foundry 把值载入参数时生效——包括另一段逻辑调用该动作时,以及 function-backed 动作执行读取时。

如果数据超出了配置的读授权,即使该用户本来能访问它,动作也无法载入那部分数据。当然,应用动作的用户仍须对数据本身有权限;若读授权未配置任何 marking,则除了用户现有访问外,不额外设读边界。

3

Write authorization:写入的底线

低于最低安全,动作会被拦下。

写授权定义了动作创建或修改的数据必须满足的最低安全。Foundry 会校验结果数据的安全,若结果低于配置的最低要求,就阻断(block)该动作。

关键是:写授权不授予用户对 marking 的访问,也不会自动加上任何已配置的 marking,更不会让本就无效的编辑变得合法。用户仍须具备所需权限、在适用处提供有效的 marking 值、并通过 submission criteria。

另外,写授权不对平台托管的写入生效——例如 action log(动作日志)edit history(编辑历史)对象,因此它们的实际安全可能低于写授权。

写授权会授予用户对 marking 的访问、或替代现有权限吗?点击揭晓。
4

强制标记保证与"降级"风险

读写不一致,可能切断标记传播。

强制标记(mandatory markings)本应沿数据依赖传播,让衍生数据保留输入的防护。但动作的输出安全由动作逻辑决定——它可以比输入更高、相等,或更低。读/写授权分别设了动作的上界与下界

若把写授权设得比读授权更宽松,动作就能写出低于其读取边界的数据——这会有意切断(sever)强制标记传播,可能导致数据降级(declassification)。编辑器在读写设置不一致时会显示警告

当读写不一致时,Foundry 会检查保存/发布该动作类型的用户权限:他必须能降级(declassify)被切断的每一个强制标记。检查通过后,动作类型即可执行该降级;且运行时不再重复此检查。

风险:若根本没配置读授权,保存/发布时就不会做降级权限检查——动作可能读到高于写边界的数据并写出更宽松的数据,造成数据外泄(data spill)。因此"只要动作可能读取带标记数据,就配置读授权"。
5

如何配置,以及表单上的状态反馈

开启 Access constraints,分别配读写。

在动作类型编辑器里,启用 Access constraints(访问约束)即可配置授权:启用会初始化两套授权(无 marking),禁用则清空两者。用 Write securityRead security 标签页分别配置;设置不一致时编辑器会警告。若授权里含有你无权查看的值,会显示为已脱敏(redacted)且不可编辑。

提交前,动作表单可显示基于写授权的 Minimum required security(最低必需安全),状态有五种:

动手试:表单上的"最低必需安全"状态
状态
Security passed
目标安全预期满足配置的最低要求。
提示:这只是提前反馈;真正的权威校验在动作提交时由 Foundry 执行,不达标则失败。

一页带走

① 两道边界
读授权设读取上限,写授权设写入底线;只补充不替代。
② 读超限读不到
数据超出读授权,即使用户能看,动作也无法载入。
③ 写不达标就拦
结果低于最低安全则阻断;不对 action log / edit history 生效。
④ 读写别打架
写比读宽松会切断标记传播、致降级;不配读授权恐致数据外泄。

延伸阅读 · 相关页面

按主题横向跳转,不必顺着目录一篇篇读。

常见问题速答 · FAQ

关于「读写授权(Read/Write authorizations):给动作加安全边界」,读者最常问的几个问题。

读取的上限是什么?
读授权给动作能读取的数据设了一道额外的上限(upper bound)。它在 Foundry 把值载入参数时生效——包括另一段逻辑调用该动作时,以及 function-backed 动作执行读取时。
写入的底线是什么?
写授权定义了动作创建或修改的数据必须满足的最低安全。Foundry 会校验结果数据的安全,若结果低于配置的最低要求,就阻断(block)该动作。
强制标记保证与"降级"风险是什么?
强制标记(mandatory markings)本应沿数据依赖传播,让衍生数据保留输入的防护。但动作的输出安全由动作逻辑决定——它可以比输入更高、相等,或更低。读/写授权分别设了动作的上界与下界。
如何配置,以及表单上的状态反馈?
在动作类型编辑器里,启用 Access constraints(访问约束)即可配置授权:启用会初始化两套授权(无 marking),禁用则清空两者。用 Write security 与 Read security 标签页分别配置;设置不一致时编辑器会警告。