본문으로 건너뛰기

프레임워크 관리

컴플라이언스 프레임워크

컴플라이언스 프레임워크는 GDPR, 개인정보보호법(PIPA), 금융 규제 등 데이터 거버넌스에 적용되는 규정 체계를 정의합니다. 각 프레임워크는 카테고리로 묶이고, 카테고리는 여러 개의 통제 항목(Control)으로 구성됩니다.

본 페이지의 "관리 UI" / CRUD API 섹션은 Epic #1079 의 일부

본 페이지의 관리 UI — Manager SheetAPI 엔드포인트 — CRUD 섹션은 Epic #1079 의 M1 (PR #1086) + M2 (PR #1089) 머지 후 사용 가능합니다. 두 PR 머지 전에는 본 페이지의 조회 API 만 동작합니다.

주요 기능

  • 프레임워크 목록 조회: 등록된 모든 컴플라이언스 프레임워크를 조회합니다
  • 프레임워크 상세 조회: 카테고리 + 통제 항목(Controls) 트리를 확인합니다
  • 프레임워크 관리 (Epic #1079 — M1+M2 머지 후 활성화): 관리자가 UI 만으로 Framework / Category / CheckItem 을 추가·수정·삭제 가능 — 시드 스크립트 재배포 불필요
  • 시드 데이터 제공: GDPR, PIPA, 신용정보법, 전자금융거래법, PCI DSS, ISO 27001, SOC 2 등이 시드 스크립트로 기본 제공됩니다

프레임워크 구조 (3계층)

Framework (프레임워크)
├── Category 1 (카테고리)
│ ├── CheckItem 1 (통제 항목)
│ │ ├── check_type: auto / manual
│ │ ├── auto_check_key: (auto 만) 자동 점검 함수 키
│ │ ├── severity: low / medium / high / critical
│ │ └── lifecycle_phase: collection / storage / usage / retention / disposal
│ └── CheckItem N
└── Category N

code 필드는 모든 레벨에서 immutable (참조 무결성 + 평가 이력 식별자). 한 번 등록한 코드는 변경할 수 없으며, 변경이 필요하면 비활성화 + 신규 등록이 권장됩니다.

관리 UI — Manager Sheet

⚙ 관리 콘솔 → 접근 제어 & 보안 → 컴플라이언스 페이지 우측 상단 관리 버튼 → 우측에서 슬라이드하는 Sheet 가 열립니다.

  • 좌측 트리: Framework → Category → CheckItem 3계층, 클릭으로 선택
  • 우측 폼: 선택한 노드의 Create / Update / Delete
  • 상단 + 버튼: 신규 Framework 생성
  • 노드별 + 버튼: 하위 노드 (Category 또는 CheckItem) 추가

auto_check_key 드롭다운

check_type=auto 일 때만 활성화되는 Combobox 가 표시됩니다. 서버에 등록된 자동 점검 키 목록 (GET /api/v1/compliance/check-engine/keys) 을 불러와 표시하며, 미등록 키는 입력할 수 없습니다 (422 차단).

현재 등록된 6 종은 평가 실행 가이드 — 자동 점검 항목 참조.

삭제 정책

대상동작
Framework기본은 soft delete (is_active=false). 트리에서 사라지지만 평가 이력은 보존됨. ConfirmDialog 에 force 토글이 있어 ON 후 삭제 시도하면 평가 이력이 있을 때 409 + 안내 toast, 이력이 0건일 때만 hard cascade
Category하위 CheckItem 이 있으면 409 + 안내. 빈 카테고리만 hard delete
CheckItem항상 삭제 금지 (서버 405). 감사 추적 보존 — UI 휴지통 클릭 시 안내 toast 만 표시, API 호출 없음

CheckItem 을 정리하려면 카테고리 / 프레임워크 단위로 비활성화하는 방식이 권장됩니다.

기본 제공 프레임워크

Code프레임워크자동 점검 비율 (예)
GDPREU 일반 데이터 보호 규정manual 다수
PIPA한국 개인정보보호법auto 6 + manual 6
CREDIT_INFO_ACT신용정보법auto 4 + manual 6
EFT_ACT전자금융거래법auto 4 + manual 4
PCI_DSS결제 카드 산업 데이터 보안 표준manual 다수
ISO27001정보보안 관리 표준manual 다수
SOC2서비스 조직 통제 보고manual 다수

자동 점검은 시스템 설정·DB 상태로 즉시 판정하지만, 수동 항목 (정책 검토, 동의 절차, 위변조 방지 등) 은 관리자가 직접 검토 결과를 입력해야 100% 달성 가능. 점수 산식과 상태 판정 규칙은 평가 실행 가이드 를 참조하세요.

통제 항목 유형

유형설명UI 동작
auto시스템이 자동 점검 — PII 탐지, 보존 정책 존재 여부, Vault 활성화 등auto_check_key 드롭다운 활성화 + 필수
manual관리자가 수동으로 확인하고 결과 입력auto_check_key 입력 금지 (null 정규화)

manual → auto 전환 시 auto_check_key 미입력이면 422, auto → manual 전환 시 기존 키가 자동으로 null 정규화됩니다.

신규 프레임워크 추가 워크플로

  1. ⚙ 관리 콘솔 → 접근 제어 & 보안 → 컴플라이언스 헤더의 관리 버튼 클릭
  2. Sheet 좌측 상단의 + Framework 클릭
  3. code (예: HIPAA), name (예: 미국 의료 정보 보호법), description?, version? 입력 후 생성
  4. 생성된 Framework 노드 클릭 → + Category 로 카테고리 추가 (sort_order 로 표시 순서 결정)
  5. Category 노드 클릭 → + CheckItem 으로 통제 항목 추가
    • check_type=auto 선택 시 등록된 키 중 하나 선택
    • check_type=manual 선택 시 키 입력란 비활성화
    • severitylifecycle_phase 선택
  6. Sheet 닫기 — 대시보드와 평가 화면에 자동 반영

API 엔드포인트

조회

MethodPathDescription
GET/api/v1/compliance/frameworks활성 (is_active=true) 프레임워크 목록
GET/api/v1/compliance/frameworks/{framework_id}카테고리 + 통제 항목 트리 포함 상세
GET/api/v1/compliance/check-engine/keys등록된 auto_check_key 목록 (admin only)

CRUD (관리자 전용, Epic #1079)

MethodPathDescription
POST/api/v1/compliance/frameworksFramework 생성
PATCH/api/v1/compliance/frameworks/{id}name/description/version/is_active 변경 (code immutable)
DELETE/api/v1/compliance/frameworks/{id}기본 soft, ?force=true 시 history=0 일 때만 hard cascade
POST/api/v1/compliance/frameworks/{fid}/categoriesCategory 생성
PATCH/api/v1/compliance/categories/{id}name/sort_order 변경
DELETE/api/v1/compliance/categories/{id}하위 항목 없을 때만 hard delete
POST/api/v1/compliance/categories/{cid}/check-itemsCheckItem 생성
PATCH/api/v1/compliance/check-items/{id}name/check_type/auto_check_key/severity/remediation_guide/lifecycle_phase 변경
DELETE/api/v1/compliance/check-items/{id}항상 405 (감사 추적 보존)

검증 규칙

  • check_type=auto 이면 auto_check_key/check-engine/keys 화이트리스트에 있어야 함 (없으면 422)
  • severity ∈ {low, medium, high, critical}
  • lifecycle_phase ∈ {collection, storage, usage, retention, disposal} ∪ null
  • code 는 (framework 전역) / (framework_id, code) / (category_id, code) 범위에서 unique. 중복 시 409

관련 문서