새로운 소프트웨어를 구매하지 않고 NIS2를 준수하는 자동화 스택을 구축하는 방법
요약
새로운 보안 플랫폼 구매 없이 셀프 호스팅된 n8n을 활용하여 EU의 NIS2 규정을 준수하는 자동화 스택 구축 방법을 제안합니다. 기존 시스템(Microsoft 365, SAP 등)의 데이터를 통합하여 사고 탐지, 액세스 제어, 감사 추적 등의 운영 요구 사항을 충족하는 자동화 계층을 만드는 것이 핵심입니다.
핵심 포인트
- NIS2 준수를 위해 별도의 보안 플랫폼 구매 없이 기존 시스템 활용 가능
- n8n을 활용한 자동화 계층 구축으로 감사 추적 및 사고 대응 강화
- 데이터 통제권 확보를 위해 SaaS보다는 셀프 호스팅 방식 권장
- 입사/퇴사 프로세스 및 공급망 보안의 자동화된 관리 가능
저는 헬싱키를 기반으로 활동하는 n8n 커뮤니티 앰배서더이자 AutomiQ의 설립자인 Mychel Garzon입니다. 저는 북유럽 기업들이 셀프 호스팅(self-hosted)된 n8n을 통해 비즈니스 프로세스를 자동화하도록 돕고 있습니다. 지난 1년 동안 저는 많은 핀란드 중소기업(SME) 운영자들과 동일한 대화를 나누었습니다. 그들은 NIS2에 대해 읽었고, 규정 준수(compliance)에 대해 걱정하고 있으며, 새로운 보안 플랫폼을 구매해야 한다고 가정합니다.
그럴 필요가 없습니다. 대부분의 경우, 그들이 이미 운영 중인 시스템 — Microsoft 365, SAP, Oracle, Visma — 에 NIS2의 운영 요구 사항을 충족하는 데 필요한 모든 것이 포함되어 있습니다. 부족한 것은 이들을 하나로 묶고 감사 추적(audit trail)을 생성하는 자동화 계층(automation layer)입니다.
이 기사에서는 셀프 호스팅된 n8n을 사용하여 해당 계층을 정확히 구축하는 방법을 설명합니다.
NIS2가 실제로 요구하는 것 (운영 측면에서)
NIS2 (2024년 10월부터 시행되는 EU 네트워크 및 정보 보안 지침)는 EU 전역의 필수 및 중요 엔티티에 대한 보안 의무를 규정합니다. 적용 대상인 대부분의 핀란드 기업에 있어, 자동화가 직접적으로 해결하는 운영 요구 사항은 다음과 같습니다:
- 침해 사고 탐지 및 대응 (Incident detection and response) — 정의된 시간 내에 보안 사고를 탐지, 분류 및 대응해야 합니다 (중대한 사고는 발견 후 24시간 이내에 국가 당국에 보고해야 함)
- 액세스 제어 및 사용자 생애주기 관리 (Access control and user lifecycle management) — 입사/이동/퇴사(joiner/mover/leaver) 프로세스가 문서화되고 감사 가능해야 합니다
- 감사 추적 (Audit trails) — 보안 통제가 작동하고 있으며 액세스 이벤트가 기록되고 있음을 증명해야 합니다
- 공급망 보안 (Supply chain security) — 제3자 액세스가 모니터링되고 제어되어야 합니다
- 비즈니스 연속성 (Business continuity) — 무언가 고장 났을 때 어떻게 해야 하는지에 대한 문서화된 프로세스가 필요합니다
이 중 어느 것도 새로운 플랫폼을 요구하지 않습니다. 기존 플랫폼이 올바르게 구성되어 있고, 플랫폼에서 생성되는 이벤트가 수집, 조치 및 기록될 것을 요구할 뿐입니다.
그것이 바로 셀프 호스팅된 n8n 스택이 수행하는 역할입니다.
NIS2를 위해 셀프 호스팅이 중요한 이유
워크플로(workflows)에 들어가기에 앞서, 인프라(infrastructure) 문제에 대해 짚고 넘어갈 가치가 있습니다.
NIS2가 명시적으로 온프레미스(on-premises) 인프라를 요구하는 것은 아니지만, 데이터와 보안 프로세스에 대한 통제권을 입증할 수 있어야 합니다. 많은 기업의 경우, 워크플로 데이터, 자격 증명(credentials), 실행 로그(execution logs)가 타인의 클라우드에 위치하는 SaaS 자동화 플랫폼을 사용하는 것보다 셀프 호스팅(self-hosted) 인프라를 사용하는 것이 이를 입증하기에 더 쉽습니다.
Hetzner 또는 OVHcloud Finland/EU에서 셀프 호스팅된 n8n을 사용할 경우:
- 워크플로 실행 로그가 귀하의 환경 내에 유지됩니다.
- 자격 증명(credentials)이 귀하의 자체 비밀 관리자(secrets manager)에 저장됩니다.
- 보존(retention), 액세스(access), 삭제(deletion)를 직접 제어합니다.
- 감사인(auditor)에게 귀하의 자체 인프라를 직접 보여줄 수 있습니다.
이는 성숙한 GRC(Governance, Risk, and Compliance) 프로그램을 갖춘 대기업보다는, 컴플라이언스 책임자가 IT 매니저를 겸하는 경우가 많은 중견 기업(mid-market companies)에 더 중요한 문제입니다.
NIS2의 핵심 요구사항을 충족하는 4가지 워크플로
1. 사고 분류 및 에스컬레이션(Incident Triage and Escalation) 워크플로
범위: NIS2 제21조 — 탐지, 분류 및 대응 타임라인을 포함한 사고 처리(incident handling).
기능:
이 워크플로는 Microsoft 365 사서함(또는 전용 보안 편지함), Microsoft Defender 경고, 그리고 선택적으로 티켓팅 시스템(ticketing system)을 모니터링합니다. 잠재적 사고가 발생하면 다음과 같은 작업을 수행합니다:
- AI(GPT-4o 또는 데이터를 온프레미스에 유지하고 싶다면 로컬 Ollama 모델)를 사용하여 심각도(severity)를 분류합니다.
- P1/P2 사고를 즉시 Teams의 보안 채널로 라우팅(route)합니다.
- SharePoint 또는 ITSM에 타임스탬프(timestamped)가 찍힌 사고 기록을 생성합니다.
- 카운트다운 타이머를 시작합니다 — P1 사고의 경우 2시간 이내에 확인(acknowledgment)이 없으면 자동으로 에스컬레이션(escalate)됩니다.
- 탐지 후 22시간이 지나면, 24시간의 NIS2 보고 창(reporting window)이 마감된다는 알림을 보냅니다.
여기서 NIS2 측면의 핵심 가치는 타임스탬프가 찍힌 자동화된 감사 추적(audit trail)입니다. 감사인에게 경고가 언제 수신되었는지, 언제 분류되었는지, 언제 에스컬레이션되었는지, 그리고 어떤 조치가 취해졌는지를 정확하게 보여줄 수 있습니다.
트리거: security@company.com으로의 이메일 또는 Defender 웹훅 (webhook)
↓
AI 분류 노드 (심각도 P1-P4, 카테고리)
...
사용된 n8n 노드: Email Trigger, HTTP Request (Defender API), OpenAI, Microsoft Teams, SharePoint, Wait
2. 사용자 생애주기 관리 워크플로 (User Lifecycle Management Workflow)
범위: NIS2 제21조 — 접근 제어 (access control), 인적 자원 보안 (human resources security).
기능:
입사자/전보자/퇴사자 (Joiner/mover/leaver) 프로세스는 NIS2 감사에서 가장 흔하게 발견되는 사항 중 하나입니다. 기업들은 서류상으로는 올바른 정책을 가지고 있지만, 실행 단계에서는 수동적이고 일관성이 없습니다. 이 워크플로는 전체 생애주기를 자동화합니다:
입사자 (Joiner):
- HR 시스템 (Sympa, Personio 또는 SharePoint 리스트)에 의해 트리거됨
- Azure AD / Entra ID 계정 생성
- 역할 템플릿에 기반한 라이선스 할당
- Teams 채널, SharePoint 접근 권한, 이메일 그룹 생성
- 웰컴 시퀀스(Welcome sequence) 발송 (1일 차, 7일 차, 30일 차)
- 모든 프로비저닝 (provisioning) 작업을 타임스탬프와 함께 기록
퇴사자 (Leaver):
- 퇴사일에 HR 시스템에 의해 트리거됨
- 모든 활성 세션을 즉시 취소
- 라이선스 및 그룹 멤버십 제거
- 사서함을 공유 사서함으로 전환 (또는 정책에 따라 비활성화)
- OneDrive 콘텐츠를 관리자에게 아카이브 (archive)
- 컴플라이언스 (compliance) 기록을 위한 오프보딩 (offboarding) 보고서 생성
여기서 감사 추적 (audit trail)은 핵심적인 NIS2 결과물입니다. 모든 접근 권한 부여 및 취소는 누가, 언제 트리거했는지, 그리고 무엇이 변경되었는지와 함께 기록됩니다.
트리거: HR 시스템 웹훅 (webhook) 또는 예정된 SharePoint 리스트 확인
↓
판단: 입사자 (Joiner) / 전보자 (Mover) / 퇴사자 (Leaver)
...
사용된 n8n 노드: Webhook, HTTP Request (Graph API), Microsoft SharePoint, Microsoft Teams, Send Email, Set
3. 주간 보안 태세 보고서 (Weekly Security Posture Report)
범위: NIS2 제21조 — 모니터링 (monitoring), 감사 및 로깅 (audit and logging), 리스크 관리 (risk management).
기능:
이 워크플로는 매주 월요일 아침에 실행되며, Microsoft 365 환경 전반에서 보안 데이터를 가져와 구조화된 보고서로 컴파일한 후, 보안 채널과 선택적으로 컴플라이언스 담당자에게 전달합니다.
보고서 범위:
- 지난 7일간의 위험한 로그인 (Entra ID Identity Protection)
- 부서별 MFA (다요소 인증) 준수율
- 외부 공유 이벤트 (SharePoint/OneDrive)
- 휴면 계정 (90일 이상 로그인 없음)
- 임계값을 초과한 로그인 실패 시도
- 심각도별 Defender 경고 요약
- 게스트 계정 인벤토리
이것이 바로 NIS2 감사인이 확인하고자 하는 지속적인 모니터링 증거입니다. 일관된 데이터 포인트를 포함한 주간 자동화 보고서는 감사 직전에 수동으로 취합한 스프레드시트보다 훨씬 더 설득력이 있습니다.
트리거(Trigger): 스케줄 (월요일 07:00)
↓
병렬 데이터 수집:
...
사용된 n8n 노드: Schedule Trigger, HTTP Request (Graph API, Defender API), Code, Markdown, Microsoft Teams, Send Email, SharePoint
4. 제3자 액세스 감사 워크플로우 (Third-Party Access Audit Workflow)
범위: NIS2 제21조 — 공급망 보안, 액세스 제어.
기능:
게스트 계정과 외부 협업자는 NIS2의 주요 위험 영역입니다. 이 워크플로우는 매월 실행되며 Microsoft 365 환경 전체의 모든 외부 액세스를 감사합니다:
- Entra ID에서 모든 게스트 계정을 가져옵니다.
- 각 게스트에 대해 마지막 로그인 날짜, 그룹 멤버십 및 SharePoint 액세스 권한을 확인합니다.
- 30일 이상 로그인하지 않은 게스트를 표시(Flag)합니다.
- 민감한 SharePoint 라이브러리에 액세스 권한이 있는 게스트를 표시합니다.
- 계정 소유자(해당 사용자를 초대한 내부 직원)에게 검토 요청을 보냅니다.
- 5일 이내에 응답이 없으면 IT 관리자에게 에스컬레이션(Escalate)합니다.
- 모든 결정 사항(유지/삭제)을 컴플라이언스 감사 목록에 기록합니다.
이를 통해 가장 흔한 NIS2 보안 공백 중 하나인 '권한이 부여된 후 한 번도 검토되지 않은 제3자 액세스' 문제를 해결합니다.
트리거(Trigger): 스케줄 (매월 1일)
↓
모든 게스트 계정 가져오기 (Graph API)
...
사용된 n8n 노드: Schedule Trigger, HTTP Request (Graph API), Loop Over Items, Wait, Send Email, SharePoint, Set
인프라 설정 (The Infrastructure Setup)
위의 네 가지 워크플로우는 모두 단일 셀프 호스팅(Self-hosted) n8n 인스턴스에서 실행됩니다. 제가 핀란드 고객들을 위해 사용하는 최소한의 운영 환경 설정은 다음과 같습니다:
서버 (Server): 독일 Falkenstein (EU) 지역의 Hetzner CX22 (2 vCPU, 4GB RAM) — 월 약 €4. 더 큰 환경을 위해서는 CX32 또는 CX42를 권장합니다.
스택 (Stack):
Docker Compose:
- n8n (메인 애플리케이션)
- PostgreSQL (워크플로우 데이터, 실행 로그)
...
자격 증명 (Credentials): n8n 자격 증명(credentials)으로 저장됩니다 (저장 시 암호화됨). 더 높은 보안 요구 사항이 있는 경우, HTTP Request 노드를 통해 Azure Key Vault 또는 HashiCorp Vault와 통합하십시오.
백업 (Backup): Hetzner Object Storage (S3 호환)로 매일 PostgreSQL 덤프를 수행합니다. 보관 기간: NIS2 감사 추적(audit trail) 목적을 위해 최소 90일 유지합니다.
액세스 (Access): IP 허용 목록(allowlist)이 적용된 Caddy 뒤에 n8n 인스턴스를 배치합니다. n8n UI에 대한 공개 액세스는 허용되지 않으며, 웹후크(webhook) 엔드포인트만 노출됩니다.
이 설정을 통해 모든 워크플로우 실행 데이터, 자격 증명 및 로그를 귀하가 제어하는 인프라 내의 EU 국경 안에 유지할 수 있습니다.
이 내용이 다루지 않는 것
솔직히 말씀드리면: 이 글은 자동화 계층(automation layer)을 다룹니다. NIS2 준수를 위해서는 다음 사항도 필요합니다:
- 서면 정보 보안 정책 (Information security policy)
- 위험 평가 문서 (Risk assessment documentation)
- 직원 보안 교육 기록 (Employee security training records)
- 테스트된 비즈니스 연속성 계획 (Business continuity plan)
- 벤더/공급업체 보안 평가 (Vendor/supplier security assessments)
이것들은 자동화가 지원할 수는 있지만 대체할 수는 없는 프로세스 및 문서화 요구 사항입니다. 전체 NIS2 준수 프로그램에 도움이 필요한 경우, 자동화 계층과 병행하여 인증된 정보 보안 컨설턴트와 협력하십시오.
시작하기
이 워크플로우를 직접 구축하고 싶다면, 네 가지 모두 n8n Creator Hub에서 무료 템플릿으로 제공됩니다. 템플릿을 다운로드하여 자체 호스팅(self-hosted) n8n 인스턴스로 가져온 후, 귀하의 자격 증명으로 구성할 수 있습니다.
만약 누군가가 대신 구축하고 유지 관리해주기를 원한다면, 그것이 바로 AutomiQ가 하는 일입니다. 북유럽 기업들을 위해 주권적 EU 인프라(sovereign EU infrastructure)에 배포되는 고정 가격 자동화 패키지를 제공합니다.
어느 쪽이든 요점은 명확합니다. NIS2 준수를 위해 새로운 플랫폼이 필요한 것은 아닙니다. 이미 보유하고 있는 플랫폼들이 적절하게 연결되고, 모니터링되며, 로그(log)가 기록되도록 하는 것이 필요할 뿐입니다. 이는 조달(procurement)의 문제가 아니라 자동화(automation)의 문제입니다.
Mychel Garzon은 n8n 커뮤니티 앰배서더(Community Ambassador)이자, 핀란드와 유럽 전역의 기업들을 대상으로 서비스를 제공하는 헬싱키 기반의 자동화 컨설팅 기업 AutomiQ의 설립자입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기