RBAC roles and permissions
H2O AI Engine Manager (AIEM) controls access through workspace-scoped role-based access control (RBAC). AIEM ships nine built-in roles including a reader, user, and admin tier for each of the three engine types (Driverless AI, H2O-3, and Notebook). A workspace administrator assigns these roles to users per workspace, and the H2O AuthZ server evaluates them on every request.
This page lists each role, the exact permissions it grants, and how to assign roles following the principle of least privilege.
How authorization works
Every AIEM request is authenticated and authorized before it runs:
- Authentication. Users sign in through the platform-managed identity provider using OIDC/OAuth2 and pass a bearer token on each request. See Authentication and authorization for the full auth flow.
- Authorization. AIEM resolves permissions per workspace. Each role grants a fixed set of authorization actions, and the request is allowed only when the user's role in the target workspace includes the action the request requires.
- Role assignment. Administrators assign roles in the H2O AuthZ server for each workspace.
Role assignment is workspace-scoped. The same user can hold different roles in different workspaces, for example, DAI Engine Admin in a platform workspace and DAI Engine Reader in a project workspace.
Account tiers
Each engine type uses the same three-tier model.
| Tier | Purpose |
|---|---|
| Reader | Read-only access. View and list engines, download logs (Driverless AI and H2O-3 only), and view the approved versions or images. |
| User | Create and manage their own engines, plus everything a reader can do. |
| Admin | Manage engine versions, images, and profiles for the workspace, plus everything a user can do. |
Built-in roles
AIEM defines the following nine roles. The role ID is the identifier you assign in the AuthZ server.
| Role ID | Display name | Engine type | Tier |
|---|---|---|---|
enginemanager-dai-engine-reader | DAI Engine Reader | Driverless AI | Reader |
enginemanager-dai-engine-user | DAI Engine User | Driverless AI | User |
enginemanager-dai-engine-admin | DAI Engine Admin | Driverless AI | Admin |
enginemanager-h2o-engine-reader | H2O Engine Reader | H2O-3 | Reader |
enginemanager-h2o-engine-user | H2O Engine User | H2O-3 | User |
enginemanager-h2o-engine-admin | H2O Engine Admin | H2O-3 | Admin |
enginemanager-notebook-engine-reader | Notebook Engine Reader | Notebook | Reader |
enginemanager-notebook-engine-user | Notebook Engine User | Notebook | User |
enginemanager-notebook-engine-admin | Notebook Engine Admin | Notebook | Admin |
Every role also includes workspace permissions so that a user can see and list the workspaces where they hold a role.
Permissions by engine type
The following tables list every authorization action each role grants.
- Each AIEM action identifier has the form
actions/enginemanager/<resource>/<VERB> - The tables show the
<resource>/<VERB>portion. - The audit trail records the full action identifier,
actions/enginemanager/<resource>/<VERB>, for the request. - All three tiers also hold the generic
engines/LISTaction.
Driverless AI engine roles
| Operation | Authorization action | Reader | User | Admin |
|---|---|---|---|---|
| View an engine | daiEngines/GET | Yes | Yes | Yes |
| List engines | daiEngines/LIST | Yes | Yes | Yes |
| Download engine logs | daiEngines/DOWNLOAD_LOGS | Yes | Yes | Yes |
| View an engine version | daiEngineVersions/GET | Yes | Yes | Yes |
| List engine versions | daiEngineVersions/LIST | Yes | Yes | Yes |
| Create an engine | daiEngines/CREATE | No | Yes | Yes |
| Update an engine | daiEngines/UPDATE | No | Yes | Yes |
| Delete an engine | daiEngines/DELETE | No | Yes | Yes |
| Pause an engine | daiEngines/PAUSE | No | Yes | Yes |
| Resume an engine | daiEngines/RESUME | No | Yes | Yes |
| List assigned profiles | daiEngineProfiles/LIST_ASSIGNED | No | Yes | Yes |
| Migrate an engine creator | daiEngines/MIGRATE_CREATOR | No | No | Yes |
| Create an engine version | daiEngineVersions/CREATE | No | No | Yes |
| Update an engine version | daiEngineVersions/UPDATE | No | No | Yes |
| Delete an engine version | daiEngineVersions/DELETE | No | No | Yes |
| Assign version aliases | daiEngineVersions/ASSIGN_ALIASES | No | No | Yes |
| Create a profile | daiEngineProfiles/CREATE | No | No | Yes |
| View a profile | daiEngineProfiles/GET | No | No | Yes |
| List profiles | daiEngineProfiles/LIST | No | No | Yes |
| Update a profile | daiEngineProfiles/UPDATE | No | No | Yes |
| Delete a profile | daiEngineProfiles/DELETE | No | No | Yes |
H2O-3 engine roles
H2O-3 engines support create and delete, but not pause, resume, or update.
| Operation | Authorization action | Reader | User | Admin |
|---|---|---|---|---|
| View an engine | h2oEngines/GET | Yes | Yes | Yes |
| List engines | h2oEngines/LIST | Yes | Yes | Yes |
| Download engine logs | h2oEngines/DOWNLOAD_LOGS | Yes | Yes | Yes |
| View an engine version | h2oEngineVersions/GET | Yes | Yes | Yes |
| List engine versions | h2oEngineVersions/LIST | Yes | Yes | Yes |
| Create an engine | h2oEngines/CREATE | No | Yes | Yes |
| Delete an engine | h2oEngines/DELETE | No | Yes | Yes |
| List assigned profiles | h2oEngineProfiles/LIST_ASSIGNED | No | Yes | Yes |
| Create an engine version | h2oEngineVersions/CREATE | No | No | Yes |
| Update an engine version | h2oEngineVersions/UPDATE | No | No | Yes |
| Delete an engine version | h2oEngineVersions/DELETE | No | No | Yes |
| Assign version aliases | h2oEngineVersions/ASSIGN_ALIASES | No | No | Yes |
| Create a profile | h2oEngineProfiles/CREATE | No | No | Yes |
| View a profile | h2oEngineProfiles/GET | No | No | Yes |
| List profiles | h2oEngineProfiles/LIST | No | No | Yes |
| Update a profile | h2oEngineProfiles/UPDATE | No | No | Yes |
| Delete a profile | h2oEngineProfiles/DELETE | No | No | Yes |
Notebook engine roles
Notebook engines use container images rather than versions, and add an ACCESS action that authorizes opening the notebook interface.
| Operation | Authorization action | Reader | User | Admin |
|---|---|---|---|---|
| View an engine | notebookEngines/GET | Yes | Yes | Yes |
| List engines | notebookEngines/LIST | Yes | Yes | Yes |
| View an image | notebookEngineImages/GET | Yes | Yes | Yes |
| List images | notebookEngineImages/LIST | Yes | Yes | Yes |
| Create an engine | notebookEngines/CREATE | No | Yes | Yes |
| Update an engine | notebookEngines/UPDATE | No | Yes | Yes |
| Delete an engine | notebookEngines/DELETE | No | Yes | Yes |
| Pause an engine | notebookEngines/PAUSE | No | Yes | Yes |
| Resume an engine | notebookEngines/RESUME | No | Yes | Yes |
| Access an engine | notebookEngines/ACCESS | No | Yes | Yes |
| List assigned profiles | notebookEngineProfiles/LIST_ASSIGNED | No | Yes | Yes |
| Create an image | notebookEngineImages/CREATE | No | No | Yes |
| Update an image | notebookEngineImages/UPDATE | No | No | Yes |
| Delete an image | notebookEngineImages/DELETE | No | No | Yes |
| Create a profile | notebookEngineProfiles/CREATE | No | No | Yes |
| View a profile | notebookEngineProfiles/GET | No | No | Yes |
| List profiles | notebookEngineProfiles/LIST | No | No | Yes |
| Update a profile | notebookEngineProfiles/UPDATE | No | No | Yes |
| Delete a profile | notebookEngineProfiles/DELETE | No | No | Yes |
Actions outside the built-in roles
AIEM defines and enforces a few authorization actions that none of the nine built-in roles grant. A user cannot perform these operations through a built-in role. Granting them requires a custom role defined in the AuthZ server.
| Action | Applies to | Notes |
|---|---|---|
daiEngines/RESIZE_STORAGE, notebookEngines/RESIZE_STORAGE | Driverless AI, Notebook | Resize an engine's persistent storage. |
daiEngines/UPGRADE_VERSION, daiEngines/UPGRADE_DAI_ENGINE_VERSION | Driverless AI | Upgrade an engine to a newer version. |
h2oEngines/TERMINATE, sandboxEngines/TERMINATE | H2O-3, Sandbox | Terminate a running engine. |
engines/LIST_ALL | All engine types | List all engines across users; intended for platform-level administration. |
The built-in roles cover Driverless AI, H2O-3, and Notebook engines. Sandbox engines, images, and templates have authorization actions defined (for example, sandboxEngines/CREATE, sandboxEngineImages/CREATE, sandboxEngineTemplates/CREATE), but AIEM ships no built-in Sandbox role. Manage access to Sandbox resources through a custom role in the AuthZ server.
Assign roles
Administrators assign roles in the H2O AuthZ server for the relevant workspace. Follow these guidelines:
- Apply least privilege: Grant the lowest tier that lets a user do their work. Most users need the user or reader tier; reserve the admin tier for the people who manage versions, images, and profiles.
- Assign per workspace: A role grant applies only to the workspace where you assign it. Grant roles separately in each workspace a user works in.
- Manage shared resources in the global workspace: AIEM manages engine versions, images, and profiles in the
workspaces/globalworkspace. To let a user manage these, assign the relevant admin role in the global workspace. Engine creation and use happen in regular project workspaces. For the settings these admin roles control, see Engine profile security configuration.
Account lifecycle
AIEM does not manage user accounts itself. A user's access is established, granted, and revoked through the platform identity provider and the H2O AuthZ server, moving through three stages:
| Stage | What happens |
|---|---|
| Provisioning | AIEM establishes a user's identity on their first authenticated request. No separate account creation step is required. |
| Privilege assignment | An administrator assigns workspace roles in the AuthZ server. AIEM applies the assigned permissions on the next request. |
| Deprovisioning | Removing a user's identity provider account or their AuthZ role assignments immediately revokes access. Delete any engines the user created as part of cleanup. |
Related topics
- Engine profile security configuration — the resource, duration, and access controls that admin roles manage.
- Access AI Engines — how users reach the engines they have permission to use.
- Submit and view feedback for this page
- Send feedback about AI Engine Manager to cloud-feedback@h2o.ai