13. Permissions

Overview

Security Policies Scheme is organized by 2 principal tools: groups (user groups and system roles) and Access Control List defined for each CP's object.
Note: About groups and system roles you can read more here.
Object's Access Control List specifies who can work with the object and what he can do with it. It is defined as a pair of attributes:

  • a User or User Group ID
  • Permissions

The permission settings are divided into the following options which can be combined for the object:

  • Read
  • Write
  • Execute

Below is a mapping of the objects' possible actions to permissions which demonstrates what actions will be allowed or denied to a user or user group.
Note: according to Security Policies Scheme WRITE permission is not enough to add/delete any Cloud Pipeline object. A specific *_MANAGER role is required also (about roles see here).

Object User Action Permission
Folder View folder Read
List folder contents
Create object (e.g folder, pipeline, etc.) Write
Delete folder
Rename folder
Change parent
Upload metadata
Pipeline
*Permissions for a pipeline version are inherited from the pipeline
View pipeline Read
List pipeline attributes
Delete a pipeline Write
Edit pipeline attributes
Change parent
Run a pipeline Execute
DataStorage
*Permissions for files in data storage are inherited from the data storage
View datastorage Read
List datastorage contents
Delete a datastorage Write
Edit datastorage attributes/contents
Change parent
Pipeline run View runs Inherited from a run pipeline
View run logs
Launch a pipeline
Stop a run
Rerun
Tool run View runs Admin and Owner only
View run logs
Launch a pipeline
Stop a run
Rerun
Cluster node View a cluster Inherited from a currently assigned run
View node details
Terminate a node
Docker Registry View registry Read
Add registry Write
Delete registry
Edit registry attributes
Run a child tool Execute
Tool group View tool group Read
Create tool group Write
Edit tool group
Delete tool group
Run a child tool Execute
Tool View enabled tool Read
View disabled tools list
Edit tool attributes Write
Run tool without a pipeline Execute
Instance management Admin and Owner only
Run configuration View run configuration Read
Delete a run configuration Write
Edit run configuration attributes
Change parent
Run a run configuration Execute

Note: also you can manage permissions on the Cloud Pipeline objects via CLI. See 14.7. View and manage Permissions via CLI.

Owner property

Each object has an additional "Owner" property. The owner of the object can manage its Access Control List. Owner property is assigned to a user that created an object.

How to change an owner

The Owner of an object can be changed easily for:

  • Folders;
  • Pipelines and pipelines versions;
  • Data storages;
  • Run configurations;
  • Docker registries, Tool Groups and Tools.

Note: you shall have Owner or Admin role.

To change an owner of an object:

  1. Select an object.
  2. Click "Gear" icon in the top-right corner of the screen.
    CP_Permissions
  3. Navigate to Permissions tab.
    Note: To edit permissions:
    • for a Folder - click the "Gear" icon → Edit folder
    • for a Docker registry - click the "Gear" icon → RegistryEdit.
    • for a Tool group - click the "Gear" icon → GroupEdit
    • for a Tool - click the "Gear" icon → Permissions.
  4. Click owner's name. Now you can edit it:
    CP_Permissions
  5. Start to enter a desired username and system will suggest you the existing users.
    CP_Permissions
    Click the desired username.
  6. Click "Apply" control and the changes will be saved.
    CP_Permissions

Also you can change an owner of an object via pipe CLI - see here.

Admin role

Admin property can be given by assigning ROLE_ADMIN to a user (about roles see here). The user gets Read/Write/Execute/Owner permissions to all objects in the system.
Initially, a user with ROLE_ADMIN shall be an authenticated domain account (SAML/OAuth/OpenID) defined during a system deployment (in some properties file or database).

Permission settings

The permissions could be granted to a user in one of the following ways:

  • the system has a "default" system role or user group. This type of system roles or groups assigned by default once a user is created;
  • assigned user groups or system role where every member has the same permissions for specific objects;
  • granted permissions for specific user.

The priority of permissions granted for specific object explicitly is higher than the group or role permissions, e.g. if a basic user is included into the group that doesn't have an access to some folder but he has permissions explicitly defined for himself that allow him to work with that folder, he will have an access to it.
To assign object's permissions to a user or user group you shall move to the object's page and click the "Gear" icon in the top-right corner of the screen and select "Permissions" tab.

Note: To edit permissions:

  • for a Folder - click the "Gear" icon → Edit folder
  • for a Docker registry - click the "Gear" icon → RegistryEdit.
  • for a Tool group - click the "Gear" icon → GroupEdit
  • for a Tool - click the "Gear" icon → Permissions.

You can explicitly define permissions for the object for a particular user or group of users (users within the same Group) in the "Permission" form by clicking on its name in the "Groups and users" list.
Note: if you couldn't find the desired user or user group, you can add it via "Add a user" and "Add a user group" controls (see the picture below, 1).

CP_Permissions

The additional section for a particular user or user group suggests you tick the desired grants. Here you can allow or deny specific permission options (see the picture above, 2).
Note: if you don't tick any possible variant, it will be inherited from the parent object (e.g. a pipeline in a folder inherits permissions from it) (see the picture above, 3).

Example 1: according to the picture above, a user will get WRITE and EXECUTE permissions for an object, and the READ permission will be inherited from the parent object.

Example 2: on the picture below we see Permission form of a run configuration. We grant a user READ and EXECUTE permissions, but deny WRITE permission. So the user is able to see the run configuration and run it, but he can not edit its parameters:
CP_Permissions