관찰성 스택의 무조건 GDPR 위반
대부분의 엔지니어링 팀은 애플리케이션 데이터베이스에서 개인 데이터를 처리함을 알고 있습니다. 더 적은 수는 동일한 엄격함으로 로그 관리 시스템을 감사했습니다.
GDPR Article 5(1)(e)는 개인 데이터를 "처리 목적을 위해 필요한 것보다 더 이상 저장"하지 않도록 요구합니다 — 저장 제한 원칙. 애플리케이션 데이터베이스의 경우, 조직은 보유 정책, 삭제 작업 및 데이터 최소화 프로세스를 가지고 있습니다.
애플리케이션 로그의 경우, 일반적인 정책은 훨씬 더 간단합니다: 90일 동안 모든 것을 보관하거나(운영 디버깅), 관찰성 플랫폼으로 무한정 스트리밍합니다.
이는 GDPR Article 5(1)(e) 위반입니다. 로그는 개인 데이터를 포함합니다:
- 사용자 이메일 주소
- IP 주소
- 세션 토큰(사용자 식별 가능)
- 계정 번호
- 결제 처리 로그의 신용카드 마지막 4자리(PII 컨텍스트)
JSON 로그의 PII 문제
JSON 로그는 구조화되지 않은 텍스트 로그보다 더 심각한 PII 문제를 제시합니다. 왜냐하면 구조화된 필드는 매핑을 용이하게 하고, API 게이트웨이는 정기적으로 사용자 데이터를 필드에 로깅하기 때문입니다:
{
"timestamp": "2025-11-14T09:22:13Z",
"user_email": "sarah.johnson@company.com",
"request_body": {...full user data...},
"response_body": {...query results...},
"client_ip": "82.123.45.67"
}
각 로그 항목은 적어도 3개 또는 4개의 개인 데이터 필드를 포함합니다. 일일 수백만 로그 항목 × 90일 보유 = 2억 7천만 개의 개인 데이터 레코드.
저장 제한 원칙과 로그 보유
GDPR 준수 접근:
원시 로그: 7-14일 내부 보유(운영 디버깅 목적) 익명화된 로그: 90일 보유(추세 분석, 성능 모니터링) 삭제: 90일 후 모든 버전 삭제
이것은 원시 PII의 최소 보유 (필요한 기간만)를 보장하면서, 분석 목적을 위해 익명화된 버전을 더 오래 보유할 수 있게 합니다.
로그 익명화의 기술적 요구 사항
가능한 접근:
-
필드 기반 익명화: user_email, client_ip, 기타 알려진 PII 필드를 식별하고 마스크
- 장점: 빠름, 구현하기 쉬움
- 단점: 스키마 오류(필드 재이름)를 놓침
-
내용 기반 익명화: 필드 이름에 관계없이 이메일, IP, SSN 패턴 감지
- 장점: 스키마 변경에 강함
- 단점: 더 느림, 더 복잡함
-
하이브리드: 알려진 PII 필드 + 예상치 못한 필드의 내용 감지
- 장점: 속도 + 견고성
- 단점: 더 높은 구현 복잡도
사용 사례: SaaS 플랫폼 로그 익명화
SaaS API 회사는 매일 5TB의 JSON 로그를 생성합니다. 현재 정책: 모든 로그를 관찰성 플랫폼(Datadog)으로 스트림, 무제한 보유.
규정 준수 검토는 이것이 GDPR 위반임을 식별합니다:
- user_email 필드: 4,000명의 고유 사용자 데이터, 무제한 보유
- client_ip: 50,000개의 고유 IP, 무제한 보유
- request_body의 계정 번호: 무제한 보유
개선된 프로세스:
로그 생성: 응용 프로그램이 원시 로그를 기록합니다(일반적) 로그 회전(7일): 로그 스트림에서 원시 로그를 내부 저장소에만 유지 익명화 단계: 회전된 로그를 익명화(user_email → user_hash, client_ip → RFC 5737 범위) 외부 전송: 익명화된 로그만 관찰성 플랫폼으로 전송 내부 보관: 원시 로그는 내부에만 7일, 그 후 삭제
결과:
- 관찰성 플랫폼: 개인 데이터 없음
- 내부 디버깅: 7일 액세스(필요시 원시 로그)
- GDPR 준수: 개인 데이터 최소 보유
CI/CD 파이프라인 통합
다양한 통합 포인트:
로그 회전 스크립트:
# Cron: 매일 자정
logrotate -f /etc/logrotate.d/app-logs
# 회전 후: 익명화 스크립트 실행
anonymize-logs /var/log/app/app.log.1 /var/log/anonymized/app.log.1
로그 스트림 필터링:
Input: /var/log/app/ (원시)
Filter: Anonymize on stream
Output: Datadog (익명화됨)
SRE 긴급 액세스:
- SRE는 원시 로그에 대한 내부 액세스 권한이 있음
- 로그는 72시간 후 자동 삭제됨
- 액세스는 감사됨
관찰성 플랫폼 선택의 영향
일부 관찰성 플랫폼(Datadog, New Relic, Splunk)은 PII 감지 및 마스킹 기능을 제공합니다:
- Datadog PII Redaction: 민감한 데이터 감지 및 마스크
- Splunk GDPR Toolkit: 로그 익명화 자동화
- New Relic Data Retention Policy: GDPR 준수 보유 설정
플랫폼의 자체 PII 마스킹을 신뢰하려면, 조직은 여전히 자체 사전 익명화를 할 수 있습니다(깊이 있는 방어).
출처: