사용자 역할 관리
1. 개요
ECI 관리자가 조직 내 사용자에게 부여할 역할(Role)을 생성하고 관리할 수 있는 기능을 제공합니다. 역할 기반 접근 제어(RBAC)를 통해 사용자별로 적절한 권한을 부여하여 보안을 강화하고 업무 효율성을 높일 수 있습니다.
2. RBAC란?
RBAC (Role-Based Access Control, 역할 기반 접근 제어) 는 사용자에게 직접 권한을 부여하는 대신, 역할(Role)을 통해 권한을 관리하는 접근 제어 방식입니다.
2.1 기본 개념
┌─────────┐ 할당 ┌─────────┐ 포함 ┌─────────┐
│ 사용자 │ ──────────▶ │ 역할 │ ──────────▶ │ 권한 │
└─────────┘ └─────────┘ └─────────┘
User Role Permission
- 사용자(User): 시스템을 사용하는 개인
- 역할(Role): 권한의 묶음. 예: "VM 관리자", "조회 전용 사용자"
- 권한(Permission): 특정 리소스에 대한 특정 작업 수행 능력. 예: "가상 머신 생성", "블록 스토리지 조회"
2.2 RBAC의 장점
- 관리 효율성: 개별 사용자마다 권한을 설정하지 않고, 역할 단위로 관리
- 보안 강화: 최소 권한 원칙(Principle of Least Privilege) 적용 용이
- 일관성: 동일 역할의 사용자는 동일한 권한을 가짐
- 감사 용이성: 역할 기반으로 권한 현황 파악 가능
3. 용어 설명
3.1 역할 (Role)
역할은 권한의 집합입니다. 하나의 역할에 여러 개의 권한을 포함할 수 있으며, 사용자에게 역할을 할당하면 해당 역할에 포함된 모든 권한이 부여됩니다.
| 역할 종류 | 설명 |
|---|---|
| 기본 제공 역할 (Predefined) | 시스템에서 기본 제공하는 역할. 수정/삭제 불가 |
| 사용자 정의 역할 (Custom) | 조직에서 직접 생성한 역할. 수정/삭제 가능 |
3.2 권한 (Permission)
권한은 특정 리소스에 대해 특정 작업을 수행할 수 있는 능력입니다.
권한의 구조:
ACL.{섹션}.{하위섹션}.{액션}
예시:
ACL.Resource.Compute.VirtualMachine.CREATE- 가상 머신 생성 권한ACL.Billing.Billing.READ- 빌 링 정보 조회 권한
액션 종류:
| 액션 | 설명 |
|---|---|
| CREATE | 리소스 생성 |
| READ | 리소스 조회 |
| UPDATE | 리소스 수정 |
| DELETE | 리소스 삭제 |
| ACCESS_WEB_CONSOLE | 웹 콘솔 접근 (가상 머신 전용) |
권한 의존성
권한은 서로 의존 관계가 있을 수 있습니다. 예를 들어:
- 가상 머신의 CREATE, UPDATE, DELETE 권한만 부여하고 READ 권한을 부여하지 않으면, 리소스 목록을 조회할 수 없어 실제 사용이 어렵습니다.
- 일반적으로 READ 권한은 다른 권한의 기본 전제가 됩니다. 생성, 수정, 삭제 권한을 부여할 때는 READ 권한도 함께 부여하는 것을 권장합니다.
4. 권한 카테고리
| 카테고리 | 포함 리소스 |
|---|---|
| 일반 (General) | 공지사항, 조직, 리전 |
| 인프라 (Infra) | 블록스토리지 이미지, 인스턴스 타입, 영역 |
| 사용자 관리 (User) | 사용자, 사 용자 역할, 사용자 초대 |
| 관리자 (Admin) | 관리자, 관리자 역할, 관리자 초대 |
| 결제 (Billing) | 결제, 이용내역 |
| 가격 (Pricing) | 요금제 |
| 알림 (Alert) | 알림 규칙, 알림 액션, 알림 이벤트 |
| 메트릭 (Metric) | 리소스 모니터링 |
| 리소스 (Resource) | 컴퓨팅, 네트워크, 스토리지 리소스 |
5. 권한 상세 목록
5.1 일반 (General)
| 리소스 | 권한 | 설명 | 코드명 |
|---|---|---|---|
| 공지사항 | 조회 | 공지사항 및 업데이트 알림을 확인할 수 있습니다 | ACL.General.Notice.READ |
| 조직 | 조회 | 소속 조직의 기본 정보를 확인할 수 있습니다 | ACL.General.Organization.READ |
| 리전 | 조회 | 사용 가능한 리전 목록을 확인할 수 있습니다 | ACL.General.Region.READ |
5.2 인프라 (Infra)
| 리소스 | 권한 | 설명 | 코드명 |
|---|---|---|---|
| 블록 스토리지 이미지 | 조회 | 가상 머신 생성 시 사용할 OS 이미지 목록을 확인할 수 있습니다 | ACL.Infra.BlockStorageImage.READ |
| 인스턴스 타입 | 조회 | CPU, 메모리, GPU 등 인스턴스 사양 목록을 확인할 수 있습니다 | ACL.Infra.InstanceType.READ |
| 영역 | 조회 | 리소스를 배치할 수 있는 가용 영역 목록을 확인할 수 있습니다 | ACL.Infra.Zone.READ |
5.3 결제 (Billing)
| 리소스 | 권한 | 설명 | 코드명 |
|---|---|---|---|
| 결제 | 조회 | 조직의 이용내역을 확인할 수 있습니다 | ACL.Billing.Billing.READ |
5.4 가격 (Pricing)
| 리소스 | 권한 | 설명 | 코드명 |
|---|---|---|---|
| 가격 | 조회 | 가격 정보와 가격표를 확인할 수 있습니다 | ACL.Pricing.Pricing.READ |
5.5 메트릭 (Metric)
| 리소스 | 권한 | 설명 | 코드명 |
|---|---|---|---|
| 메트릭 | 조회 | CPU, 메모리, 네트워크 등 리소스 사용량 모니터링 데이터를 확인할 수 있습니다 | ACL.Metric.Metric.READ |
5.6 알림 (Alert)
| 리소스 | 권한 | 설명 | 코드명 |
|---|---|---|---|
| 알림 규칙 | 생성 | 리소스 모니터링을 위한 알림 규칙을 생성할 수 있습니다 | ACL.Alert.AlertRule.CREATE |
| 알림 규칙 | 조회 | 알림 규칙 목록과 상세 설정을 확인할 수 있습니다 | ACL.Alert.AlertRule.READ |
| 알림 규칙 | 수정 | 알림 규칙의 이름, 조건, 액션 등을 변경할 수 있습니다 | ACL.Alert.AlertRule.UPDATE |
| 알림 규칙 | 삭제 | 알림 규칙을 삭제할 수 있습니다 | ACL.Alert.AlertRule.DELETE |
| 알림 액션 | 생성 | 알림 발생 시 실행할 액션 템플릿을 생성할 수 있습니다 | ACL.Alert.AlertActionTemplate.CREATE |
| 알림 액션 | 조회 | 알림 액션 템플릿 목록과 상세 설정을 확인할 수 있습니다 | ACL.Alert.AlertActionTemplate.READ |
| 알림 액션 | 수정 | 알림 액션 템플릿의 설정을 변경할 수 있습니다 | ACL.Alert.AlertActionTemplate.UPDATE |
| 알림 액션 | 삭제 | 알림 액션 템플릿을 삭제할 수 있습니다 | ACL.Alert.AlertActionTemplate.DELETE |
| 알림 이벤트 | 조회 | 알림 규칙에 의해 발생한 이벤트 이력을 확인할 수 있습니다 | ACL.Alert.AlertEvent.READ |