执行数据脱敏#
功能可用性
执行数据脱敏适用于 Enterprise 自托管与 Enterprise Cloud 套餐。
自以下版本起可用: n8n 2.16.0
执行数据脱敏可隐藏工作流执行中的输入与输出数据,有助于防止个人数据、认证令牌、财务记录等敏感信息被「能查看工作流但无需看到底层数据」的用户看到。
启用脱敏后,执行的元数据(状态、时间、节点名称)仍可见,但 n8n 会将各节点实际处理的数据负载替换为脱敏标记。
为何使用执行数据脱敏#
工作流常处理不应在工作流构建者或查看者视野之外暴露的数据。常见场景包括:
- PII 与合规:处理客户个人数据(邮箱、地址、财务记录)的工作流需满足 GDPR、SOC 2 或内部安全标准。
- 跨部门工作流:由某团队构建的工作流处理另一团队的敏感数据,而构建者本不应直接访问这些数据。
- 最小权限原则:将数据可见性限制在真正需要的人,而不是所有具备工作流查看权限的人。
在推出执行数据脱敏之前,通常只能在工作流级别完全关闭执行历史,从而无法看到成功或失败状态。执行数据脱敏在隐藏敏感数据负载的同时,仍保留执行监控能力。
配置脱敏设置#
在工作流的工作流设置中按工作流配置脱敏。你需要具备 workflow:enableRedaction 或 workflow:disableRedaction 权限范围(或同时具备两者)才能更改这些设置。
配置步骤:
- 打开工作流。
- 点击右上角的三个点图标
。 - 选择 Settings 设置。
- 找到 Redact production execution data 脱敏生产执行数据 与 Redact manual execution data 脱敏手动执行数据 设置。
- 对每个设置选择 Default - Do not redact 默认 - 不脱敏 或 Redact 脱敏。
- 选择 Save 保存。
脱敏设置说明#
有两个相互独立的开关:
| 设置 | 控制内容 |
|---|---|
| Redact production execution data 脱敏生产执行数据 | 控制是否对生产(非手动触发)执行脱敏。生产执行包括工作流保持活动状态时,由 Webhook、定时任务或其他触发器触发的执行。 |
| Redact manual execution data 脱敏手动执行数据 | 控制是否对手动触发的执行脱敏。手动执行包括在编辑器中选择 Execute Workflow 执行工作流 启动的执行。 |
脱敏后的数据呈现#
当 n8n 对某次执行脱敏时:
- 会将每个节点的全部输入与输出数据替换为空对象。
- 会移除二进制数据(文件、图片)。
- 会脱敏错误信息,仅保留错误类型与 HTTP 状态码(针对 API 错误),便于排查。
- 执行查看器会显示带碎纸机图标的 「Data redacted 数据已脱敏」 提示,而非常规数据表。
- 执行元数据仍可见:节点名称、执行状态(成功/失败)、时间信息与工作流结构。
错误信息
脱敏执行数据时,n8n 也会脱敏错误详情,以防敏感信息通过错误消息泄露。仅保留错误类型(例如 NodeApiError)与 HTTP 状态码,足以判断失败类别而不暴露数据。
显示已脱敏数据#
具备 Reveal execution data 显示执行数据(execution:reveal)权限范围的用户,可临时查看某次执行中被脱敏的数据。实例 Owner 与 Admin 默认拥有该范围。
操作步骤:
- 在执行查看器中打开该次执行。
- 在脱敏数据区域选择 Reveal data 显示数据 按钮。
- 阅读确认对话框,其中说明:
- 系统会在审计日志中记录该操作。
- 仅在有正当理由时才应显示数据。
- 不必要的访问可能违反组织政策。
- 选择 Reveal data 显示数据 以确认。
该次执行的数据会在当前会话中对该用户可见。
审计日志#
日志流会记录所有「显示」操作。提供两种审计事件:
| 事件 | 说明 |
|---|---|
n8n.audit.execution.data.revealed |
用户显示已脱敏执行数据时发出。包含用户、执行 ID、工作流 ID、时间戳、IP 地址及当时生效的脱敏策略。 |
n8n.audit.execution.data.reveal_failure |
显示请求被拒绝时发出(例如权限不足)。包含相同字段及拒绝原因。 |
这些事件可与现有日志流目标(syslog、Webhook、Sentry)集成,用于合规报告与访问审计。
权限范围#
执行数据脱敏引入以下权限范围,可通过自定义项目角色分配:
| 范围 | 用途 |
|---|---|
workflow:enableRedaction |
允许在工作流设置中开启脱敏。在角色配置 UI 中显示为 Enable data redaction 启用数据脱敏。 |
workflow:disableRedaction |
允许在工作流设置中关闭脱敏。在角色配置 UI 中显示为 Disable data redaction 禁用数据脱敏。 |
默认情况下,实例 Owner、Admin 与项目 Admin 拥有启用或关闭脱敏以及显示已脱敏数据的权限。你可以创建自定义角色,向更多用户(例如工作流构建者)独立授予其中一个或两个权限范围。
最佳实践#
如何选择合适的脱敏策略#
| 场景 | 建议设置 |
|---|---|
| 生产环境处理 PII、财务数据或认证令牌的工作流 | 对生产执行数据脱敏 |
| 连测试数据都敏感的工作流(例如使用生产数据副本) | 同时对生产与手动执行脱敏 |
| 处理非敏感数据的工作流,或处于早期开发阶段 | 不脱敏 |
通用建议#
- 先对生产脱敏:对多数处理敏感数据的工作流,仅脱敏生产执行、保留手动执行可见,可在安全与调试便利之间取得较好平衡。
- 必要时脱敏手动数据:若测试环境使用真实或接近生产的数据,请同时启用手动执行脱敏。
- 启用日志流:启用日志流以捕获「显示」相关审计事件,满足合规并监控谁访问了敏感执行数据。
- 在工作流评审中检查脱敏设置:将脱敏策略纳入工作流评审或审批流程,尤其是跨部门或面向客户数据的工作流。