본문으로 건너뛰기

보안 등급 관리

카탈로그·테이블·벡터 컬렉션에 보안 등급을 부여해, AI 가 참조할 수 있는 범위를 데이터 자산 단위로 통제합니다. 사이드바 관리 콘솔 → 접근 제어 & 보안 → 보안 등급 (/admin/security-levels) 에서 관리합니다.

:::info 권한 조회·변경 모두 admin 전용입니다 (require_admin). analyst 이하는 메뉴 자체가 보이지 않습니다. :::

등급 체계

등급의미
PUBLIC제한 없음. 기본값
CONFIDENTIAL사내 한정 — 해당 clearance 를 가진 호출자만
TOP_SECRET최상위 — 명시적으로 승인된 호출자만

등급은 호출자의 llm_clearance 와 대조됩니다. 여기서 중요한 점은 admin 이라고 자동으로 열람되지 않는다는 것입니다 — 플랫폼 관리자 권한(is_admin)과 데이터 열람 자격(llm_clearance)은 별개 축입니다.

적용 대상 3종

대상범위비고
카탈로그카탈로그 전체하위 테이블의 기본값이 됩니다
테이블catalog.schema.table 단위카탈로그 기본값을 덮어쓰는 오버라이드. 삭제하면 카탈로그 값으로 되돌아갑니다
벡터 컬렉션RAG 컬렉션 단위vector_policy_enforcer 가 검색 시 server-side where 로 강제합니다

사용 방법

  1. 관리 콘솔 → 접근 제어 & 보안 → 보안 등급 으로 이동합니다
  2. 탭에서 카탈로그 / 테이블 / 벡터 컬렉션 중 대상을 고릅니다
  3. 항목의 등급 변경 버튼을 눌러 등급을 선택합니다
  4. 테이블 오버라이드에는 사유(reason) 를 남길 수 있습니다 — 왜 기본값을 벗어났는지 나중에 추적하기 위한 필드입니다
  5. 저장하면 즉시 반영됩니다 (보안 등급이 저장되었습니다)

오버라이드를 되돌리려면 해당 행에서 삭제하면 됩니다 — 등급이 사라지는 것이 아니라 상위 기본값으로 복귀합니다.

API

모두 require_admin 입니다.

메서드경로설명
GET/api/v1/security/levels/catalogs카탈로그 등급 목록
PUT/api/v1/security/levels/catalogs/{catalog}카탈로그 등급 설정
GET/api/v1/security/levels/tables테이블 오버라이드 목록
PUT/api/v1/security/levels/tables/{catalog}/{schema}/{table}테이블 오버라이드 설정
DELETE/api/v1/security/levels/tables/{catalog}/{schema}/{table}테이블 오버라이드 삭제 (상위 기본값 복귀)
GET/api/v1/security/levels/collections벡터 컬렉션 등급 목록
PUT/api/v1/security/levels/collections/{name}벡터 컬렉션 등급 설정

응답 예시 — 카탈로그 목록:

{"items": [{"catalog": "jmlee", "security_level": "PUBLIC"}]}

테이블 오버라이드 목록은 배열이며 reason·created_by 를 함께 돌려줍니다:

[
{
"id": "8a209cf2-...",
"catalog": "iceberg",
"schema_name": "card",
"table_name": "merchants",
"security_level": "PUBLIC",
"reason": "AI agent demo unblock — admin override",
"created_by": "63f300a6-..."
}
]

다른 통제와의 관계

보안 등급은 AI 참조 범위를 가르는 축입니다. 사용자의 SQL 실행 권한을 가르는 축은 따로 있습니다.

  • SQL 로 테이블을 직접 조회할 수 있는지는 데이터 액세스 의 DataGrant 가 정합니다
  • 컬럼 값 마스킹은 PII 관리 가 담당합니다
  • 두 통제는 독립적입니다 — 보안 등급을 올려도 DataGrant 가 있으면 SQL 조회는 됩니다. AI 가 컨텍스트로 끌어가는 것을 막는 것이 보안 등급의 역할입니다