版权声明:本文为博主原创文章,未经博主允许欢迎转载,但请注明出处。 https://blog.csdn.net/liumiaocn/article/details/81813666
这篇文章来看一下harbor的相关权限管理。
RBAC(Role Based Access Control)
项目级别角色
Harbor基于角色的访问控制,与project关联的角色简单地分为Guest/Developer/Admin三类,角色/project/镜像三者之间进行关联,不同角色的权限不同:
角色 | 权限说明 |
---|---|
Guest | 对于指定项目拥有只读权限 |
Developer | 对于指定项目拥有读写权限 |
ProjectAdmin | 除了读写权限,同时拥有用户管理/镜像扫描等管理权限 |
基本权限信息
Harbor的数据库的信息非常简单,从Access表中可以看到其将访问权限进行地划分:
MariaDB [registry]> select * from access;
+-----------+-------------+-------------------------------+
| access_id | access_code | comment |
+-----------+-------------+-------------------------------+
| 1 | M | Management access for project |
| 2 | R | Read access for project |
| 3 | W | Write access for project |
| 4 | D | Delete access for project |
| 5 | S | Search access for project |
+-----------+-------------+-------------------------------+
5 rows in set (0.00 sec)
MariaDB [registry]>
项目级别的角色目前的5种细粒度的访问权限分别为:M/R/W/D/S
访问权限 | 说明 |
---|---|
M | 管理操作的权限 |
R | 读操作的权限 |
W | 写操作的权限 |
D | 删除访问权限的权限 |
R | 查询权限 |
角色的访问权限
项目级别的三种角色,对于上述5种粒度的访问权限,具体的结合为:
MariaDB [registry]> select * from role;
+---------+-----------+-----------+--------------+
| role_id | role_mask | role_code | name |
+---------+-----------+-----------+--------------+
| 1 | 0 | MDRWS | projectAdmin |
| 2 | 0 | RWS | developer |
| 3 | 0 | RS | guest |
+---------+-----------+-----------+--------------+
3 rows in set (0.00 sec)
MariaDB [registry]>
系统级别角色
除了以上也项目关联的角色,还有两种系统级别的角色,相关权限信息如下:
角色 | 权限说明 |
---|---|
SysAdmin | 具有最多的权限,除了以上提及的权限,可以跨项目操作,查询所有项目,设定某个用户作为管理员以及扫描策略等 |
Anonymous: | 没有登录的用户被视作匿名用户。匿名用户对private的项目不具访问权限,对public的项目具有只读权限 |
从数据库中也可以看到,这两种基本的用户在创建之初就被自动创建出来了
MariaDB [registry]> select user_id, username from user;
+---------+-----------+
| user_id | username |
+---------+-----------+
| 1 | admin |
| 2 | anonymous |
+---------+-----------+
2 rows in set (0.00 sec)
MariaDB [registry]>