feat #467: separate column sensitivity policies
This commit is contained in:
35
docs/design/467-column-sensitivity-redaction/README.md
Normal file
35
docs/design/467-column-sensitivity-redaction/README.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# #467 컬럼 민감도와 redaction 정책 분리
|
||||
|
||||
## 배경
|
||||
|
||||
기존 모델은 `cb_permission_column`에 포함된 컬럼을 "NULL 처리 예외"로 해석했다. 이 방식은 역할별 표시 예외는 표현할 수 있지만, 컬럼 자체의 데이터 민감도와 masking 방식을 별도로 관리하기 어렵다.
|
||||
|
||||
## 결정
|
||||
|
||||
- `cb_protected_column`을 컬럼 정책의 기준 테이블로 유지한다.
|
||||
- `sensitivity_level`을 추가해 컬럼 데이터 등급을 관리한다.
|
||||
- `PUBLIC`
|
||||
- `INTERNAL`
|
||||
- `CONFIDENTIAL`
|
||||
- `RESTRICTED`
|
||||
- `redaction_method`를 추가해 masking 방식을 관리한다.
|
||||
- `NONE`
|
||||
- `NULLIFY`
|
||||
- `PARTIAL`
|
||||
- `FULL`
|
||||
- `cb_app_role.max_sensitivity_level`을 추가해 역할별 민감도 허용 상한을 설정한다.
|
||||
- `cb_permission_column`은 기존 호환을 위해 "해당 권한에서 redaction 예외로 표시 가능한 컬럼" 의미로 유지한다.
|
||||
|
||||
## Migration
|
||||
|
||||
기존 `sensitive_yn = 'Y'` 컬럼은 `CONFIDENTIAL/NULLIFY`로 보정한다. 기존 `sensitive_yn = 'N'` 컬럼은 `PUBLIC/NONE`을 기본값으로 둔다. 운영자가 실제 업무 기준에 따라 `INTERNAL/NONE`, `RESTRICTED/FULL` 등으로 조정한다.
|
||||
|
||||
## UI 반영
|
||||
|
||||
- ORDS 조회 Handler 대상 화면에서 객체별 컬럼 정책을 조회/수정한다.
|
||||
- 역할 화면에서 `max_sensitivity_level`을 조회/수정한다.
|
||||
- ORDS 검증 결과의 masked 컬럼은 `contents [CONFIDENTIAL/NULLIFY]`처럼 정책 라벨을 같이 표시한다.
|
||||
|
||||
## 남은 판단
|
||||
|
||||
`cb_permission_column`과 `max_sensitivity_level`의 최종 런타임 결합 방식은 다음 단계에서 결정한다. 현재는 기존 Oracle Redaction expression과 호환되도록 표시 예외 구조를 유지한다.
|
||||
Reference in New Issue
Block a user