
📌 이 글의 핵심 요약
- 무슨 문제인가: Databricks 글로벌/멀티 테넌트 환경을 운영하면서 비인가자의 접근, 불필요한 퍼스널 토큰 남용, 보안 취약점 노출을 수동으로 일일이 감시하기 어려웠음.
- 어떻게 해결했나: Databricks가 생성하는 시스템 감사 로그(Audit Log)를 자동으로 수집·적재하고, Python API와 Teams 알림을 연동하여 비인가 접근 및 보안 위협을 실시간으로 감지하는 데이터 거버넌스 자동화 시스템을 구축함.
- 무슨 효과를 얻었나: 보안 감사(Audit) 업무를 100% 자동화하여 리소스를 제로화하고, 개인정보(PII) 유출 및 비인가 토큰 사용 등 데이터 플랫폼의 보안 위협을 실시간으로 철통 방어함.
안녕하세요, 주형권입니다. 정말 오랜만에 블로그로 인사 드립니다.
그동안 밀려드는 현업과 하루가 다르게 쏟아지는 AI 기술들을 쫓아가느라 도무지 글을 쓸 여유가 없었습니다. 그리고 개인적으로 '2세 탄생'이라는 제 인생 최고의 축복이자 엄청난 변화까지 맞이하면서, 하루하루가 어떻게 지나가는지 모를 정도로 치열하고 정신없는 시간을 보냈습니다.
하지만 그렇게 육아와 업무, 그리고 새벽 스터디를 병행하며 보낸 시간들이 모여 꽤 의미 있는 결과물을 만들어 냈습니다. 오랜만의 복귀인 만큼, 그동안 빈 화면에 쌓아두기만 했던 저만의 실전 인사이트를 꾹꾹 눌러 담아 더욱 깊고 알찬 내용으로 돌아왔습니다.
오늘 이야기할 주제는 바로 데이터 플랫폼의 심장, Databricks 글로벌 환경에서의 철통 보안 자동화입니다.
💡 왜 이 시스템을 직접 만들었을까?
최근 데이터 기반 의사결정이 기업의 핵심이 되면서, Databricks는 저희 데이터 플랫폼의 중심으로 굳건히 자리 잡았습니다. 하지만 글로벌 서비스를 운영하며 여러 리전(한국, 미국, 유럽 등)에 분산된 워크스페이스를 관리하다 보니 심각한 고민이 생겼습니다.
바로 "민감한 개인정보(PII)를 어떻게 안전하게 보호하고, 전 세계에서 들어오는 비인가 접근을 어떻게 중앙에서 통제할 것인가?" 였습니다.
시중에는 훌륭한 상용 보안 솔루션들이 많지만, 도입 비용이 수천만 원에 달하거나 아키텍처가 너무 무거워진다는 단점이 있었습니다. 그래서 저는 데이터 엔지니어의 관점에서 접근했습니다. "기존 인프라(Airflow)와 Databricks의 Native 기능, 그리고 AI를 활용해 월 $25 이하의 극단적으로 낮은 비용으로 강력한 데이터 거버넌스를 확보해 보자" 라는 생각으로 해당 프로젝트를 진행 했습니다. 그렇게 탄생한 저의 글로벌 3개 리전 보안 모니터링 파이프라인 구축 노하우를 지금부터 본격적으로 공유합니다.
🛡️ 1. 아키텍처에 녹여낸 4가지 핵심 보안 철학
이 시스템은 단순히 로그를 모으는 것을 넘어, 철저한 사내 보안 원칙을 아키텍처 전체에 녹여냈습니다.
| 🔐 보안 원칙 | 📝 상세 내용 및 구현 방안 |
| Zero Trust Network | 모든 IP는 기본적으로 비인가 상태로 간주하며, Unity Catalog 내 화이트리스트(ip_whitelist)에 명시적으로 등록된 IP만 허용합니다. |
| 최소 권한 원칙 (Least Privilege) | PII 데이터는 업무 목적에 한해 접근 가능하며, 로컬 다운로드나 외부 스토리지 등 Databricks 외부로의 반출은 원칙적으로 금지합니다. |
| 실시간 감사 (Continuous Auditing) | 글로벌 전체 워크스페이스의 시스템 감사 로그(system.access.audit)를 Airflow로 스케줄링하여 자동 스캔합니다. (💡 실무 Tip: Databricks 시스템 테이블 로그가 최대 3시간까지 지연 적재되는 현상이 있어, 1시간 주기로 돌되 6~24시간 앞부분의 로그를 넉넉하게 덮어쓰며 스캔하는 멱등성(Idempotency) 방식을 택했습니다.) |
| 책임 추적성 (Accountability) | 위반 감지 시 즉시 Teams 알림과 함께 *계정 소유자를 직접 멘션(@)*하여 소명 의무를 부여합니다. 골든타임을 놓치지 않는 것이 핵심입니다. |
⚙️ 2. 듀얼 파이프라인 아키텍처: 어떻게 탐지하는가?
이 시스템은 PII 접근 모니터링과 비인가 IP 접속 모니터링이라는 두 가지 파이프라인으로 나뉩니다. 위반 종류는 다르지만, 본질적인 흐름은 [로그 수집 ➡️ 위반 판정 ➡️ Teams 알림 및 중앙 집계(KR)]라는 일관된 패턴을 갖도록 설계하여 향후 유지보수와 확장을 극도로 단순화했습니다.

💡 Architecture Point: 확장성을 고려한 단일화된 설계 패턴
아키텍처 다이어그램을 보면 알 수 있듯, 저는 두 가지 복잡한 보안 위협(PII 접근, 비인가 IP 접속)을 다루고 있지만 전체 시스템의 구조는 놀랍도록 단순하고 일관되게 설계했습니다. 위반 종류는 다르지만 본질적인 흐름은 [로그 수집(Databricks) ➡️ 위반 판정(AI/규칙) ➡️ Teams 알림 및 중앙 집계(Unity Catalog)]라는 하나의 단일 파이프라인 패턴을 공유합니다.덕분에 향후 새로운 형태의 보안 위협 모니터링 규칙이 추가되더라도, 이 견고한 뼈대 위에 레고 블록처럼 손쉽게 얹을 수 있는 강력한 확장성을 자랑합니다.
🕵️ 파이프라인 1: AI 기반 PII(개인정보) 접근 모니터링
단순히 특정 테이블을 조회했는지가 아니라, 어떤 데이터에, '어떤 의도'로 쿼리를 실행했는지가 핵심입니다. 이 파이프라인을 정교하게 구축하기 위해, 저희는 로그를 수집하기 전 가장 먼저 데이터 자산 전체에 대한 철저한 분류 작업부터 시작했습니다.
- 사전 PII 컬럼 태깅 (Data Tagging):
단순히 이름, 이메일, 전화번호 등 범용적인 개인정보뿐만 아니라, 시스템이 쉽게 인지하기 어려운 우리 회사만의 특화된 민감 정보도 존재합니다. 단 하나의 개인정보 유출 사각지대도 남기지 않기 위해, 사내 수많은 테이블의 PII 관련 컬럼을 일일이 식별하고 명시적인 메타데이터 태그(Tag)를 부여하는 사전 작업을 완벽히 수행했습니다. - 데이터 수집:
태깅된 메타데이터를 기반으로, 각 워크스페이스의 Query History API를 통해 사전에 정의된 PII 컬럼에 접근한 모든 쿼리 이력을 누락 없이 수집합니다. - AI(LLM) 의도 판정:
Databricks 내장 AI Functions(LLM)를 활용해 수집된 쿼리의 문맥을 분석합니다. 이를 통해 해당 쿼리가 내부적인 단순 분석용 조회(SAFE)인지, 아니면 외부 반출이나 파일 다운로드 등 규정 위반(VIOLATION) 시도인지 AI가 자동으로 의도를 분류합니다. - 즉시 알림:
VIOLATION으로 판정될 경우, 파이프라인이 즉시 Teams Adaptive Card를 생성합니다. 위반 당사자를 직접 멘션하고, 어떤 테이블의 어떤 컬럼에 접근했는지에 대한 상세한 보안 경고를 발송합니다.

🌐 파이프라인 2: KIC 중앙 집중형 비인가 IP 접속 모니터링
미국(US)과 유럽(EU) 등 글로벌 워크스페이스의 모든 접근 이력을 본사가 있는 한국(KR) 리전으로 모아 중앙에서 통제합니다.
이 파이프라인의 핵심은 '모든 접근을 의심한다'는 Zero Trust 사상을 바탕으로, 화이트리스트 테이블을 직접 구축하여 Databricks로 향하는 모든 IP 접속을 전수 감시하는 데 있습니다.
- 화이트리스트(Whitelist) 기반 전수 감시:
회사에서 인가된 정상 IP 및 CIDR 대역을 담은 중앙 화이트리스트 테이블(ip_whitelist)을 구축했습니다. 각 리전에서 발생하는 system.access.audit 감사 로그의 모든 IP 접속 이력을 이 화이트리스트와 1시간마다 전수 대조(Cross-check)합니다. - 글로벌 탐지 및 로컬 저장:
전수 대조 결과, 화이트리스트에 명시적으로 등록되지 않은 모든 접속은 즉각 '비인가 IP'로 식별됩니다. 이렇게 탐지된 위반 내역은 우선 각 리전(한국, 미국, 유럽)의 로컬 Checkpoint 테이블에 1차로 저장됩니다. - 한국(KR) 중앙 집계 (통합 증적 보존):
이후 파이프라인은 탐지된 글로벌 미수집 내역을 한국 리전의 통합 테이블(ip_access_consolidated)로 주기적으로 MERGE합니다. 이를 통해 전 세계에서 발생하는 모든 비인가 접근 이력을 본사 거버넌스 하에 단일 감사 증적으로 안전하게 보존합니다. - 위험도 기반 자동 알림:
통합된 로그를 바탕으로 비인가 IP의 접속 횟수에 따라 위험도를 자동 등급화(🔴Critical / 🟠High / 🟡Medium / 🟢Low)합니다. 위험도가 높은 의심 사례 탐지 시, Teams로 경고를 발송하고 즉시 데이터팀 주도의 소명 절차를 진행합니다.
🛠️ 3. 기술 스택: 있는 것을 최대한 활용하라
새로운 툴을 도입하기보다, 이미 우리가 가진 무기들을 극한으로 활용하는 데 집중했습니다. 사실 이러한 시스템을 만들때 가장 중요한게 돈이라고 생각 합니다. 아무래도 새로운 솔루션 도입에는 한계가 있고 회사의 규모가 클수록 이러한 리스크를 감수하기 쉽지 않습니다.
| 🗂️ 구분 | 🔧 사용 기술 및 도구 |
| 오케스트레이션 | Apache Airflow (BashOperator, 1시간 주기 스케줄링) 어차피 audit 테이블이 데이터 동기화 주기가 3시간까지 지연되므로, 계속해서 6~10시간씩 이전의 데이터를 가져오므로, BashOperator를 사용해서 1시간마다 계속 호출 하였습니다. |
| 데이터 소스 & 엔진 | Databricks 시스템 테이블 (system.access.audit) / SQL Statements API (REST) |
| 핵심 분석 로직 | Python / Databricks 내장 LLM (PII 접근 의도 분류) |
| 알림 채널 | Microsoft Teams Incoming Webhook + Adaptive Cards (멘션 기능 포함) |
| 데이터 거버넌스 | Unity Catalog 관리형 Delta 테이블 (monitoring.governance.*) |
| 인프라 환경 | 글로벌 3 Multi-Region Databricks Workspaces (한국, 미국, 유럽) |
⏱️ 4. Incident 대응 프로세스 타임라인: 골든타임을 사수하는 자동화 플레이북
아무리 좋은 탐지 시스템이 있어도 사후 대응이 느리거나 담당자가 놓치면 아무 소용이 없습니다. 저희는 보안 위협이 탐지되었을 때 단 1초의 골든타임도 놓치지 않고 즉각 대응할 수 있도록, 인간의 개입을 최소화한 일관된 자동화 타임라인을 설계했습니다.
위반 사항이 감지되는 순간, 시스템은 아래 일련의 대응 프로세스를 마치 시계태엽처럼 물 흐르듯 실행합니다.
| ⏳ 단계 | 📌 프로세스명 | 🔍 수행 내용 |
| Step 1 | 자동 탐지 | Apache Airflow가 1시간 주기로 글로벌 전체 리전의 감사 로그를 스캔하여 미소명 위반 패턴을 즉각 식별합니다. |
| Step 2 | 즉시 알림 | 위반 시각을 KST(한국 표준시) 기준으로 자동 변환하여 가독성을 높인 후, Teams Adaptive Card를 통해 위반 당사자와 보안 담당 채널에 실시간 경고를 발송합니다. |
| Step 3 | 소명 요청 및 트래킹 | 경고 발생과 동시에 위반자에게 즉각적인 소명 의무가 부여됩니다. 시스템은 위반 당사자가 정해진 기한 내에 소명 메일을 발송했는지 로그를 추적하기 시작합니다. |
| Step 4 | 중앙 집계 & 증적 보존 | 위반 내역과 이에 대한 조치 결과는 한국(KR) 리전의 통합 마스터 테이블에 MERGE 되어, 향후 외부 감사나 사내 보안 검토 시 제출할 수 있도록 *단일 감사 증적(Single Source of Truth)*으로 영구 보존됩니다. 추후에 대시보드를 만들기 위해서 하나의 리전으로 모두 데이터를 모았습니다. |
| Step 5 | 정기 리뷰 & 정책 피드백 | 한 달간 축적된 누적 보안 데이터를 바탕으로 자동화된 월간 보안 리포트를 발행합니다. 빈번하게 발생하는 위반 패턴을 분석하여 화이트리스트 정책을 정교하게 업데이트하고 거버넌스를 지속해서 개선합니다. |
💰 5. ROI 분석: 이것이 엔지니어링의 묘미다
가장 강조하고 싶은 부분은 바로 '압도적인 비용 효율성'입니다. 거창한 외부 솔루션 도입 없이 최적화된 아키텍처만으로 완벽한 통제 환경을 만들었습니다.
| 💵 항목 | 📊 상세 분석 및 비용 절감 포인트 |
| 컴퓨팅 비용 (DBU) | Databricks Serverless SQL Warehouse 사용. 상시 켜두지 않고 파이프라인이 실행되는 시간(수 초~분)에만 과금되어 비용을 극적으로 낮춤. |
| 데이터 수집 비용 | Databricks에서 무료로 제공하는 시스템 테이블(system.access.audit)과 내장 AI Functions 활용으로 별도 API/수집 인프라 비용 제로($0). |
| 오케스트레이션 | 사내 구축되어 있던 기존 Airflow 인프라(AWS EKS 위에 있음)를 재활용하여 추가 도입 비용 없음. |
| 월간 총 예상 비용 | 현재 매시 정각 일 24회, 월 720회 글로벌 파이프라인을 가동하고 (시간당 100~200회 쿼리 발생 기준) 발생하는 총비용은 약 $5 ~ $25 / 월 수준입니다. |

✨ 주요 도입 효과
- 컴퓨팅 비용 (DBU): 상시 켜두는 클러스터 대신 Databricks Serverless SQL Warehouse를 활용했습니다. Airflow가 파이프라인을 트리거할 때 수 초~분 단위로만 실행되고 바로 꺼지기 때문에 과금을 극적으로 낮췄습니다.
- 수집 인프라 비용 제로 ($0): Databricks에서 기본 제공하는 시스템 테이블을 활용하여 별도의 로그 수집기(Fluentd, Logstash 등)를 띄울 필요가 없었습니다.
- 최종 월간 예상 비용: 현재 매시 정각 일 24회, 월 720회 글로벌 파이프라인을 가동하고 (시간당 100~200회 쿼리 발생 기준) 발생하는 총비용은 약 $5 ~ $25 / 월 수준입니다. 수천만 원짜리 상용 솔루션을 압도하는 가성비죠!
💡 마무리하며: 시스템을 넘어 '문화'를 만들다
이번 프로젝트는 단순히 스크립트 몇 개를 짜는 것을 넘어, 흩어져 있던 글로벌 워크스페이스를 Unity Catalog라는 하나의 거버넌스 우산 아래 엮어내고, AI와 Airflow를 결합해 능동적인 방어 체계를 갖췄다는 점에서 제 엔지니어링 커리어에 큰 이정표가 되었습니다.
이전에는 담당자가 월 1회 수동으로 취합하며 고통받던 작업이 이제는 1시간 단위로, 100% 자동으로, 그것도 AI의 판정을 거쳐 Teams로 배달됩니다. 데이터 플랫폼이 자체적으로 제공하는 기능들만 잘 조합해도 얼마나 강력한 환경을 만들 수 있는지 증명해 낸 것 같아 뿌듯합니다.
물론 1년 넘게 데이터 플랫폼을 구축하며 크고 작은 시행착오도 많았고, 다음 단계로는 분석가분들이 더 쉽게 화이트리스트를 신청하고 관리할 수 있도록 **'보안의 사용성'**을 높이는 과제가 남아있습니다. 제 치열했던 경험과 사례가 글로벌 멀티 환경에서 데이터 거버넌스를 고민하시는 많은 엔지니어 분들께 좋은 영감이 되기를 바랍니다. 긴 글 읽어주셔서 감사합니다. 궁금하신 점이 있다면 언제든 댓글로 남겨주세요! 😊
'Data Reliability Engineering' 카테고리의 다른 글
| [DRE] 보안 점검 리포트 자동화 (With. Databricks & AWS) (0) | 2026.08.05 |
|---|---|
| [DRE] 실패 알림을 넘어 영향 범위 예측으로 — 데이터 파이프라인 Observability 구현 (with. Databricks) (0) | 2026.07.30 |
| [DRE] 로그 정합성 모니터링 고도화 (0) | 2026.07.15 |
| [DRE] 데이터 파이프라인 장애 감지 자동화 — Airflow + Teams 연동 (0) | 2026.04.12 |
| [DRE] 데이터 엔지니어 다음 커리어, Data Reliability Engineer(DRE) 로드맵 (1) | 2025.12.08 |
