User Permissions By Role
Users have different abilities depending on the role they have in a project.
On public projects all users will be able to see the list of repositories, images, image vulnerabilities, helm charts and helm chart versions, pull images, retag images (need push permission for destination image), download helm charts, download helm chart versions.
Harbor system administrators have all permissions for the project.
Project members permissions
The following table describes the permissions of the five built-in project roles. Custom roles have the permissions selected by a system administrator; see Custom Project Role Permissions.
| Action | Limited Guest | Guest | Developer | Maintainer | Project Admin |
|---|---|---|---|---|---|
| See the project configurations | ✓ | ✓ | ✓ | ✓ | ✓ |
| Edit the project configurations | ✓ | ||||
| See a list of project members | ✓ | ✓ | ✓ | ✓ | |
| Create/edit/delete project members | ✓ | ||||
| See a list of project logs | ✓ | ✓ | ✓ | ✓ | |
| See a list of project replications | ✓ | ✓ | |||
| See a list of project replication jobs | ✓ | ||||
| See a list of project labels | ✓ | ✓ | |||
| Create/edit/delete project labels | ✓ | ✓ | |||
| See a list of repositories | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create repositories | ✓ | ✓ | ✓ | ||
| Edit/delete repositories | ✓ | ✓ | |||
| See a list of images | ✓ | ✓ | ✓ | ✓ | ✓ |
| Retag image | ✓ | ✓ | ✓ | ✓ | |
| Pull image | ✓ | ✓ | ✓ | ✓ | ✓ |
| Push image | ✓ | ✓ | ✓ | ||
| Scan/delete image | ✓ | ✓ | |||
| Add scanners to Harbor * | |||||
| Edit scanners in projects | ✓ | ||||
| See a list of image vulnerabilities | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create list of project vulnerabilities | ✓ | ✓ | ✓ | ||
| Read list of project vulnerabilities | ✓ | ✓ | ✓ | ||
| Export list of project vulnerabilities | ✓ | ✓ | ✓ | ||
| See image build history | ✓ | ✓ | ✓ | ✓ | ✓ |
| Add/Remove labels of image | ✓ | ✓ | ✓ | ||
| See a list of helm charts | ✓ | ✓ | ✓ | ✓ | ✓ |
| Download helm charts | ✓ | ✓ | ✓ | ✓ | ✓ |
| Upload helm charts | ✓ | ✓ | ✓ | ||
| Delete helm charts | ✓ | ✓ | |||
| See a list of helm chart versions | ✓ | ✓ | ✓ | ✓ | ✓ |
| Download helm chart versions | ✓ | ✓ | ✓ | ✓ | ✓ |
| Upload helm chart versions | ✓ | ✓ | ✓ | ||
| Delete helm chart versions | ✓ | ✓ | |||
| Add/Remove labels of helm chart version | ✓ | ✓ | ✓ | ||
| See a list of project robots | ✓ | ✓ | |||
| Create/edit/delete project robots | ✓ | ||||
| See configured CVE allowlist | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create/edit/remove CVE allowlist | ✓ | ||||
| View webhook events | ✓ | ✓ | |||
| Add new webhook events | ✓ | ||||
| Enable/deactivate webhooks | ✓ | ||||
| Create/delete tag retention rules | ✓ | ✓ | ✓ | ||
| Enable/deactivate tag retention rules | ✓ | ✓ | ✓ | ||
| Create/delete tag immutability rules | ✓ | ✓ | |||
| Enable/deactivate tag immutability rules | ✓ | ✓ | |||
| See project quotas | ✓ | ✓ | ✓ | ✓ | ✓ |
| Edit project quotas * | |||||
| Delete Project | ✓ |
* Only the Harbor system administrator can edit project quotas and add new scanners.
Custom Project Role Permissions
Starting with Harbor v2.16.0, a system administrator can define a custom project role by selecting individual resource and action permissions. A custom role does not inherit the permission set of a built-in role. The same definition can be assigned to users or groups in multiple projects, with each assignment granting access only in that project.
For example, the permission selector includes the following combinations. These are individual permissions; a workflow in the Harbor interface can also require read or list permissions for the resources it displays.
| Operation | Resource | Action |
|---|---|---|
| Pull artifacts | Repository | Pull |
| Push artifacts | Repository | Push and Pull |
| View the project member list | Project Member | List |
| Add a project member | Project Member | Create |
| Change a project member’s role | Project Member | Update |
| Remove a project member | Project Member | Delete |
| Start a vulnerability scan | Scan | Create |
| Delete an artifact | Artifact | Delete |
Select permissions according to the tasks the role needs to perform. To inspect the complete permission set of an existing role, go to Administration > Roles and click the permission count in its Permissions column.
The following rules apply to custom roles:
- Permissions apply throughout the assigned project, rather than to individual repositories.
- Project membership allows the user to view the project itself. Additional operations depend on the role’s selected permissions.
- A user’s individual and group memberships combine their permissions. Removing a permission from one role does not remove the same permission granted by another role. Access provided by a public project also remains available.
- Assigning a custom project role does not grant Harbor system administrator privileges. Project deletion is not an available custom role permission.
- Users who manage project members can assign only roles whose permissions they hold in that project.
- Changes to a custom role definition affect all projects where it is assigned. Built-in role definitions cannot be changed.
For role management instructions, see Manage Custom Project Roles. For user and group assignments, see Assign Users to a Project.
On this page
Contributing