InfoGrab Docs

태스크 러너 강화

셀프 호스팅 n8n 인스턴스에서 더 나은 격리를 위해 태스크 러너를 강화하는 방법을 설명합니다.

태스크 러너 는 Code 노드 에서 코드를 실행합니다. Code 노드 실행은 안전하지만, 이러한 권장 사항을 따라 태스크 러너를 더욱 강화할 수 있습니다. 외부 모드에서 사이드카로 태스크 러너 실행 # 핵심 n8n 프로세스와 Code 노드의 코드 간의 격리를 높이려면 외부 모드 에서 태스크 러너를 실행합니다. 외부 태스크 러너는 별도의 컨테이너로 실행되어 Code 노드에 정의된 JavaScript를 실행하는 완전히 격리된 환경을 제공합니다. Distroless 이미지 사용 # 공격 표면을 줄이려면 distroless Docker 이미지 변형을 사용합니다. Distroless 이미지에는 런타임에 필요하지 않은 패키지 관리자, 셸 및 기타 유틸리티를 제외하고 애플리케이션과 런타임 종속성만 포함됩니다. distroless 이미지를 사용하려면 Docker 태그에 -distroless 접미사를 추가합니다. 예: 2.4.6-distroless . nobody 사용자로 실행 # 향상된 보안을 위해 사용자 및 그룹 ID 65532로 권한 없는 nobody 사용자로 태스크 러너를 실행하도록 설정합니다. 이렇게 하면 컨테이너 프로세스가 루트 권한으로 실행되는 것을 방지하고 보안 취약점으로 인한 잠재적 피해를 제한합니다. 읽기 전용 루트 파일시스템 설정 # 런타임에 컨테이너 파일시스템에 대한 수정을 방지하기 위해 읽기 전용 루트 파일시스템 을 설정합니다. 이는 시스템 파일을 수정하려는 악성 코드로부터 보호하는 데 도움이 됩니다. 태스크 러너는 작동을 위해 여전히 임시 스토리지가 필요합니다. 이를 위해 최소한의 emptyDir 볼륨을 /tmp 에 마운트합니다. 워크플로에 더 많은 임시 공간이 필요하면 그에 따라 볼륨 크기를 늘립니다.