题图摄于圣安东尼奥
注:微信公众号不按照时间排序,请关注“亨利笔记”,并加星标以置顶,以免错过更新。
(本文作者何威威系Harbor开源项目贡献者,本文节选自《Harbor权威指南》一书。)
(续上一篇)
3. 访问控制与授权
访问控制是企业应用中必须考虑的问题,不同的用户使用系统功能时应该具有不同的权限,或者说需要授权才能进行一定的操作。最常见的授权模型是基于角色的访问控制,Harbor 定义了5 种角色,用户可依据在项目中担任的角色来确定在系统中使用的权限。
基于角色的访问策略
Harbor 以项目为单位管理镜像、Helm Chart等Artifact,除了公开的Artifact(如公开项目中的镜像等)可以匿名访问,用户必须成为项目的成员,才可以访问项目的资源。在 Harbor 中还有系统管理员的特殊角色,拥有“超级用户”权限,可以管理所有项目和系统级的资源和配置。除了 Harbor 初始安装时默认创建的系统管理员 admin,拥有系统管理员角色的用户还能把其他普通用户设置为系统管理员角色。在 LDAP 认证模式下,还可设定 LDAP 的管理员组来自动获得Harbor系统管理员角色。(本文为公众号亨利笔记原创文章)
项目成员分为项目管理员、维护人员、开发者、访客和受限访客等5种角色,用户在项目中可以拥有其中一种成员角色,不同的成员角色对项目里的资源拥有不同的访问权限。创建项目的用户自动拥有该项目的项目管理员角色,还能够把其他用户添加为项目成员,并赋予一个项目角色来访问项目中的资源。各个项目的访问权限都是互相独立的,即同一个用户在不同的项目中可以拥有不同的成员角色。Harbor完整的角色权限如下表所示。
权 限 |
项目管理员 |
维护人员 |
开发者 |
访 客 |
受限访客 |
查看项目仓库 |
✔ |
✔ |
✔ |
✔ |
✔ |
创建项目仓库 |
✔ |
✔ |
✔ |
||
编辑、删除项目仓库 |
✔ |
✔ |
|||
查看、复制、拉取 Artifact |
✔ |
✔ |
✔ |
✔ | <