Skip to main content

Role-based access control (RBAC)

Overview

ECI uses RBAC (Role-Based Access Control) to govern what organization users can access. Instead of granting permissions directly to a user, you bundle them into roles and assign roles. That way, users doing the same job get a consistent set of permissions quickly.

┌────────┐ assign ┌────────┐ contains ┌────────────┐
│ User │ ────────▶ │ Role │ ─────────▶ │ Permissions │
└────────┘ └────────┘ └────────────┘

The four built-in roles

ECI ships four preconfigured roles for common scenarios. Built-in roles cannot be edited or deleted.

RoleKorean nameBest fit
Owner소유자Whoever manages the whole organization. Keep this list small
Contributor기여자Researchers and developers who create and operate VM, storage, and network resources
Support서포터Ops support staff — view resources and make limited changes for troubleshooting
Reader뷰어Interns, auditors, external partners — anyone who only needs read access

Permission summary by role

AreaOwnerContributorSupportReader
Read resources (VMs, network, storage, metrics)
Create / update / delete VMs, network, storagePartial
VM web console access
Invite users / assign roles
Create / edit custom roles
Issue / delete access tokensOwn tokens
Read the audit log
Read invoices and usage
See the portal for the exact permission matrix

The table above reflects typical usage. For the exact permission list of each role, pick the role on the User Role Management page.


Permission code structure

Permission codes are 4–5 segments long and start with ACL.:

ACL.{section}.{subsection}.{action} # non-Resource sections
ACL.Resource.{Compute|Network|Storage}.{resource}.{action} # Resource section

Examples

  • ACL.Resource.Compute.VirtualMachine.CREATE: create a VM
  • ACL.Resource.Storage.BlockStorage.UPDATE: edit block storage
  • ACL.Resource.Compute.VirtualMachineAllocation.ACCESS_WEB_CONSOLE: VM web console access
  • ACL.Billing.Billing.READ: read invoices and usage
  • ACL.User.UserInvite.CREATE: send user invitations
  • ACL.Alert.AlertRule.CREATE: create alert rules

The Resource section adds an intermediate Compute / Network / Storage grouping, making it 5 segments. A few items (like Resource.OrganizationResourceSummary) skip the intermediate grouping.

Actions

ActionMeaning
CREATECreate a resource
READRead a resource
UPDATEUpdate a resource
DELETEDelete a resource
ACCESS_WEB_CONSOLEVM web console access (VM only)

Sections and subsections

SectionSubsections / resources
GeneralNotice, Organization, Region
InfraBlockStorageImage, InstanceType, Zone
BillingBilling
PricingPricing
MetricMetric
AlertAlertRule, AlertActionTemplate, AlertEvent
UserACL, User, UserAudit, UserAccessToken, UserInvite, UserRole
Resource.ComputeVirtualMachine, VirtualMachineAllocation, VirtualCluster, VirtualClusterAllocation
Resource.NetworkVirtualNetwork, Subnet, NetworkInterface, PublicIp, Vpn, LoadBalancer
Resource.StorageBlockStorage, BlockStorageSnapshot, BlockStorageSnapshotScheduler, ObjectStorage, ObjectStorageUser, ObjectStorageUserGrant, ParallelFileSystem, ParallelFileSystemMember
Resource (direct)OrganizationResourceSummary
READ is a prerequisite for other permissions

Granting CREATE/UPDATE/DELETE without READ means the user can't see the resource list, so they can't actually use the permission. When you grant create/update/delete on a resource, grant READ on the same resource too.


Creating a custom role

You can define roles tailored to your organization's workflow.

Step 1: Create the role

  1. Go to User Management > User Roles.
  2. Click Create role.
  3. Enter a name and description.
  4. Check the permissions you want in the permission tree.
  5. Click Create.

Step 2: Assign the role to a user

  1. Pick the user in User Management > Users.
  2. On the user detail page, click Edit roles and add the new role.
  3. Click Save.
A user can hold multiple roles

With multiple roles, the union of all roles' permissions is applied. Composing small-grained roles tends to be easier to manage.


Custom role examples

RolePermissions (summary)Best fit
VM adminACL.Resource.Compute.VirtualMachine.*, ACL.Resource.Compute.VirtualMachineAllocation.* (including ACCESS_WEB_CONSOLE), ACL.Resource.Compute.VirtualCluster.*Dedicated VM operator
Network readerACL.Resource.Network.{VirtualNetwork,Subnet,NetworkInterface,PublicIp,Vpn}.READSecurity / audit
Billing operatorACL.Billing.Billing.{READ,UPDATE} + ACL.Pricing.Pricing.READFinance
Storage adminACL.Resource.Storage.{BlockStorage,BlockStorageSnapshot,BlockStorageSnapshotScheduler,ObjectStorage,ObjectStorageUser,ParallelFileSystem}.*Data operations
Alerts operatorACL.Alert.{AlertRule,AlertActionTemplate,AlertEvent}.* + ACL.Metric.Metric.READSRE / on-call

Full permission code list

The complete list of permission codes used in the API, CLI, and audit log. It maps 1:1 to the portal's permission-tree UI.

General / Infra / Billing / Pricing / Metric / Alert / User

General

CodeDescription
ACL.General.Notice.READRead notices
ACL.General.Organization.READRead organization
ACL.General.Region.READList regions

Infra

CodeDescription
ACL.Infra.BlockStorageImage.READList OS images
ACL.Infra.InstanceType.READList instance types
ACL.Infra.Zone.READList zones

Billing / Pricing / Metric

CodeDescription
ACL.Billing.Billing.READRead usage and invoices
ACL.Billing.Billing.UPDATEChange payment settings
ACL.Pricing.Pricing.READRead pricing
ACL.Metric.Metric.READRead metrics

Alert

CodeDescription
ACL.Alert.AlertRule.{CREATE,READ,UPDATE,DELETE}Alert rules
ACL.Alert.AlertActionTemplate.{CREATE,READ,UPDATE,DELETE}Alert action templates
ACL.Alert.AlertEvent.READRead alert event history

User

CodeDescription
ACL.User.ACL.READList permissions
ACL.User.User.{READ,UPDATE,DELETE}Manage users
ACL.User.UserAudit.READRead the audit log
ACL.User.UserAccessToken.{CREATE,READ,DELETE}Access tokens
ACL.User.UserInvite.{CREATE,READ,DELETE}User invitations
ACL.User.UserRole.{CREATE,READ,UPDATE,DELETE}Custom roles
Resource — Compute / Network / Storage

Resource.Compute

CodeDescription
ACL.Resource.Compute.VirtualMachine.{CREATE,READ,UPDATE,DELETE}VM
ACL.Resource.Compute.VirtualMachineAllocation.{CREATE,READ,UPDATE,DELETE}VM start/stop
ACL.Resource.Compute.VirtualMachineAllocation.ACCESS_WEB_CONSOLEVM web console access
ACL.Resource.Compute.VirtualCluster.{CREATE,READ,UPDATE,DELETE}Virtual cluster
ACL.Resource.Compute.VirtualClusterAllocation.{CREATE,READ,UPDATE,DELETE}Virtual cluster run

Resource.Network

CodeDescription
ACL.Resource.Network.VirtualNetwork.{CREATE,READ,UPDATE,DELETE}Virtual network
ACL.Resource.Network.Subnet.{CREATE,READ,UPDATE,DELETE}Subnet
ACL.Resource.Network.NetworkInterface.{CREATE,READ,UPDATE,DELETE}Network interface
ACL.Resource.Network.PublicIp.{CREATE,READ,UPDATE,DELETE}Public IP
ACL.Resource.Network.Vpn.{CREATE,READ,UPDATE,DELETE}VPN
ACL.Resource.Network.LoadBalancer.{CREATE,READ,UPDATE,DELETE}Load balancer

Resource.Storage

CodeDescription
ACL.Resource.Storage.BlockStorage.{CREATE,READ,UPDATE,DELETE}Block storage
ACL.Resource.Storage.BlockStorageSnapshot.{CREATE,READ,UPDATE,DELETE}Snapshot
ACL.Resource.Storage.BlockStorageSnapshotScheduler.{CREATE,READ,UPDATE,DELETE}Snapshot scheduler
ACL.Resource.Storage.ObjectStorage.{CREATE,READ,UPDATE,DELETE}Object storage
ACL.Resource.Storage.ObjectStorageUser.{CREATE,READ,UPDATE,DELETE}Object storage user
ACL.Resource.Storage.ObjectStorageUserGrant.{CREATE,READ,UPDATE,DELETE}Object storage user grants
ACL.Resource.Storage.ParallelFileSystem.{CREATE,READ,UPDATE,DELETE}PFS
ACL.Resource.Storage.ParallelFileSystemMember.{CREATE,READ,DELETE}PFS member (VM attachment)

Resource (direct)

CodeDescription
ACL.Resource.OrganizationResourceSummary.READRead organization-wide summary

FAQ

Can I edit a built-in role (Owner/Contributor/Support/Reader)?

No, built-in roles cannot be edited or deleted. Create a new custom role if you need similar but different permissions.

The role I want to delete won't delete.

If the role is assigned to one or more users, it cannot be deleted. Remove or replace the role on those users first, then delete it.

How are menus the user can't access shown?

They are hidden or disabled. Users see an "Access denied" message.


Next steps