Overview
Roles are the foundation of Xloud’s role-based access control (RBAC) system. A role grants a set of permissions and is always assigned in the context of a user + project (or user + domain) pair. Xloud ships three built-in roles —admin, member, and reader — and supports creating custom roles to match your organizational requirements.
Prerequisites
- CLI authenticated with admin credentials — see CLI Setup
- Dashboard: logged in as an admin user
- To create or modify roles you need the
adminrole on the system scope
Built-in Roles
Xloud ships three standard roles that cascade via implied role inheritance:| Role | Permissions | Typical Assignment |
|---|---|---|
admin | Full API access including administrative endpoints | Cloud operators, service accounts |
member | Project-scoped create, read, update, delete | Regular project members |
reader | Project-scoped read-only access | Auditors, monitoring service accounts |
Implied role hierarchy:
admin implies member, and member implies reader. Assigning admin automatically grants all three sets of permissions. You do not need to assign all three roles separately.List and View Roles
- Dashboard
- CLI
Navigate to Admin → Identity → Roles to see all available roles, their IDs, and whether they are domain-scoped.
Create a Custom Role
Custom roles let you create named access tiers beyond the three built-in roles. The role itself is just a name — its effective permissions are defined in each service’spolicy.yaml file.
- Dashboard
- CLI
Name the role
Enter a descriptive name such as
network-operator or image-uploader. Role names are case-sensitive.Assign Roles
Role assignments always connect a principal (user or group) to a scope (project or domain).- Dashboard
- CLI
Remove Role Assignments
- Dashboard
- CLI
Navigate to Admin → Identity → Projects → Members, find the user, and click Remove Role.
Implied Roles (Role Hierarchies)
Implied roles (also called role inference rules) let you build role hierarchies where assigning one role automatically grants another. This keeps assignments simple while enabling fine-grained permission structures.Direction matters: Role inference is one-directional. If
admin implies member, assigning admin grants both — but assigning member does not grant admin.Use Case: Fine-Grained Service Roles
You can create service-specific sub-roles and have themember role imply all of them:
Create service-specific sub-roles
Have member imply all service sub-roles
member to a user automatically grants compute, network, and volume access — while you can still assign individual sub-roles for more granular control.
Delete a Role
List assignments before deleting (sanity check)
Delete the role
Custom Roles and Service Policies
A custom role is just a name until you define what it can do in each service’s policy file. Xloud usespolicy.yaml (or policy.json) files in each service container to map role names to allowed API operations.
See Policy Management for the full guide on creating per-service policy overrides for your custom roles.
Quick example — restrict Compute flavor creation to a custom compute-admin role:
/etc/xavs/nova/policy.yaml
Next Steps
Policy Management
Define what each role can do in Nova, Glance, Cinder, and other services via policy.yaml overrides
Projects
Create projects and manage the project hierarchy that roles are assigned within
Users
Create users and manage their project memberships
Domain Management
Organize projects and users into domains with independent namespaces