본문으로 건너뛰기

PII

개인식별정보(PII) 컬럼을 탐지하고 관리하는 API입니다. PII 컬럼 등록, 확인, 마스킹 뷰 SQL 생성, 자동 스캔 기능을 제공합니다.

엔드포인트

GET /api/v1/pii/columns

설명: 등록된 PII 컬럼 목록을 반환합니다. 카탈로그/스키마/테이블 필터를 지원합니다.

POST /api/v1/pii/columns

설명: PII 컬럼을 수동 등록합니다. (HTTP 201)

요청 본문:

필드타입필수설명
catalogstringY카탈로그 이름
schemastringY스키마 이름
tablestringY테이블 이름
columnstringY컬럼 이름
pii_typestringYPII 유형 — 10 종 enum (아래 참조)

pii_type enum 값 (10 종, #886/#890)

의미권장 sensitivity
email이메일high
phone전화번호high
ssn미국 Social Security Numbercritical
rrn한국 주민등록번호critical
card_number카드번호critical
account_number계좌번호critical
name이름low
address주소high
date_of_birth생년월일medium
ip_addressIP 주소medium

ssnrrn 은 의미가 다르므로 한국 데이터에는 rrn 사용. 신규 데이터셋의 PII 타입이 위 10 종에 매핑되지 않으면 enum 확장 issue 발행.

DELETE /api/v1/pii/columns/{column_id}

설명: PII 컬럼 등록을 삭제합니다.

PATCH /api/v1/pii/columns/{column_id}/confirm

설명: 자동 탐지된 PII 컬럼을 사용자가 확인 처리합니다. 갱신된 PIIColumnResponse 전체 를 반환합니다 (confirmed_by / confirmed_at audit 필드 포함). UI 가 응답으로 로컬 row 를 그대로 교체해도 catalog / schema / table 등 식별자가 보존됩니다.

응답 (200 OK):

{
"id": "uuid",
"catalog_name": "hive",
"schema_name": "default",
"table_name": "customers",
"column_name": "email",
"pii_type": "email",
"sensitivity": "high",
"mask_function": "redact",
"confirmed": true,
"detected_by": "manual",
"confirmed_by": "admin",
"confirmed_at": "2026-05-19T18:39:33+09:00",
"created_at": "2026-05-19T18:00:00+09:00"
}

GET /api/v1/pii/view-sql/{catalog}/{schema}/{table}

설명: PII 컬럼이 마스킹 처리된 뷰 SQL을 생성하여 반환합니다.

응답 (200 OK):

{ "table_fqn": "hive.default.customers", "sql": "SELECT ...", "pii_columns": 3 }

POST /api/v1/pii/scan/trigger

설명: 지정 테이블에 대한 PII 자동 탐지 스캔을 시작합니다.

GET /api/v1/pii/activity

설명: PII 활동 로그 (register / confirm / delete / scan_trigger 4 종 이벤트) 를 시간순(최신 우선)으로 반환합니다.

쿼리 파라미터:

파라미터타입설명
event_typestringregister / confirm / delete / scan_trigger 중 하나로 필터
actorstring행위자 사용자명 정확 일치 필터
targetstringtarget_fqn 부분 일치 필터 (예: customers)
limitint1 ~ 200, 기본 50
offsetint페이지네이션 오프셋, 기본 0

응답 (200 OK):

{
"items": [
{
"id": "uuid",
"event_type": "confirm",
"actor": "admin",
"target_fqn": "hive.default.customers.email",
"pii_column_id": "uuid",
"details": null,
"event_at": "2026-05-19T18:39:33+09:00"
}
],
"total": 1
}

활동 로그는 append-only 이며, PII 컬럼이 삭제되어도 해당 이벤트는 보존됩니다 (delete 이벤트의 target_fqn / details 는 삭제 시점 스냅샷). 자세한 사용 가이드는 PII 활동 로그 참조.

인증

JWT Bearer 토큰이 필요합니다.

에러 코드

코드설명
400잘못된 식별자 또는 PII 유형
404컬럼 또는 테이블을 찾을 수 없음
500PII 스캔 또는 뷰 생성 실패