실행 데이터 편집(Redaction)
n8n v2.25데이터 편집(Redaction)은 Enterprise 셀프 호스팅 및 Enterprise Cloud 플랜에서 사용할 수 있습니다. 적용 버전: n8n 버전 2.16.0부터 실행 데이터 편집(Redaction)을 사용하면 워크플로 실행의 입력 및 출력 데이터를 숨길 수 있습니다.
데이터 편집(Redaction)은 Enterprise 셀프 호스팅 및 Enterprise Cloud 플랜에서 사용할 수 있습니다.
적용 버전: n8n 버전 2.16.0부터
실행 데이터 편집(Redaction)을 사용하면 워크플로 실행의 입력 및 출력 데이터를 숨길 수 있습니다. 이를 통해 워크플로를 볼 수 있지만 기저 데이터를 볼 필요는 없는 사용자로부터 개인 데이터, 인증 토큰, 금융 기록 등 민감한 정보를 보호할 수 있습니다.
편집(Redaction)을 활성화하면 실행 메타데이터(상태, 타이밍, 노드 이름)는 계속 표시되지만, n8n은 각 노드에서 처리된 실제 데이터 페이로드를 편집 표시자로 대체합니다.
실행 데이터 편집을 사용하는 이유#
워크플로는 워크플로 빌더나 뷰어가 n8n 외부에서 접근해서는 안 되는 데이터를 처리하는 경우가 많습니다. 일반적인 시나리오는 다음과 같습니다:
- 개인정보 보호 및 컴플라이언스: 고객 개인 데이터(이메일, 주소, 금융 기록)를 처리하는 워크플로는 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) | n8n이 프로덕션(수동으로 트리거되지 않은) 실행에서 데이터를 편집할지 여부를 제어합니다. 프로덕션 실행에는 워크플로가 활성 상태일 때 웹훅, 스케줄 또는 기타 트리거에 의해 트리거된 실행이 포함됩니다. |
| 수동 실행 데이터 편집(Redact manual execution data) | n8n이 수동으로 트리거된 실행에서 데이터를 편집할지 여부를 제어합니다. 수동 실행에는 편집기에서 Execute Workflow를 선택하여 시작하는 실행이 포함됩니다. |
편집된 데이터의 모습#
n8n이 실행을 편집할 때:
- n8n은 각 노드의 모든 입력 및 출력 데이터를 빈 객체로 대체합니다.
- n8n은 바이너리 데이터(파일, 이미지)를 제거합니다.
- n8n은 오류 메시지를 편집하여 문제 해결을 지원하기 위해 오류 유형과 HTTP 상태 코드(API 오류의 경우)만 보존합니다.
- 실행 뷰어는 일반적인 데이터 테이블 대신 분쇄기 아이콘과 함께 "데이터가 편집됨(Data redacted)" 표시자를 표시합니다.
- 실행 메타데이터는 계속 표시됩니다: 노드 이름, 실행 상태(성공/실패), 타이밍 정보, 워크플로 구조.
n8n이 실행 데이터를 편집할 때 오류 메시지를 통해 민감한 정보가 누출되지 않도록 오류 세부 정보도 편집합니다. 오류 유형(예: NodeApiError)과 HTTP 상태 코드만 남습니다. 이는 데이터를 노출하지 않으면서 실패 카테고리를 식별하기에 충분한 정보를 제공합니다.
편집된 데이터 공개#
실행 데이터 공개(Reveal execution data) (execution:reveal) 범위를 가진 사용자는 특정 실행에 대해 편집된 실행 데이터를 일시적으로 볼 수 있습니다. 인스턴스 소유자와 관리자는 기본적으로 이 범위를 가집니다.
데이터를 공개하려면:
- 실행 뷰어에서 실행을 엽니다.
- 편집된 데이터 영역에 표시된 데이터 공개(Reveal data) 버튼을 선택합니다.
- 확인 대화 상자를 검토합니다. 다음 내용을 설명합니다:
- 시스템이 감사 추적에 작업을 기록합니다.
- 정당한 이유가 있는 경우에만 데이터를 공개해야 합니다.
- 불필요한 접근은 조직 정책을 위반할 수 있습니다.
- **데이터 공개(Reveal data)**를 선택하여 확인합니다.
현재 세션에서 해당 실행의 실행 데이터가 표시됩니다.
감사 로깅#
로그 스트리밍은 모든 공개 작업을 추적합니다. 두 가지 감사 이벤트를 사용할 수 있습니다:
| 이벤트 | 설명 |
|---|---|
n8n.audit.execution.data.revealed |
사용자가 편집된 실행 데이터를 공개할 때 n8n이 이 이벤트를 발생시킵니다. 사용자, 실행 ID, 워크플로 ID, 타임스탬프, IP 주소 및 적용된 편집 정책이 포함됩니다. |
n8n.audit.execution.data.reveal_failure |
n8n이 공개 시도를 거부할 때(예: 권한 부족) 이 이벤트를 발생시킵니다. 동일한 필드에 거부 이유가 추가로 포함됩니다. |
이러한 이벤트는 기존 로그 스트리밍 대상(syslog, 웹훅, Sentry)과 통합되며 컴플라이언스 보고 및 접근 감사를 지원합니다.
권한 범위#
실행 데이터 편집은 커스텀 프로젝트 역할을 통해 할당할 수 있는 다음 권한 범위를 도입합니다:
| 범위 | 목적 |
|---|---|
workflow:enableRedaction |
워크플로 설정에서 편집을 켤 수 있습니다. 역할 구성 UI에서 **데이터 편집 활성화(Enable data redaction)**로 표시됩니다. |
workflow:disableRedaction |
워크플로 설정에서 편집을 끌 수 있습니다. 역할 구성 UI에서 **데이터 편집 비활성화(Disable data redaction)**로 표시됩니다. |
기본적으로 인스턴스 소유자, 관리자, 프로젝트 관리자는 편집을 활성화 또는 비활성화하고 편집된 데이터를 공개할 권한을 가집니다. 워크플로 빌더와 같은 더 많은 사용자에게 두 범위 중 하나 또는 모두를 독립적으로 부여하는 커스텀 역할을 만들 수 있습니다.
모범 사례#
올바른 편집 정책 선택#
| 시나리오 | 권장 설정 |
|---|---|
| 프로덕션에서 개인정보, 금융 데이터 또는 인증 토큰을 처리하는 워크플로 | 프로덕션 실행 데이터 편집 |
| 테스트 데이터도 민감한 워크플로(예: 프로덕션 데이터 복사본 사용) | 프로덕션 및 수동 실행 데이터 모두 편집 |
| 민감하지 않은 데이터를 처리하는 워크플로 또는 초기 개발 중 | 편집 없음 |
일반 권장 사항#
- 프로덕션 편집부터 시작하기: 민감한 데이터를 처리하는 대부분의 워크플로에서, 수동 실행을 표시 상태로 유지하면서 프로덕션 실행을 편집하면 보안과 디버깅 용이성 사이의 균형이 적절합니다.
- 필요 시 수동 데이터 편집하기: 테스트 환경에서 실제 또는 프로덕션과 유사한 데이터를 사용하는 경우 수동 실행 편집도 활성화하세요.
- 로그 스트리밍 사용하기: 로그 스트리밍을 활성화하여 공개 감사 이벤트를 캡처하세요. 컴플라이언스를 위한 감사 추적을 제공하고 민감한 실행 데이터에 접근하는 사람을 모니터링할 수 있습니다.
- 워크플로 검토 시 편집 설정 검토하기: 특히 부서 간 또는 고객 대면 데이터를 처리하는 워크플로의 경우, 워크플로 검토 또는 승인 프로세스의 일부로 편집 정책을 포함하세요.
보안 고려사항#
- n8n은 API 수준에서 편집을 적용하며 편집된 데이터를 브라우저로 전송하지 않습니다.
- 커스텀 노드를 생성할 때, 특정 출력 필드를 민감한 것으로 선언할 수 있습니다(노드 유형 정의에서
sensitiveOutputFields사용). n8n은 이러한 필드를 항상 편집하며, 공개 접근 권한이 있는 사용자라도 공개할 수 없습니다. - 편집 서비스가 노드의 유형 정의를 해석할 수 없는 경우(예: 커뮤니티 노드 제거 후), n8n은 해당 노드의 모든 출력 데이터를 완전히 편집합니다. 이 폴드-클로즈드(fail-closed) 방식은 알 수 없는 노드가 민감한 필드를 누출하는 것을 방지합니다.
- 편집은 데이터베이스에 실행 데이터가 저장되는 방식을 변경하지 않습니다. 편집이 활성화된 경우에도 기저 데이터는 암호화되거나 다르게 저장되지 않습니다. 편집은 API 레이어에서 가시성을 제어합니다.
- 편집이 활성화된 경우, 실행 데이터는 로그 스트리밍 및 로깅 출력에서도 자동으로 편집됩니다.