jenkins用户权限隔离

简介: jenkins用户权限隔离

一、jenkins的安装



这里不介绍jenkins安装,如有需要推荐以下文章:

jenkins搭建:docker搭建jenkins

jenkins使用:jenkins实现持续集成、持续部署

权限的基础知识,可以看下这篇文章回忆下:

权限基础:权限管理需要哪些表


二、jenkins中实现用户的权限分离



刚用jenkins时肯定会有一个困惑,jenkins里创建的用户并不能实现权限分离,所有用户进来以后看到的内容都是一样的,这样肯定不行,jenkins的用户有测试、有开发、有运维,自然不能让所有人看到的东西都是一样的,那么用户的权限分离就是必须的了。

jenkins自然原生不支持,我们就需要引入外部插件了,也就是这个插件:Role-based Authorization Strategy,下面一起安装下吧


1.安装插件


系统管理–>插件管理–>可选插件,然后按照该插件即可(插件安装完成后重启jenkins才会生效)

c3dd8a3076c44f6181fa5c4e37338c46.png


2.设置角色


插件装完后,会在系统管理里多出以下这个管理项:


59875b0ee47845d1983e806d192bde35.pngd46e2e5560354c9baef9c3e4d24d9918.png


下面点击“Manage Role”就可以创建角色了,创建角色之前需要声明一点,这个插件的角色和一般的权限分离有些区别,主要是这里的角色分两种,一种是全局角色,一种是明细角色。全局角色控制是否可以全局查看,明细角色则控制所能看到的job明细,在为一个用户分配角色时,这连个角色都是要有的。废话不多说来一起试一下就知道了。


1).创建一个全局角色


创建全局角色 develop,并只分配全局的read权限


9717d0db8e6b492ca2a6015b6c28ec68.png

2).创建一个明细角色


创建明细角色 develop-sit ,并使用正则控制该角色只能查看以SIT结尾的job

7a434585a2b943d3a95c823be19235a0.png


3.为用户配置角色


(这里不展示创建用户了)我们为mdmdev用户分配全局角色develop,为mdmdev分配明细角色develop-sit:

eee6653914a64eb6a0cdd4b724a321d9.png


这样角色就分配完了,登录mdmdev账号看看是不是只有以SIT结尾的job可以看到,其他的就看不到了呢,如下所示:


7c5ca481dffa4afc8cbca7262bc15a8a.png



可以发现,权限分离已经成功了。


三、碰到的过的问题



1.global roles 与 Item roles 的区别和使用


上面的动作完成后可能就会有这种疑问,全局角色与明细角色的差别到底在哪里呢,笔者感觉全局角色控制的只是全局的信息展示,但是涉及到明细的权限还是必须得用明细角色来控制,这就像一种补充,至于为什么这么设计,可能是为了实现对jenkins某些东西的兼容吧,不然也不会设计的这么丑陋了。


2.Item roles 创建时的pattern里的正则如何写


笔者上面的例子是某角色只展示某种特定结尾的job,pattern这么写即可:.*SIT,其中SIT是job的特定结尾,不过若是job都是以特定开头来命名的呢,此时我们的pattern就需要这么写了:SIT.星号,其中SIT就是我们特定的开头,星号就是我们正则里的星号了,这里使用汉字代替了(忘记这里的转义符了,就这么写吧)。

相关文章
|
jenkins 持续交付 数据安全/隐私保护
|
安全 jenkins Java
4❤️Jenkins从零到壹❤️ :用户权限管理(JAVA 小虚竹)
4❤️Jenkins从零到壹❤️ :用户权限管理(JAVA 小虚竹)
133 0
4❤️Jenkins从零到壹❤️ :用户权限管理(JAVA 小虚竹)
|
2月前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
74 2
|
5月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
27天前
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
67 12
|
2月前
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值
|
2月前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
91 4
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
85 0
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
272 0