왜 모델 권한 관리가 중요한가
머신러닝 모델은 단순한 코드 파일이 아닙니다. 프로덕션 환경에서 실행되는 모델은 비즈니스 의사결정 에 직접 영향을 미치며, 잘못된 모델이 배포되면 금전적 손실이나 규제 위반으로 이어질 수 있습니다.무분별한 모델 배포의 위험성
- 검증되지 않은 모델 배포: 실험 중인 모델이 실수로 프로덕션에 배포되어 예측 품질 저하
- 모델 오염 (Model Poisoning): 악의적 사용자가 학습 데이터나 모델 가중치를 변조
- 규제 위반: 금융/의료 도메인에서 승인되지 않은 모델 사용 시 법적 제재 (GDPR, HIPAA 등)
- 추적 불가: 누가 언제 어떤 모델을 배포했는지 기록이 없으면 사고 원인 분석 불가
규제 준수 (Compliance) 요구사항
| 규제 | 관련 요구사항 |
|---|---|
| GDPR | 자동화된 의사결정 모델의 설명 가능성, 접근 권한 기록 |
| HIPAA | 의료 데이터를 사용한 모델의 접근 제어 및 감사 로그 |
| SOC 2 | 모델 변경 이력, 배포 승인 프로세스 문서화 |
| 금융 규제 | 신용 심사 모델의 변경 통제 및 독립적 검증 요구 |
Unity Catalog (UC)가 제공하는 보호
Unity Catalog 기반 Model Registry는 테이블과 동일한 거버넌스 체계 를 모델에 적용합니다. 단일 접근 제어 계층에서 데이터 → 피처 → 모델 → 엔드포인트까지 일관된 권한 관리가 가능합니다.Unity Catalog 기반 모델 권한 체계
권한 계층 구조
UC 모델 권한은 Catalog → Schema → Model 3단계 네임스페이스를 따릅니다. 상위 레벨 권한이 없으면 하위 레벨에 접근할 수 없습니다.주요 권한 설명
| 권한 | 적용 대상 | 허용 작업 |
|---|---|---|
USE CATALOG | Catalog | Catalog 내 객체 탐색 |
USE SCHEMA | Schema | Schema 내 객체 탐색 |
CREATE MODEL | Schema | 새 모델 등록 (새 버전 포함) |
EXECUTE | Model | 모델 버전 조회, 추론 호출 |
APPLY TAG | Model | 모델에 태그 추가/수정 |
ALL PRIVILEGES | Model | 모든 작업 (소유자 수준) |
참고: EXECUTE 권한은 모델 가중치 파일 다운로드를 허용하지 않습니다. 모델 아티팩트 (Artifact) 접근은 별도의 Storage Credential 권한으로 제어됩니다.
참고 링크: Unity Catalog privileges for ML models
역할별 권한 설계
실제 조직에서는 역할 (Role) 기반으로 권한을 그룹화하는 것이 권장됩니다.데이터 사이언티스트 (Data Scientist)
실험을 수행하고 모델을 등록하는 역할. 프로덕션 배포 권한은 없습니다.ML 엔지니어 (ML Engineer)
승인된 모델을 프로덕션에 배포하고 모니터링하는 역할.모델 소비자 (Model Consumer)
추론 API를 호출하는 애플리케이션 또는 팀. 읽기 전용 권한만 부여합니다.관리자 (Admin)
전체 모델 생명주기를 관리하는 역할. 서비스 프린시펄 (Service Principal) 계정으로 운영하는 것을 권장합니다.Model Serving 연동
모델 → 엔드포인트 배포 워크플로
서비스 프린시펄 (Service Principal) 설정
엔드포인트가 UC 모델에 접근하려면 서비스 프린시펄 에 권한을 부여해야 합니다. 개인 계정 대신 서비스 프린시펄을 사용하면 담당자 이직/퇴사 시에도 서비스가 중단되지 않습니다.엔드포인트 권한 관리
Model Serving 엔드포인트 자체에도 별도의 권한 체계가 있습니다. UC 모델 권한과는 독립적으로 관리됩니다.엔드포인트 권한 레벨
| 권한 | 허용 작업 |
|---|---|
CAN_MANAGE | 엔드포인트 생성/수정/삭제, 권한 관리 |
CAN_QUERY | 엔드포인트에 추론 요청 전송 (REST API 호출) |
CAN_VIEW | 엔드포인트 상태 및 설정 조회 |
PAT (Personal Access Token) vs OAuth 토큰
| 방식 | 장점 | 단점 |
|---|---|---|
| PAT | 설정 간단 | 만료 관리 필요, 개인 계정에 종속 |
| OAuth M2M | 서비스 프린시펄 기반, 자동 갱신 | 초기 설정 복잡 |
| Instance Profile (AWS) | IAM 기반, 자격증명 불필요 | EC2/클러스터에서만 사용 가능 |
CI/CD와 자동화
서비스 프린시펄 기반 자동 배포 패턴
수동 배포 대신 CI/CD 파이프라인으로 모델 배포를 자동화하면 일관성과 추적성이 향상됩니다.GitHub Actions 연동 예시
보안 주의: GitHub Actions Secret에 DATABRICKS_SP_CLIENT_SECRET을 저장하고, 서비스 프린시펄에는 배포에 필요한 최소 권한만 부여합니다.
감사와 컴플라이언스
system.access.audit 활용
Unity Catalog는 모든 모델 접근 이벤트를system.access.audit 테이블에 자동으로 기록합니다. 별도의 로깅 코드 없이 감사 추적이 가능합니다.
UC Model Registry vs Legacy Workspace Registry
Databricks에는 두 가지 Model Registry가 존재합니다. 현재 UC Model Registry 가 표준이며, Workspace Registry는 레거시로 분류됩니다.| 항목 | Workspace Registry (레거시) | UC Model Registry (현재 표준) |
|---|---|---|
| 네임스페이스 | model_name (flat) | catalog.schema.model_name (3-Level) |
| 접근 제어 | Workspace ACL (제한적) | UC GRANT/REVOKE (세밀한 권한) |
| 크로스 워크스페이스 | 불가 | 가능 (UC 공유) |
| 리니지 | 제한적 | 자동 리니지 (소스 데이터 → 모델) |
| 감사 로그 | Workspace 로그 | UC 시스템 테이블 (system.access.audit) |
| Stage | Staging/Production/Archived | Alias (자유 정의) |
| Delta Sharing | 불가 | 모델을 외부와 공유 가능 |
Workspace Registry → UC Registry 마이그레이션
⚠️ 마이그레이션 주의사항: Model Serving 엔드포인트의 참조도 함께 업데이트해야 합니다.models:/legacy_fraud_detection/Production→ml_catalog.production_models.fraud_detection@champion으로 변경합니다.
베스트 프랙티스와 흔한 실수
권장 사항
| 항목 | 권장 | 피해야 할 것 |
|---|---|---|
| 계정 관리 | 서비스 프린시펄 사용 | 개인 PAT 토큰으로 자동화 |
| 권한 부여 | 최소 권한 원칙 (Least Privilege) | ALL PRIVILEGES를 모든 팀에 부여 |
| 배포 방식 | Alias 기반 무중단 전환 | 버전 번호 하드코딩 |
| 승인 프로세스 | CI/CD 파이프라인 + 메트릭 검증 게이트 | 수동 노트북 실행으로 배포 |
| 토큰 관리 | OAuth M2M, 짧은 만료 시간 | 만료 없는 PAT 토큰 사용 |