Jenkins 项目权限管理
在 Jenkins 的使用过程中,需要给用户分配只管理特定项目的权限来保证项目相关人员只能管理对应项目,Jenkins 自带的用户权限管理无法满足这样的需求。因此需要更精细的权限管理,目前使用比较广泛的是 Role-based Authorization Strategy
插件。
准备工作
首先创建用户,登录 Jenkins,依次点击
系统管理
–>管理用户
–>新建用户
,如下图,输入相关信息既可创建一个用户;
建好的用户列表如下
创建项目任务,此处略,以下是创建好的任务列表
安装插件,依次点击
系统管理
–>插件管理
–>可选插件
,在搜索框输入Role-based Authorization Strategy
进行查询,如果已经安装了该插件,则可以在已安装一栏中看到,如下所示:
配置全局安全策略,点击
系统管理
–>全局安全配置
,找到授权策略
,选中Role-Based Strategy
,点击保存
;
管理和创建角色
- 点击
系统管理
–>Manage and Assign Roles
–>Manage Roles
进入角色管理页面;
角色说明
- Global roles(全局角色): 适用于 Jenkins 中的所有项目,并覆盖您在
Item Roles
中指定的任何内容。 - Item roles(项目组角色): 项目作业的权限,可以使用正则表达式对同类作业进行匹配。
- Node roles(节点角色): 代理节点的权限,也是可以通过正则表达式配置,不过一般我们都会在流水线指定好相关的agent名称或者标签不会进行权限的控制,当然如果你需要对代理节点的配置进行权限控制,也是可以在这里实现的。
权限说明
- 全部:所有对象管理、读取权限。
- 凭据:创建、删除、管理域、更新、浏览权限。
- 代理:构建、配置、连接、创建、删除、断开连接等权限。
- 作业:构建、取消、配置、创建、删除、发现、读取、移动、工作目录权限。
- 运行:删除、回放、更新。
- 视图:配置、创建、删除、读取。
创建全局角色并授权
- 新增一个全局角色 deployer 并授予全局的Read权限,这里如果没有授权的话,普通用户登录到
jenkins
则会提示:用户没有Overall/read
权限;
创建项目角色并授权
- 对不同的项目根据项目的 job 名称进行正则匹配,在
Role to add
中输入项目角色名称,在 Pattern 中输入正则表达式;然后点击 Add 进行添加,最后勾上相应的权限,然后点击保存;(注意正则*
前面的.
)
分配角色
注意: 点击 Add 添加完用户之后,必须勾选一个对应的角色,否则添加用户无效,保存退出页面后不会显示在对应的 Role 列表中;
- 点击
系统管理
–>Manage and Assign Roles
–>Assign Roles
进入角色分配页面
分配全局角色
- 在
Global roles
下面的User/group to add
输入框输入用户账号,点击 Add 进行添加,然后勾选该用户对应的角色;如下
分配项目角色
- 在
Item roles
下面的User/group to add
输入框输入用户账号,点击 Add 进行添加,然后勾选该用户对应的角色;如下
验证权限
给用户分配完角色之后,使用普通用户登录 Jenkins,既可只看到自己有权限管理的项目,如下