Skip to content

执行数据编辑(Execution data redaction)#

功能可用性

数据隐藏功能可在企业自托管和企业云计划中使用。

可用版本: n8n 2.16.0 及以上

执行数据脱敏允许你隐藏工作流执行的输入和输出数据。这有助于保护敏感信息,例如个人数据、身份验证令牌和财务记录,避免被可以查看工作流但不需要看到底层数据的用户访问。

🌐 Execution data redaction lets you hide the input and output data of workflow executions. This helps protect sensitive information like personal data, authentication tokens, and financial records from users who can view the workflow but don't need to see the underlying data.

当你启用编辑时,执行元数据(状态、时间、节点名称)仍然可见,但 n8n 会将每个节点处理的实际数据负载替换为编辑后的指示符。

🌐 When you enable redaction, execution metadata (status, timing, node names) remains visible, but n8n replaces the actual data payload processed by each node with a redacted indicator.

为什么使用执行数据脱敏(Why use execution data redaction)#

工作流通常会处理工作流创建者或查看者在 n8n 之外不应访问的数据。常见场景包括:

🌐 Workflows often process data that the workflow builder or viewers shouldn't have access to outside of n8n. Common scenarios include:

  • 个人身份信息和合规性:处理客户个人数据(电子邮件、地址、财务记录)的工作流需要符合 GDPR、SOC 2 或内部安全标准。
  • 跨部门工作流程:由一个团队建立的工作流程处理另一个团队的敏感数据,而建立者原本无法访问这些数据。
  • 最小权限原则:将数据可见性限制在仅需要的人,而不是所有拥有工作流查看权限的人。

在执行数据脱敏之前,唯一的选项是在工作流级别完全禁用执行历史记录,这会导致无法查看工作流的成功或失败状态。执行数据脱敏在隐藏敏感数据负载的同时保留了执行监控功能。

🌐 Before execution data redaction, the only option was to disable execution history entirely at the workflow level, which removed all visibility into workflow success or failure status. Execution data redaction preserves execution monitoring while hiding the sensitive data payload.

配置编辑设置(Configure redaction settings)#

你可以在工作流设置中根据工作流配置编辑。你需要 管理数据编辑workflow:updateRedactionSetting)权限才能更改这些设置。

🌐 You configure redaction per workflow in the workflow settings. You need the Manage data redaction (workflow:updateRedactionSetting) scope to change these settings.

配置编辑:

🌐 To configure redaction:

  1. 打开工作流。
  2. 选择右上角的三点图标 三点图标
  3. 选择 设置
  4. 找到编辑生产执行数据编辑手动执行数据设置。
  5. 对于每个设置,选择 默认 - 不编辑编辑
  6. 选择 保存

编辑设置说明(Redaction settings explained)#

有两个独立的开关用于控制编辑:

🌐 There are two independent toggles that control redaction:

设置 控制内容
编辑生产执行数据 控制 n8n 是否从生产环境(非手动触发)执行中编辑数据。生产执行包括通过 webhook、计划或其他触发器触发的执行,只要工作流保持激活状态。
编辑手动执行数据 控制 n8n 是否从手动触发的执行中编辑数据。手动执行包括你在编辑器中选择 执行工作流 时启动的执行。

被编辑的数据是什么样的(What redacted data looks like)#

当 n8n 编辑执行记录时:

🌐 When n8n redacts an execution:

  • n8n 用一个空对象替换每个节点的所有输入和输出数据。
  • n8n 会移除二进制数据(文件、图片)。
  • n8n 会编辑错误信息,仅保留错误类型和 HTTP 状态码(针对 API 错误),以便排查问题。
  • 执行查看器显示一个带有碎纸机图标的 “数据已编辑” 指示,而不是通常的数据表。
  • 执行元数据保持可见:节点名称、执行状态(成功/失败)、时间信息以及工作流结构。

错误信息

当 n8n 编辑执行数据时,它也会编辑错误详情,以防止敏感信息通过错误消息泄露。只有错误类型(例如 NodeApiError)和 HTTP 状态代码会保留。这提供了足够的信息来识别失败的类别,而不会暴露数据。

显示已编辑的数据(Reveal redacted data)#

具有 Reveal execution data (execution:reveal) 权限范围的用户可以暂时查看特定执行的已遮蔽执行数据。实例所有者和管理员默认拥有此权限范围。

🌐 Users with the Reveal execution data (execution:reveal) scope can temporarily view redacted execution data for a specific execution. Instance owners and admins have this scope by default.

显示数据:

🌐 To reveal data:

  1. 在执行查看器中打开执行。
  2. 选择显示在已编辑数据区域的显示数据按钮。
  3. 查看确认对话框。它说明了:
    • 系统在审计跟踪中记录该操作。
    • 你只有在有正当理由时才应该透露数据。
    • 不必要的访问可能会违反你组织的政策。
  4. 选择 显示数据 以确认。

该执行的数据在当前会话中对该执行可见。

🌐 The execution data becomes visible for that execution in the current session.

审计日志(Audit logging)#

日志流 跟踪所有显示操作。有两个可用的审计事件:

事件 描述
n8n.audit.execution.data.revealed 当用户显示被编辑的执行数据时,n8n 会发出此事件。包括用户、执行 ID、工作流 ID、时间戳、IP 地址以及生效的编辑策略。
n8n.audit.execution.data.reveal_failure 当 n8n 拒绝显示尝试时(例如,由于权限不足),会发出此事件。包括相同的字段以及拒绝原因。

这些事件可以与你现有的日志流目标(syslog、webhooks、Sentry)集成,并支持合规性报告和访问审计。

🌐 These events integrate with your existing log streaming destinations (syslog, webhooks, Sentry) and support compliance reporting and access auditing.

权限范围(Permission scopes)#

执行数据编辑引入了以下权限范围,你可以通过 自定义项目角色 分配:

🌐 Execution data redaction introduces the following permission scope that you can assign through custom project roles:

范围 目的
workflow:updateRedactionSetting 允许在工作流设置中修改数据屏蔽策略。在角色配置界面中显示为 管理数据屏蔽

默认情况下,实例所有者、管理员和项目管理员有权限启用或禁用编辑以及显示被编辑的数据。你可以创建自定义角色,以授予其他用户(例如工作流构建者)更新数据编辑设置的能力。

🌐 By default, instance owners, admins, and project admins have the permissions to enable or disable redaction and to reveal redacted data. You can create custom roles to give additional users, such as workflow builders, the ability to update the data redaction setting.

最佳实践(Best practices)#

选择正确的编辑政策(Choosing the right redaction policy)#

场景 推荐设置
在生产环境中处理个人身份信息、财务数据或认证令牌的工作流 隐去生产执行数据
即使测试数据也敏感的工作流(例如,使用生产数据的副本) 隐去生产和手动执行数据
处理非敏感数据的工作流,或在初始开发阶段 不隐藏

一般建议(General recommendations)#

  • 从生产环境编辑开始:对于大多数处理敏感数据的工作流程,在保持手动执行可见的同时对生产执行进行编辑,能在安全性和调试的便利性之间提供良好的平衡。
  • 在需要时编辑手动数据:如果你的测试环境使用真实或接近生产的数据,请也启用手动执行编辑。
  • 使用日志流:启用日志流以捕获揭示审计事件。这提供了用于合规性的审计跟踪,并允许你监控谁访问敏感的执行数据。
  • 在工作流审查过程中检查屏蔽设置:将屏蔽政策纳入你的工作流审查或批准流程,特别是针对处理跨部门或面向客户数据的工作流。

安全考虑(Security considerations)#

  • n8n 在 API 级别应用编辑,从不将编辑过的数据发送到浏览器。
  • 当你创建自定义节点时,你可以将特定的输出字段声明为敏感字段(在节点类型定义中使用 sensitiveOutputFields)。n8n 始终会隐藏这些字段,并防止其被泄露,即使是具有查看权限的用户也不例外。
  • 如果编辑服务无法解析节点的类型定义(例如,在卸载某个社区节点后),n8n 会完全编辑该节点的所有输出数据。这种失败关闭的方法可以防止未知节点泄露敏感字段。
  • 编辑不会改变执行数据在数据库中的存储方式。当启用编辑时,底层数据不会被加密或以不同方式存储。编辑控制的是 API 层的可见性。
  • 启用编辑功能时,执行数据也会自动从日志流和日志输出中编辑。