접근 정책
테이블과 컬럼 수준에서 세밀한 접근 제어를 설정하는 기능입니다. 행 필터(row_filter)와 컬럼 마스크(column_mask)를 조합하여 사용자 역할에 따라 데이터 접근 범위를 제한하며, RBAC/ABAC 기반의 정책 엔진으로 동작합니다.
데이터 격리 3계층 모델

주요 기능
- 행 필터(Row Filter): 특정 조건에 맞는 행만 조회할 수 있도록 SQL WHERE 절 기반 필터를 설정합니다.
- 컬럼 마스크(Column Mask): 민감한 컬럼 값을 마스킹 함수로 대체하여 표시합니다.
- 역할 기반 접근 제어(RBAC): 사용자 역할에 따라 정책을 적용합니다.
- 속성 기반 접근 제어(ABAC): 사용자 속성, 리소스 속성, 환경 조건을 조합하여 정책을 평가합니다.
- 정책 시뮬레이션: 정책 적용 전 특정 사용자에게 어떤 결과가 보이는지 미리 확인할 수 있습니다.
- 리소스 그룹: 여러 테이블을 그룹으로 묶어 정책을 일괄 적용할 수 있습니다.
사용 방법
정책 생성
- 관리자 > 접근 정책 메뉴로 이동합니다.
- 정책 추가 버튼을 클릭합니다.
- 정책 유형을 선택합니다:
- Row Filter: 행 수준 필터링
- Column Mask: 컬럼 수준 마스킹
- 대상 테이블(카탈로그/스키마/테이블)을 지정합니다.
- 적용 규칙을 설정합니다:
- Row Filter: SQL WHERE 절 조건 (예:
region = 'KOREA') - Column Mask: 마스킹 표현식 (예:
'***',CONCAT(LEFT(email, 3), '***'))
- Row Filter: SQL WHERE 절 조건 (예:
- 적용 대상 역할 또는 사용자를 선택합니다.
- 저장을 클릭합니다.
정책 시뮬레이션
- 정책 목록에서 시뮬레이션 버튼을 클릭합니다.
- 시뮬레이션 대상 사용자를 선택합니다.
- 해당 사용자 관점에서 쿼리 결과가 어떻게 필터링/마스킹되는지 확인합니다.
정책 삭제
- 정책 목록에서 삭제하려는 정책의 삭제 아이콘을 클릭합니다.
- 확인 대화 상자에서 삭제를 선택합니다.
정책 유형 비교
| 유형 | 적용 대상 | 예시 |
|---|---|---|
| Row Filter | 행 | department = 'SALES' -- 해당 부서 데이터만 조회 |
| Column Mask | 컬럼 | '***' -- 컬럼 값을 마스킹 처리 |
관련 API
| 메서드 | 경로 | 설명 |
|---|---|---|
POST | /api/v1/access/policies | 정책 생성 |
GET | /api/v1/access/policies | 정책 목록 조회 |
DELETE | /api/v1/access/policies/{policy_id} | 정책 삭제 |
POST | /api/v1/access/policies/simulate | 정책 시뮬레이션 |
GET | /api/v1/access/rules | 접근 규칙 조회 |
GET | /api/v1/access/resource-groups | 리소스 그룹 조회 |
정보
접근 정책은 Trino의 System Access Control과 연동됩니다. 정책 변경 후 다음 쿼리 실행부터 적용됩니다. 자세한 RBAC/ABAC 설정은 RBAC/ABAC 가이드를 참조하세요.