프로젝트 역할과 권한
프로젝트 역할과 권한 (Project Roles & Permissions)
팀 역할과 권한을 관리해서 프로젝트 멤버의 접근 수준을 제어할 수 있어요.
역할과 권한은 각 팀 멤버가 프로젝트 안에서 무엇을 할 수 있는지 제어하게 해 줘요.
역할, 정책, 권한이 어떻게 함께 동작하는지에 대한 개요는 RBAC 개요를 참고해요.
Project Roles & Permissions
출처: 문서
본문
기본 역할 (Default Roles)
모든 프로젝트에는 세 개의 사전 설정 역할이 있어요. 각 사전 설정 역할은 달리 명시되지 않는 한 모든 프로젝트 권한을 포함해요.
오너 (Owner)
프로젝트의 모든 리소스에 대한 전체 접근 권한이에요. 권한 제외가 없어요.
매니저 (Manager)
모든 권한을 포함해요. 매니저는 오너와 동일한 접근 권한을 가져요.
멤버 (Member)
project:delete, retentionConfig:manage, user:manage, user:delete, iam:manage를 제외한 모든 것을 포함해요. 멤버는 프로젝트를 삭제하거나, 보존 설정을 관리하거나, 프로젝트 멤버에게 역할을 할당하거나, 프로젝트에서 멤버를 제거하거나, 역할과 정책을 관리할 수 없어요.
커스텀 역할 (Custom Roles)
팀의 필요에 맞는 커스텀 역할을 만들 수 있어요. 새 역할을 만들려면:
- 프로젝트 설정 (Project Settings) → 역할과 권한 (Roles & Permissions) 으로 이동해요
- New Role 을 클릭해요
- 역할의 이름과 설명을 입력해요
- 역할에 정책을 할당해요
- Save 를 클릭해요
흔한 커스텀 역할로, 특정 사용자 그룹에게만 데이터셋에 대한 읽기·쓰기 접근을 허용하는 "Annotator(어노테이터)" 역할이 있어요.
커스텀 정책 (Custom Policies)
정책은 역할이 가진 구체적인 권한을 정의해요. 각 권한은 dataset:read, dataset:create, golden:update, trace:delete 같은 특정 동작에 대한 접근을 제어해요.
커스텀 정책을 만들려면:
- 프로젝트 설정 (Project Settings) → 역할과 권한 (Roles & Permissions) 으로 이동해요
- 커스텀 정책 (Custom Policies) 까지 스크롤하고 New Policy 를 클릭해요
- 정책의 이름을 입력해요
- 포함할 권한을 선택해요
- Save 를 클릭해요
만든 뒤에는 커스텀 정책을 어떤 역할에도 할당할 수 있어요.
커스텀 역할은 특화된 접근 수준을 만드는 데 유용해요 — 트레이스나 테스트 실행에는 접근하지 않고 데이터셋만 보고 편집할 수 있는 Annotator 역할처럼요.
권한 문법 (Permission Syntax)
권한은 resource:action 형식을 따라요. 예를 들어 dataset:read는 데이터셋에 대한 읽기 접근을 부여하고, trace:evaluate는 트레이스에 대한 평가 실행을 허용해요.
동작 (Actions):
create— 새 리소스 만들기read— 리소스 보기update— 기존 리소스 수정delete— 리소스 제거evaluate— 리소스에 대한 평가 실행assign— 리소스를 사용자 또는 큐에 할당manage—create,update,delete포함 (리소스에 따라 달라져요)
권한 리소스 (Permission resources):
dataset,golden— 데이터셋과 그 골든metric,metricCollection— 메트릭 점수와 컬렉션evaluationRule— 수신 트레이스, 스팬, 스레드에서 메트릭 컬렉션을 자동 실행하는 규칙trace,span,thread,endUser— 옵저버빌리티 데이터testRun,testCase,experiment— 평가 실행prompt,promptVersion,promptLabel— 프롬프트와 그 버전annotationQueue,queue_item— 어노테이션 큐와 그 항목project,apiKey,modelCredential,modelCost,evaluationModel— 프로젝트 설정과 구성retentionConfig— 트레이스, 스팬, 테스트 실행, 데이터셋, 프롬프트의 데이터 보존 설정 (각각 얼마나 오래 보관할지)iam— 프로젝트 역할과 정책transformer,aiConnection,alertConfig,integration— 통합과 도구user— 팀 멤버 관리;user:manage는 멤버에게 역할을 할당하는 것을 제어하고,user:delete는 프로젝트에서 멤버를 제거하는 것을 제어해요
모든 리소스가 모든 동작을 가지는 건 아니에요. 예를 들어 데이터셋에는 project_member가 없고, annotation_queue에는 evaluate가 없어요. 전체 권한 목록은 역할과 권한 페이지에서 확인할 수 있어요.