역할 기반 접근 제어(RBAC)를 사용하면 조직과 프로젝트에서 누가 어떤 작업을 수행할 수 있는지 정할 수 있습니다. API와 대시보드에는 동일한 권한이 적용됩니다. 예를 들어 /v1/chat/completions 같은 엔드포인트를 호출할 수 있는 사용자는 그에 해당하는 대시보드 페이지도 사용할 수 있습니다. 필요한 권한이 없으면 Playground의 업로드 버튼처럼 해당 권한이 필요한 UI 요소가 비활성화됩니다. RBAC로 다음 작업을 수행할 수 있습니다.
- 사용자를 그룹으로 묶어 여러 사용자에게 한 번에 권한 부여
- 필요한 권한만 포함하는 사용자 지정 역할 만들기
- 조직 또는 프로젝트 수준에서 접근 범위 설정
- 대시보드와 API에 일관된 권한 적용
주요 개념
- 조직: 최상위 계정입니다. 조직 역할로 조직 내 모든 프로젝트에 대한 접근 권한을 부여할 수 있습니다.
- 프로젝트: 키, 파일, 리소스를 위한 워크스페이스입니다. 프로젝트 역할은 해당 프로젝트 내에서만 접근 권한을 부여합니다.
- 그룹: 여러 사용자에게 역할을 한 번에 할당할 수 있도록 사용자를 묶은 단위입니다. SCIM을 통해 ID 공급자의 그룹을 동기화하면 그룹 구성원 목록이 자동으로 최신 상태로 유지됩니다.
- 역할: 모델 요청, 파일 쓰기 등의 권한을 묶은 단위입니다. 조직 설정에서 조직 역할을 만들거나 특정 프로젝트의 설정에서 해당 프로젝트 역할을 만들 수 있습니다. 만든 역할은 사용자나 그룹에 할당할 수 있습니다. 사용자에게 여러 역할을 할당하면 해당 사용자는 각 역할의 권한을 모두 사용할 수 있습니다.
- 권한: 역할을 통해 허용되는 구체적인 작업입니다. 예를 들어 모델에 요청 보내기, 파일 읽기, 파일 쓰기, 키 관리가 있습니다.
권한
아래 표에서 사용 가능한 권한, 각 권한이 포함된 기본 역할, 사용자 지정 역할에 해당 권한을 설정할 수 있는지 확인할 수 있습니다.
| 영역 | 허용되는 작업 | 조직 소유자 권한 | 조직 열람자 권한 | 프로젝트 소유자 권한 | 프로젝트 구성원 권한 | 프로젝트 뷰어 권한 | 사용자 지정 역할에 설정 가능 |
|---|---|---|---|---|---|---|---|
| 모델 목록 조회 | 조직에서 접근할 수 있는 모델 목록 조회 | Read |
Read |
Read |
Read |
Read |
✓ |
| 그룹 | 그룹 조회 및 관리 | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
|
| 역할 | 역할 조회 및 관리 | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
|
| 조직 관리 | 조직의 사용자, 프로젝트, 초대, 관리자 API 키, 요청 한도 관리 | Read, Write |
|||||
| 사용량 | 사용량 대시보드 조회 및 사용량 데이터 내보내기 | Read |
✓ | ||||
| 외부 키 | 엔터프라이즈 키 관리에 사용하는 키 조회 및 관리 | Read, Write |
|||||
| IP 허용 목록 | IP 허용 목록 조회 및 관리 | Read, Write |
|||||
| mTLS | 상호 TLS 설정 조회 및 관리 | Read, Write |
|||||
| OIDC | OIDC 구성 조회 및 관리 | Read, Write |
|||||
| 모델 기능 | 채팅 완성, 오디오, 임베딩, 이미지 요청 보내기 | Request |
Request |
Request |
Request |
✓ | |
| 어시스턴트 | 어시스턴트 생성 및 조회 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| 스레드 | 스레드, 메시지, 실행 생성 및 조회 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| 평가 | 평가 생성, 조회 및 삭제 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| 파인튜닝 | 파인튜닝 작업 생성 및 조회 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| 파일 | 파일 생성 및 조회 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| 벡터 저장소 | 벡터 저장소 생성 및 조회 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
✓ | |
| Responses API | 응답 생성 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
✓ | |
| 프롬프트 | Responses API와 Realtime API에서 컨텍스트로 사용할 프롬프트 생성 및 조회 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| 웹훅 | 프로젝트에서 웹훅 생성 및 조회 | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
✓ |
| 데이터 세트 | 데이터 세트 생성 및 조회 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| 앱 | 대시보드에서 앱 생성 및 관리, 앱 심사 요청 | Read, Write |
✓ | ||||
| 터널 | 조직 수준의 터널 점검, 사용 및 관리 | Read, Use, Manage |
✓ | ||||
| 프로젝트 API 키 | 사용자 본인의 API 키 관리 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| 프로젝트 관리 | 관리 API를 통해 프로젝트 사용자, 서비스 계정, API 키, 요청 한도 관리 | Read, Write |
Read, Write |
||||
| 배치 | 배치 작업 생성 및 관리 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
|
| 서비스 계정 | 프로젝트 서비스 계정 조회 및 관리 | Read, Write |
Read, Write |
||||
| 음성 | 음성 생성 및 조회 | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
|
| Agent Builder | Agent Builder에서 에이전트와 워크플로우 생성 및 관리 | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
✓ |
배치 권한에 포함되는 추가 권한
배치 권한에는 배치 입력 파일을 준비하고 요청을 실행한 뒤 결과를 조회하는 데 필요한 접근 권한이 포함됩니다. 이때 부여되는 접근 권한과 배치에 포함해 제출할 수 있는 엔드포인트의 범위는 별개입니다. 배치에서 지원하는 엔드포인트 목록은 Batch API 가이드에서 확인하세요.
| 배치 권한 | 추가로 부여되는 권한 |
|---|---|
읽기(api.batch.read) |
파일 읽기(api.files.read) 권한이 /v1/files에 적용됩니다. |
쓰기(api.batch.write) |
배치 읽기 모델 목록 조회( api.model.read 및 model.read) 권한이 /v1/models에 적용됩니다.파일 읽기 및 쓰기( api.files.read 및 api.files.write) 권한이 /v1/files에 적용됩니다.모델 기능 요청( api.model.request 및 model.request) 권한이 /v1/audio, /v1/chat/completions, /v1/embeddings, /v1/images, /v1/moderations, /v1/realtime, /v1/responses에 적용됩니다. |
RBAC 설정하기
역할 변경 사항과 그룹 동기화 결과가 반영되기까지 최대 30분이 걸릴 수 있습니다.
-
그룹 만들기 팀별로 그룹을 추가하세요. 예를 들어 데이터 과학 그룹과 지원 그룹을 만들 수 있습니다. ID 공급자(IdP)를 사용한다면 SCIM 동기화를 활성화해 그룹 구성원 목록을 최신 상태로 유지하세요.
-
사용자 지정 역할 만들기 필요한 최소 권한부터 부여하세요. 역할별 권한의 예는 다음과 같습니다.
- 모델 테스터: 모델 읽기, 모델 기능 요청, 평가
- 모델 엔지니어: 모델 기능 요청, 파일 읽기/쓰기, 파인튜닝
- 앱 게시자: 앱 읽기, 앱 쓰기
-
역할 할당하기
- 조직 수준 역할은 조직 내 모든 프로젝트에 적용됩니다.
- 프로젝트 수준 역할은 해당 프로젝트에만 적용됩니다. 역할은 사용자와 그룹에 할당할 수 있습니다. 사용자에게 여러 역할이 있으면 각 역할이 부여하는 권한의 합집합이 적용됩니다.
-
권한 확인하기 소유자 권한이 없는 계정으로 API와 대시보드에서 의도한 범위까지 접근할 수 있는지 확인하세요. 사용자가 필요한 범위를 넘어 정보를 볼 수 있다면 역할을 조정하세요.
최소 권한 원칙을 적용하세요. 작업에 꼭 필요한 권한부터 부여하고, 필요할 때만 권한을 추가하세요.
접근 권한 설정 예시
소규모 팀
- 핵심 팀에는 모델 기능 요청과 파일 읽기/쓰기 권한이 포함된 조직 수준 역할을 할당하세요.
- 앱마다 프로젝트를 만들고, 계약 인력은 담당 프로젝트에만 추가해 프로젝트 수준 역할을 할당하세요.
대규모 조직
- IdP에서 그룹을 동기화하세요. 예를 들어 연구, 지원, 재무 그룹을 동기화할 수 있습니다.
- 직무별로 사용자 지정 역할을 만들어 조직 수준에서 할당하세요. 더 엄격한 접근 제어가 필요한 프로젝트에는 프로젝트 수준 역할만 부여하세요.
계약 인력 및 협력업체
- 조직 수준 역할이 없는 ‘계약 인력’ 그룹을 만드세요.
- 그룹 구성원을 특정 프로젝트에 추가하고 읽기 전용 권한처럼 접근 범위가 좁은 프로젝트 역할을 부여하세요.
사용자 접근 권한을 결정하는 방식
대시보드에서는 다음 역할을 함께 고려합니다.
- 조직에서 직접 또는 그룹을 통해 할당받은 역할
- 프로젝트에서 직접 또는 그룹을 통해 할당받은 역할
실제로 적용되는 권한은 할당받은 모든 역할이 부여하는 권한의 합집합입니다.
프로젝트에서 API 키로 요청을 보내면 API 키에 부여된 권한을 확인하고, 사용자에게도 해당 권한을 부여하는 프로젝트 역할이 있는지 확인합니다. 예를 들어 /v1/models에 요청을 보내려면 API 키에 api.model.read 권한이 부여되어 있어야 하며, 사용자에게도 api.model.read 권한을 포함하는 프로젝트 역할이 있어야 합니다.
권장 사항
- 팀 구조에 맞춰 그룹 구성하기: IdP에 실제 팀 구성을 반영하고 그룹 단위로 역할을 할당하세요.
- 업무 분리하기: 모델 읽기, 파일 업로드, 키 관리 업무를 구분하세요.
- 프로젝트 분리하기: 실험, 스테이징, 프로덕션 환경을 각각 별도의 프로젝트로 구성하세요.
- 정기적으로 검토하기: 사용하지 않는 역할과 키를 제거하고 민감한 키는 주기적으로 교체하세요.
- 소유자 권한이 없는 계정으로 테스트하기: 전체 적용에 앞서 접근 범위가 의도한 대로 설정되었는지 확인하세요.