jenkins~权限控制
Posted 敢于对过去告一个段落,才有信心掀开新的篇章!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins~权限控制相关的知识,希望对你有一定的参考价值。
jenkins上管理的任务比较多,这时需要有一定的权限管控机制,我们选择了插件Role-based Authorization Strategy
来做这事,它支持按着项目前缀去控制你的任务,主要思想还是rbac的模式,通过角色绑定权限,通过用户来绑定角色。
安装之后
配置中心
通过jenkins Dashboard > Manage and Assign Roles
图中第一项为添加角色,第二项为分配角色到用户
注意:我们默认有admin角色,我又扩展了一个read角色,这个角色的作用是让具体项目角色
的人,看到自己的项目列表,这个read角色我们需要绑定到Anonymous
用户上,这样我们项目角色
里配置的角色就可以用了,否则会提示xxx is missing the Overall/Read permission
的错误。
项目角色的奇葩设计
为什么说它奇葩,是因为它的统配符规则,如果你想匹配dev产品管理
,那么你的统配符必须是dev产品.*
,注意是.*结尾
,多个配置资源之间使用|
分开,如下图所示:
为用户指定角色
这个就比较容易了,与我们使用的大部分软件一下,从文本框中输入用户名,再勾选角色即可。
最后,使用指定的用户名登录,就会看到自己对应权限的任务列表了
Jenkins 权限控制策略
一、概述
我们再构建job时,需要对Jenkins的用户进行权限的控制,所以我写了一篇关于Jenkins 权限控制的策略
配置路径:系统管理->Configure Global Security->勾选Enable security
二、用LDAP登录控制
2.1 LDAP配置
路径:Access Control->Security Realm->勾选LDAP,配置如下:
- 服务器:ldap.xxx.com
- Root DN:DC=yihaodian,DC=com
- User search base:OU=1_UserAccount
- 用户过滤搜索:sAMAccountName={0}
- Manager DN:CN=IT_Test_SCM_Jenkins,OU=IT,OU=SH,OU=Special,OU=1_UserAccount,DC=yihaodian,DC=com
- 用户密码:****
三、Role-Based Strategy权限控制
3.1 role-base权限控制
路径:Access Control->Authorization->勾选Role-Based Strategy
我定义了5种角色:
- admin:系统管理员,可以做任何操作。
- admin-sub:次级系统管理员,不可配置系统属性,可以查看/创建/删除/配置/运行/停止JOB,可查看workspace。
- tester:测试人员,不可配置系统属性,不可创建/删除/配置JOB,可查看/运行/停止JOB,可查看workspace。
- developer:开发人员,不可配置系统属性,不可创建/删除/配置/运行/停止JOB,可查看JOB,可查看workspace。
- viewer:其他人员(默认角色),不可配置系统属性,不可创建/删除/配置/运行/停止JOB,不可查看workspace,可查看JOB。
基于“Role-Based Strategy”分别配置全局&项目级别的权限组。
四、权限组分配权限
4.1 全局权限组
- Admin:管理员组
- User:用户组,(Overall{Read},Job{Read,Discover,Workspace},View{Read})
- Anonymous:默认用户组,权限:(Overall{Read,Discover})
4.2 项目权限组:
- 按照项目级别定义权限。
- 前提:JOB命名标准化。
- 实现方式:正则表达式匹配。
- 权限:(Job{Read,Discover,Build,Workspace,Cancel},)
以上是关于jenkins~权限控制的主要内容,如果未能解决你的问题,请参考以下文章