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种角色:

  1. admin系统管理员,可以做任何操作。
  2. admin-sub次级系统管理员,不可配置系统属性,可以查看/创建/删除/配置/运行/停止JOB,可查看workspace。
  3. tester测试人员,不可配置系统属性,不可创建/删除/配置JOB,可查看/运行/停止JOB,可查看workspace。
  4. developer开发人员,不可配置系统属性,不可创建/删除/配置/运行/停止JOB,可查看JOB,可查看workspace。
  5. viewer其他人员(默认角色),不可配置系统属性,不可创建/删除/配置/运行/停止JOB,不可查看workspace,可查看JOB。

基于“Role-Based Strategy”分别配置全局&项目级别的权限组。

四、权限组分配权限

4.1 全局权限组

  1. Admin:管理员组
  2. User:用户组,(Overall{Read},Job{Read,Discover,Workspace},View{Read})
  3. Anonymous:默认用户组,权限:(Overall{Read,Discover})

4.2 项目权限组:

  • 按照项目级别定义权限。
  • 前提:JOB命名标准化。
  • 实现方式:正则表达式匹配。
  • 权限:(Job{Read,Discover,Build,Workspace,Cancel},)

以上是关于jenkins~权限控制的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins权限控制

jenkins 权限控制

Jenkins权限控制插件(Role-based Authorization Strategy)

Jenkins不同用户访问权限控制

基于K8s Jenkins CICD和RBAC角色权限控制

Jenkins 用户权限管理