역할 기반 접근 제어(RBAC)
개요
ECI는 RBAC(Role-Based Access Control) 로 조직 사용자의 리소스 접근 범위를 제어합니다. 사용자에게 직접 권한을 주는 대신 역할(Role) 단위로 묶어서 관리하므로, 동일한 업무를 수행하는 사용자에게 일관된 권한을 빠르게 부여할 수 있습니다.
┌─────────┐ 할당 ┌─────────┐ 포함 ┌─────────┐
│ 사용자 │ ────────▶│ 역할 │ ────────▶│ 권한 │
└─────────┘ └─────────┘ └─────────┘
기본 제공 역할 4종
ECI는 일반적인 사용 시나리오에 맞춰 미리 구성된 4가지 역할을 제공합니다. 기본 제공 역할은 수정·삭제 불가입니다.
| 역할명 | 한글명 | 적합한 대상 |
|---|---|---|
| Owner | 소유자 | 조직 전체를 관리하는 담당자. 인원을 최소화하는 것을 권장 |
| Contributor | 기여자 | 일반 연구자·개발자. 가상머신·스토리지·네트워크 리소스를 직접 생성·운영 |
| Support | 서포터 | 운영 지원 담당자. 리소스 조회와 제한적 수정으로 트러블슈팅 수행 |
| Reader | 뷰어 | 인턴·감사자·외부 협력자 등 조회만 필요한 경우 |
역할별 권한 요약
| 작업 영역 | Owner | Contributor | Support | Reader |
|---|---|---|---|---|
| 리소스 조회 (가상머신·네트워크·스토리지·메트릭) | ✓ | ✓ | ✓ | ✓ |
| 가상머신·네트워크·스토리지 생성·수정·삭제 | ✓ | ✓ | 일부 | : |
| 가상머신 웹 콘솔 접근 | ✓ | ✓ | : | : |
| 사용자 초대·역할 할당 | ✓ | : | : | : |
| 사용자 정의 역할 생성·수정 | ✓ | : | : | : |
| 액세스 토큰 발급·삭제 | ✓ | 본인 토큰만 | : | : |
| 활동 로그 조회 | ✓ | : | ✓ | : |
| 청구서·사용량 조회 | ✓ | : | : | : |
정확한 권한 매트릭스는 포털에서 확인하세요
위 표는 일반 사용 패턴 기준입니다. 각 역할의 정확한 권한 목록은 사용자 역할 관리 페이지에서 역할을 선택하면 확인할 수 있습니다.
권한(Permission) 구조
권한은 ACL. 접두사로 시작하는 4–5단계 코드로 표현됩니다.
ACL.{섹션}.{하위섹션}.{액션} # Resource 외 섹션
ACL.Resource.{Compute|Network|Storage}.{리소스}.{액션} # Resource 섹션
예시
ACL.Resource.Compute.VirtualMachine.CREATE: 가상머신 생성ACL.Resource.Storage.BlockStorage.UPDATE: 블록 스토리지 수정ACL.Resource.Compute.VirtualMachineAllocation.ACCESS_WEB_CONSOLE: 가상머신 웹 콘솔 접근ACL.Billing.Billing.READ: 청구서·사용량 조회ACL.User.UserInvite.CREATE: 사용자 초대 발송ACL.Alert.AlertRule.CREATE: 알림 규칙 생성
Resource 섹션은 Compute / Network / Storage 중간 분류 아래에 리소스가 있어 5단계로 길어집니다. 단, Resource.OrganizationResourceSummary처럼 중간 분류 없이 바로 붙는 항목도 있습니다.
액션 종류
| 액션 | 의미 |
|---|---|
CREATE | 리소스 생성 |
READ | 리소스 조회 |
UPDATE | 리소스 수정 |
DELETE | 리소스 삭제 |
ACCESS_WEB_CONSOLE | 가상머신 웹 콘솔 접근 (가상머신 전용) |
섹션과 하위 섹션
| 섹션 | 하위 분류 / 리소스 |
|---|---|
| General | Notice, Organization, Region |
| Infra | BlockStorageImage, InstanceType, Zone |
| Billing | Billing |
| Pricing | Pricing |
| Metric | Metric |
| Alert | AlertRule, AlertActionTemplate, AlertEvent |
| User | ACL, User, UserAudit, UserAccessToken, UserInvite, UserRole |
| Resource.Compute | VirtualMachine, VirtualMachineAllocation, VirtualCluster, VirtualClusterAllocation |
| Resource.Network | VirtualNetwork, Subnet, NetworkInterface, PublicIp, Vpn, LoadBalancer |
| Resource.Storage | BlockStorage, BlockStorageSnapshot, BlockStorageSnapshotScheduler, ObjectStorage, ObjectStorageUser, ObjectStorageUserGrant, ParallelFileSystem, ParallelFileSystemMember |
| Resource (직접) | OrganizationResourceSummary |
READ 권한은 다른 권한의 기본 전제입니다
CREATE/UPDATE/DELETE만 부여하고 READ를 빼면 사용자가 리소스 목록을 못 봐서 실제로 사용할 수 없습니다. 생성·수정·삭제 권한을 줄 때는 같은 리소스의 READ 권한도 함께 부여하세요.
사용자 정의 역할 생성
조직별 워크플로에 맞춰 역할을 직접 만들 수 있습니다.
1단계: 역할 생성
- 사용자 관리 > 사용자 역할로 이동합니다.
- 역할 생성을 클릭합니다.
- 역할명·설명을 입력합니다.
- 권한 트리에서 필요한 권한을 체크합니다.
- 생성을 클릭합니다.
2단계: 사용자에게 역할 부여
- 사용자 관리 > 사용자에서 대상 사용자를 선택합니다.
- 사용자 상세 페이지에서 역할 편집으로 만든 역할을 추가합니다.
- 저장을 클릭합니다.
한 사용자에게 여러 역할 부여 가능
여러 역할을 부여하면 모든 역할의 권한이 합쳐져서(union) 적용됩니다. 작은 단위 역할을 여러 개 조합해 운영하는 패턴이 관리에 편합니다.
사용자 정의 역할 예시
| 역할명 | 부여하는 권한 (요약) | 적합한 대상 |
|---|---|---|
| 가상머신 관리자 | ACL.Resource.Compute.VirtualMachine.*, ACL.Resource.Compute.VirtualMachineAllocation.* (ACCESS_WEB_CONSOLE 포함), ACL.Resource.Compute.VirtualCluster.* | 가상머신 운영 전담자 |
| 네트워크 조회자 | ACL.Resource.Network.{VirtualNetwork,Subnet,NetworkInterface,PublicIp,Vpn}.READ | 보안·감사 담당 |
| 빌링 담당자 | ACL.Billing.Billing.{READ,UPDATE} + ACL.Pricing.Pricing.READ | 재무 담당 |
| 스토리지 관리자 | ACL.Resource.Storage.{BlockStorage,BlockStorageSnapshot,BlockStorageSnapshotScheduler,ObjectStorage,ObjectStorageUser,ParallelFileSystem}.* | 데이터 운영 담당 |
| 알림 운영자 | ACL.Alert.{AlertRule,AlertActionTemplate,AlertEvent}.* + ACL.Metric.Metric.READ | SRE/온콜 담당 |