GDPR 정책
최종 업데이트: 2026년 5월 9일 · v3.0 · 즉시 발효
적용 규정: EU 일반 데이터 보호 규정(2016/679), 아일랜드 데이터 보호법 2018
1. 당사의 약속
YARDtwin Ltd는 일반 데이터 보호 규정(GDPR)의 완전한 준수를 이행합니다. 당사는 자체 고객 데이터에 대한 데이터 관리자이자 고객을 대신하여 운영 데이터를 처리하는 데이터 처리자로서, 모든 단계에서 개인 데이터를 보호하기 위한 적절한 기술적·조직적 조치를 시행합니다.
2. 역할 및 책임
3. 데이터 처리 계약 (DPA)
모든 고객은 셀프서비스를 통해 당사의 데이터 처리 계약을 검토하고 동의할 수 있습니다. DPA 페이지. Standard 및 Founder 플랜 고객에게는 처리 범위 및 목적, 처리되는 개인정보 유형, 정보주체 범주, 양 당사자의 의무, 하위 처리자 관리, 데이터 침해 통지, 국제 이전, 감사 권한을 포함하는 상호 서명된 데이터 처리 계약이 제공됩니다. DPA 체결을 위해서는 이메일로 문의하시기 바랍니다. admin@yardtwin.com (개인정보 보호 책임자 참조: dpo@yardtwin.com).
4. 기술적 조치 (GDPR 제32조)
전송 중인 모든 데이터는 암호화됩니다(TLS 1.2+). 비밀번호는 bcrypt(12 라운드)로 해시 처리됩니다. PostgreSQL Flexible Server는 저장 데이터에 대해 투명한 데이터 암호화를 사용합니다. Azure Blob Storage는 저장 시 암호화됩니다. 생체 데이터(운전면허증 이미지, 서명 이미지)에 대해 애플리케이션 수준의 필드 암호화(AES-256-GCM)가 적용되며, 키는 Azure Key Vault에 보관됩니다. JWT 토큰은 암호학적으로 서명됩니다(HS256). 시크릿은 App Service 관리 ID를 통해 액세스되는 Azure Key Vault로 관리되며, 코드·환경 파일·컨테이너 이미지에는 시크릿이 포함되지 않습니다.
6가지 역할(admin, ops_manager, gate_guard, warehouse_operator, carrier, super_admin)이 정의된 역할 기반 접근 제어(RBAC). 모든 인증 라우트에 미들웨어를 통한 최소 권한 원칙 적용. 매 릴리스마다 자동화된 25개 테스트로 크로스 테넌트 감사를 통해 테넌트 격리 검증. Google 및 Microsoft를 통한 다중 인증(MFA)을 위한 SSO 지원.
사용자 작업에 대한 완전한 감사 로그가 기록됩니다: 사용자 신원, 타임스탬프, IP 주소, 작업 동사, 영향받은 엔티티, 이전 및 새 값. GMP 관련 작업은 별도로 표시됩니다(is_gmp_relevant=1). 애플리케이션 계층에서 추가 전용으로 처리되며, 6년간 보존됩니다. 제17조 삭제 요청 시 삭제되지 않고 가명 처리됩니다(제17조 제3항 (b) 법적 의무 예외 적용).
Microsoft Azure(스웨덴 중부 + 노르웨이 동부, EEA)에서 호스팅됩니다. 컨테이너화된 App Service는 Azure Container Registry를 통해 스테이징 슬롯 배포 후 스왑 방식으로 배포됩니다. 80/443 포트만 노출되며, PostgreSQL은 인터넷에 직접 연결되지 않습니다. Azure NSG 및 Front Door(계획 중). Postgres "column / relation does not exist" 오류에 대한 스키마 드리프트 알림이 포함된 Application Insights(15분 윈도우). 엔드투엔드 /health/db-write 프로브가 매 배포 시 애플리케이션의 데이터베이스 쓰기+읽기 가능 여부를 검증합니다.
당사는 서비스 제공에 필요한 데이터만 수집합니다. 운전기사의 선택적 필드(전화번호, 이메일)는 고객 프로세스상 허용되는 경우 공란으로 둘 수 있습니다. 생체 인증은 사이트별로 기본 비활성화되어 있으며, 사이트 관리자가 선택적으로 활성화합니다. 뉴스레터는 이메일과 선택적 회사명만 수집합니다.
모든 풀 리퀘스트는 자동화된 보안 검사를 거칩니다: npm audit(HIGH 이상 의존성 CVE는 배포 차단), Trivy(컨테이너 CVE 스캔), Semgrep SAST(OWASP 상위 10개 + Node.js + React + 시크릿 규칙), gitleaks(전체 git 이력 시크릿 스캔), OWASP ZAP(스케줄에 따라 스테이징 환경 대상 DAST). Dependabot은 새로운 CVE가 공개될 때마다 PR을 자동으로 생성합니다.
5. 정보주체 권리 (GDPR 제3장)
당사는 모든 정보주체 권리 행사를 지원합니다:
POST /api/v1/dsar/erase/by-email 이는 모든 개인정보(PII) 테이블에 걸쳐 가명화를 수행합니다. 참고: 감사 데이터는 제17조(3)(b) 법적 의무 예외에 따라 6년간 보존됩니다.6. 동의 관리
뉴스레터: 명시적 옵트인 동의가 필요합니다. 동의 타임스탬프와 IP가 기록됩니다. 모든 커뮤니케이션에 수신 거부 링크가 포함됩니다. 서비스 이용에 영향 없이 언제든지 동의를 철회할 수 있습니다.
서비스 약관: 계정 생성은 서비스 이용약관에 대한 동의로 간주됩니다(계약 근거). 회원가입 시 데이터 처리에 관한 안내가 제공됩니다.
쿠키: ePrivacy 지침에 따라 첫 방문 시 쿠키 동의 배너가 표시됩니다. 사용자는 필수 쿠키만 선택하거나 모든 쿠키를 허용할 수 있습니다. 설정은 로컬에 저장되며 언제든지 변경할 수 있습니다.
7. 데이터 침해 절차 (제33~34조)
자동화된 탐지: 침해 모니터 워커가 5분마다 감사 로그를 점검하여 이상 징후를 잠재적 인시던트로 표시합니다:
- 1시간 내 동일 이메일 주소에 대해 로그인 실패 10회 이상
- 24시간 내 동일 이메일을 대상으로 하는 서로 다른 소스 IP 5개 이상
- 해당 사용자에 대해 최근 30일 내 확인된 적 없는 소스 IP에서의 로그인 성공
- 5분 윈도우 내 HTTP 5xx 오류율 5% 초과
- Postgres "column / relation does not exist" 오류(스키마 드리프트, App Insights)
- /health/db-write 프로브 실패(모든 배포 시 및 지속적으로 읽기+쓰기 확인)
침해 등록부: 탐지된 모든 이상 징후는 breach_register 테이블에 상태 머신(탐지됨 → 조사 중 → 확인됨 → 통보됨 → 종료됨), 심각도, 범위, 영향받은 정보주체, DPC 기한 카운트다운, 감사 이력과 함께 기록됩니다. SuperAdmin "침해 등록부" 패널에서 확인할 수 있습니다.
알림 라우팅: 탐지 이벤트는 Azure Monitor 작업 그룹 yardtwin-breach-actions으로 전달되어 admin@yardtwin.com 및 등록된 온콜 주소로 이메일이 발송됩니다. 스키마 드리프트 이벤트는 기존 yardtwin-schema-drift-actions 그룹을 사용합니다.
평가: 탐지 후 24시간 이내에 기술팀이 침해 등록부 패널에서 인시던트를 분류합니다: 범위, 영향받은 정보주체, 심각도(제33조(1) '권리 및 자유에 대한 위험' 기준), 근본 원인.
DPC 통보 (제33조): 위험을 수반하는 침해를 인지한 후 72시간 이내. 인시던트가 확인됨.
정보주체 통보 (제34조): 침해가 정보주체의 권리 및 자유에 높은 위험을 초래하는 경우 부당한 지체 없이 통보합니다.
고객 통지: 침해가 테넌트 데이터에 영향을 미치는 것으로 확인된 후 48시간 이내에 해당 테넌트 관리자에게 통지합니다.
문서화: 침해 등록부의 모든 항목은 외부 통지 의무 여부와 관계없이 플랫폼 운영 기간 종료 후 6년(감사 보존 기간)까지 보관됩니다.
8. 하위 처리자
| Sub-Processor | 목적 | 위치 | 안전 조치 |
|---|---|---|---|
| Microsoft Azure | 클라우드 인프라 (App Service, Postgres, Blob, Key Vault, App Insights) | EEA (스웨덴 중부 + 노르웨이 동부) | Microsoft Online Services DPA + EU SCCs, ISO 27001, SOC 2 Type II |
| Stripe | 구독 청구 및 결제 처리 | Stripe 아일랜드 (EEA), 일부 미국 지원 | Stripe DPA + SCCs + PCI DSS |
| Resend | 트랜잭션 이메일 (환영, 체험 기간 알림, DSAR 응답) | 미국 (델라웨어) | DPA + SCCs (검증 진행 중) |
| Google Cloud Vision | 운전면허증 OCR (고객이 면허 인증을 활성화한 경우) | EU 리전 | Google Cloud DPA + EU SCCs, ISO 27001, SOC 2 |
| Google / Microsoft (OAuth SSO) | SSO를 선택한 사용자를 위한 단일 로그인 ID 토큰 | EEA (Microsoft Entra ID), 글로벌 (Google Workspace) | Microsoft / Google Cloud DPA |
| Anthropic | 제품 내 AI 어시스턴트 및 면허증 OCR 텍스트 파싱을 위한 Claude API | 미국 (캘리포니아) | Anthropic DPA + 무보존 정책 + SCCs |
새로운 하위 처리자 추가 30일 전에 고객에게 통지합니다.
9. 데이터 보호 영향 평가 (DPIA)
당사는 정보 주체에게 높은 위험을 초래할 수 있는 처리 활동에 대해 DPIA를 실시합니다. YARDtwin은 민감한 개인정보보다는 주로 업무 운영 데이터(도크 일정, 운송사 명칭, 차량 등록번호)를 처리하므로 위험 수준은 중간 정도입니다. 감사 추적 처리, 테넌트 간 분석(플랫폼 관리 모듈), 뉴스레터 구독자 관리에 대한 DPIA가 완료되었습니다.
10. 설계 및 기본 설정에 의한 데이터 보호 (제25조)
설계에 의한 보호: 필수 테넌트 격리를 적용한 멀티테넌트 아키텍처. 모든 API 엔드포인트에 RBAC 내장. 비밀번호 평문 저장 금지. 모든 단계에서 최소한의 데이터 수집.
기본 설정에 의한 보호: 신규 계정은 최소 권한으로 시작. 선택 항목은 실제로 선택 사항으로 유지. 뉴스레터는 능동적 수신 동의 필요. 데이터 가시성은 역할에 따라 제한.
11. 규정 준수 현황 및 지속적 개선
해결 완료 (2026년 5월 기준)
- ✓ PostgreSQL Flexible Server로 마이그레이션 (Azure 관리형, 저장 데이터 투명 암호화, 7일 특정 시점 복구)
- ✓ Microsoft Azure로 마이그레이션 (스웨덴 중부 + 노르웨이 동부, EEA), App Service + ACR + Key Vault 포함
- ✓ Azure Key Vault를 통한 시크릿 관리 (.env 또는 컨테이너 이미지에 시크릿 미포함, 관리 ID 방식 접근)
- ✓ DSAR 자동 내보내기 (POST /api/v1/dsar/export/by-email — 제15조 / 제20조)
- ✓ DSAR 자동 삭제 (POST /api/v1/dsar/erase/by-email — 제17조, 감사 보존 기간 준수)
- ✓ 쿠키 배너 v2 필수 / 기능 / 분석 / 마케팅 4개 카테고리 및 거부 / 맞춤 설정 / 전체 동의 옵션 포함
- ✓ 테넌트 간 격리 감사 자동화 실행, 25개 중 25개 테넌트 간 접근 벡터 차단, 매 릴리스마다 회귀 테스트 실시
- ✓ CI/CD 보안 파이프라인: npm audit + Trivy + Semgrep + gitleaks + ZAP DAST
- ✓ 스키마 드리프트 알림 Application Insights 기반 (15분 윈도우)
- ✓ 종단간 /health/db-write 프로브 모든 배포 시 쓰기 가능한 DB 검증
- ✓ App Insights 스키마 드리프트 Action Group Postgres "column / relation does not exist" 오류 발생 시 온콜 주소로 이메일 발송
- ✓ 필드 수준 암호화 (AES-256-GCM) 생체 데이터(운전면허증 이미지, signature_data)에 적용
- ✓ 자동 데이터 보존 삭제 (사이트별 설정 가능; pii-cleanup 워커)
- ✓ 30일 체험 기간 전체 통일 (회원가입, 마케팅 사이트, 약관, 이메일)
- ✓ 5,000대 트럭 종단간 회귀 테스트 모든 Site Admin 엔드포인트를 대상으로 모든 전환 단계에서 야드 뷰 충실도 검증 수행 (53,650/53,651 = 100%)
- ✓ 데이터 인벤토리 및 처리 활동 기록 (Art. 30) 게시 완료
- ✓ 하위 처리자 등록부 유지 관리 및 연간 검토
- ✓ 설계 및 기본값에 의한 개인정보 보호 문서화 완료 (Art. 25)
- ✓ 웹 애플리케이션 방화벽 (Azure Front Door + 관리형 WAF) OWASP Core Rule Set, 봇 차단, L7 DDoS 완화를 통해 yardtwin.com 보호
- ✓ 자동 침해 탐지 — 인증 이상 워커 (로그인 실패 급증, 다중 IP 공격, 국가 변경 로그인), 5xx 비율 알림, 스키마 드리프트 알림 및 /health/db-write 프로브
- ✓ 침해 등록부 전체 상태 머신 및 DPC 기한 카운트다운을 포함하는 영구 테이블, SuperAdmin 패널에서 확인 가능
- ✓ Action Group
yardtwin-breach-actions탐지 시마다 admin@yardtwin.com 및 온콜 주소로 이메일 발송
잔여 개선 사항
제3자 침투 테스트가 아직 수행되지 않았습니다. 참여 범위 확정 (Cobalt.io, 웹 앱 + 인증 테스트 약 €6–8k). 현재까지 내부 테스트를 통해 27개 항목이 해소되었습니다. 우선순위: 높음. 목표: 2026년 3분기.
외부 파트타임 DPO는 첫 번째 유료 제약 기업 고객 확보 전에 계약될 예정입니다. Art. 37의 엄격한 의무 여부와 관계없이 신뢰할 수 있는 벤더 온보딩을 위해 필요합니다. 우선순위: 높음. 목표: 첫 번째 유료 기업 고객 확보 전.
적용성 진술서(SOA) 초안 완성, 93개 Annex A 통제 항목 전체 매핑 (~32 이행 완료, ~25 부분 이행, ~22 미흡, ~14 해당 없음). 외부 수석 심사원 참여가 다음 단계이며, 전체 인증 경로는 9–12개월 소요 예정. 우선순위: 중간. 목표: 2026년 4분기 — 인증 심사 2027년 1분기.
미국 기업 고객에게 필요합니다. ISO 27001 취득 후 추진하는 것이 효율적이며, 대부분의 통제 항목이 중복됩니다. 우선순위: 중간. 목표: 2027년.
YARDtwin은 Azure App Service에서 시점 기반 백업 복구(7일 윈도우)로 운영되고 있으나 단일 리전입니다. 다른 EEA 리전에 지리적 이중화 보조 리전을 구성하면 리전 장애 시 RTO를 수 시간에서 수 분으로 단축할 수 있습니다. 우선순위: 중간. 목표: 2026년 4분기.
두 하위 처리자는 SCC에 따라 미국으로 데이터를 전송합니다. FISA 702 보완 조치에 대한 서면 확인을 연간 하위 처리자 검토의 일환으로 수집 중입니다. 우선순위: 중간. 목표: 2026년 3분기.
두 번째 클린 외부 침투 테스트 이후 비공개 버그 바운티 프로그램(HackerOne / Intigriti) 운영을 계획하고 있으며, 연간 테스트 사이에 지속적인 외부 커버리지를 제공합니다. 우선순위: 낮음. 목표: 2027년.
12. 문의 및 개인정보 보호책임자
개인정보 보호책임자(DPO): dpo@yardtwin.com — 외부 파트타임 DPO 계약이 진행 중입니다(11.2 참조). 임명 전까지 이 주소로 수신된 메일은 admin@yardtwin.com으로 전달되어 처리됩니다.
일반 문의: admin@yardtwin.com
정보주체 권리 요청(DSAR): DSAR 포털을 통해 제출
데이터 처리 계약(DPA): /dpa에서 검토 및 동의
감독 기관: 아일랜드 개인정보보호위원회(DPC) · www.dataprotection.ie · +353 (0)761 104 800