정책 (Policies) 개요
**정책(Policies)**은 컬렉션과 데이터셋에 대한 **세분화된 접근 제어(FGAC, Fine-Grained Access Control)**를 설정하는 기능입니다. 기본 공유·권한 기능이 컬렉션 단위의 역할 부여(Owner/Writer/Reader)에 해당한다면, 정책은 그 위에 컬럼 마스킹과 행 필터를 더해, 같은 자산을 보더라도 사용자·그룹별로 보여지는 데이터의 범위와 형태를 다르게 제어합니다.
어디에서 설정하나요?
정책은 데이터셋 상세 페이지의 정책 탭에서 관리합니다. 탭 안에는 해당 데이터셋에 부여된 정책 목록과 추가/편집/삭제 액션이 표시됩니다.
정책 관리 권한은 자산에 대한
delete권한을 가진 사용자(일반적으로 Owner)에게만 부여됩니다. 권한이 없으면 "Read-only" 배너만 표시되고 편집 버튼은 감춰집니다.
백엔드 시야 정책 (ADR-0037)
정책의 적용 결과는 목록 API 단계에서 권한 필터링된 상태로 노출됩니다 — 권한 없는 자원은 목록에 아예 등장하지 않습니다. 이 동작은 컬렉션·데이터셋·코드·파이프라인·지식·대시보드·에이전트 등 모든 자원 목록에 적용됩니다. 예외적으로, 관리자에게는 "기타 컬렉션" 스코프로 권한 외 컬렉션도 보여 거버넌스를 지원합니다(공유 및 권한 참고).
이 변화는 사용자가 "왜 권한 있는 항목만 보이지?" 라고 묻는 마찰을 줄이고, 정책 위반 가능성을 사전에 차단합니다.
정책의 구성 요소
정책 하나는 **주체(Subject) × 대상(Resource) × 규칙(Rule)**의 3요소로 구성됩니다.
| 요소 | 설명 |
|---|---|
| 주체 (subject) | 정책을 적용받는 사용자 또는 그룹 (user 또는 group) |
| 대상 (resource) | 정책이 속한 자산 (데이터셋 ID 등) |
| 컬럼 마스크 (column_masks) | 특정 컬럼을 숨기거나 변환해서 표시 |
| 행 필터 (row_filters) | WHERE 조건으로 특정 행만 노출 |
같은 자산에 대해 사용자별로 서로 다른 정책을 여러 개 등록할 수 있으며, 목록 화면에서는 각 정책별로 컬럼 마스크 수와 행 필터 조건 수가 함께 표시됩니다.
컬럼 마스킹 (Column Masks)
지정한 컬럼의 값을 보여 주지 않거나 변형하여 노출합니다. 주로 개인정보나 민감 정보를 가려야 하는 시나리오에 사용합니다.
- 모든 사용자에게 동일한 스키마를 유지하면서, 주체별로 다른 값이 보이도록 합니다.
- 예: 재무 팀에게는 금액 원문을, 영업 팀에게는 마스킹된 값만 제공.
행 필터 (Row Filters)
WHERE 절과 유사한 조건 트리로, 특정 행만 보여지도록 제한합니다.
- 조건은 AND/OR/NOT으로 중첩할 수 있으며, 정책 목록에서는 총 조건 수가 집계되어 표시됩니다.
- 스키마 인식 Select 드롭다운을 통해 컬럼을 직접 선택하므로, 수동 입력 오류를 줄여 줍니다.
목록 화면
정책 목록 테이블에는 다음 컬럼이 표시됩니다.
| 컬럼 | 설명 |
|---|---|
| 주체 | 사용자/그룹 식별자와 이름·이메일 |
| 컬럼 마스크 수 | 이 정책이 가리는 컬럼의 개수 |
| 행 필터 조건 수 | 정책에 포함된 조건의 총 개수 |
| Updated | 정책이 마지막으로 수정된 상대 시간 |
| 액션 | 편집 / 삭제 (권한이 있는 경우) |
상단 액션 바에서 + 정책 추가 버튼으로 새 정책을 만들 수 있고, 정책이 하나도 없으면 안내 텍스트와 함께 빈 상태 CTA가 표시됩니다.