当前位置:首页 > 科技  > 软件

如果你还不理解 RBAC,看看 Jenkins 如何做到的

来源: 责编: 时间:2024-04-08 08:59:01 108观看
导读通过本篇你可以学习到如下内容:RBAC 的基础知识。Jenkins 的角色权限插件的使用。实战:通过角色来管理用户的部署权限。一、RBACJenkins 对权限的支持是比较弱的,存在以下不足:有多个流水线任务,期望不同用户能看到的任务

通过本篇你可以学习到如下内容:qGb28资讯网——每日最新资讯28at.com

  • RBAC 的基础知识。
  • Jenkins 的角色权限插件的使用。
  • 实战:通过角色来管理用户的部署权限。

一、RBAC

Jenkins 对权限的支持是比较弱的,存在以下不足:qGb28资讯网——每日最新资讯28at.com

  • 有多个流水线任务,期望不同用户能看到的任务不一样。
  • 一个项目有多套环境,期望用户只能部署某些环境。
  • 有的项目只让用户有查看权限,期望不给部署权限。

针对上面的不足,Jenkins 可以通过 RBAC 插件的方式来实现对权限的管控。RBAC 是常见的权限控制方案。qGb28资讯网——每日最新资讯28at.com

RBAC(Role-Based Access Control):基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。qGb28资讯网——每日最新资讯28at.com

如下图所示,三个用户对应了三种角色,每个角色关联了不同的部署任务,通过这种关联方式间接赋予了用户权限。qGb28资讯网——每日最新资讯28at.com

图片图片qGb28资讯网——每日最新资讯28at.com

二、角色权限插件

目前发现这个角色权限插件是比较好用的,推荐给大家使用。qGb28资讯网——每日最新资讯28at.com

插件名:Role-based Authorization Strategy。可以到插件管理那里进行安装,如下图所示:qGb28资讯网——每日最新资讯28at.com

角色权限策略插件角色权限策略插件qGb28资讯网——每日最新资讯28at.com

三、选择授权策略

Jenkins 自带了多种授权策略,如下图所示,在全局安全设置中可以选择授权策略。qGb28资讯网——每日最新资讯28at.com

对应的访问路径如下:qGb28资讯网——每日最新资讯28at.com

Dashboard->Manage Jenkins->Configure Global Security

当我们安装好 Role-based Authorization Strategy 插件后,就会出现一个 Role-Base Strategy 授权策略。qGb28资讯网——每日最新资讯28at.com

Jenkins 授权策略Jenkins 授权策略qGb28资讯网——每日最新资讯28at.com

下面开始演示如何基于这个授权策略来分配多个流水线的部署权限。qGb28资讯网——每日最新资讯28at.com

四、创建演示用户

为了更好的演示角色权限管理功能,我创建了 3 个用户以及 4 个流水线任务。qGb28资讯网——每日最新资讯28at.com

创建用户的路径为:qGb28资讯网——每日最新资讯28at.com

http://<你的jenkins地址>:8080/securityRealm/

我在 jenkins 后台创建了几个用户:qGb28资讯网——每日最新资讯28at.com

  • 开发组长1:用户名=passjava-master1
  • 测试组长1:用户名=passjava-tester1
  • 项目经理1:用户名=passjava-pm1

如下图所示:qGb28资讯网——每日最新资讯28at.com

图片图片qGb28资讯网——每日最新资讯28at.com

五、创建演示任务

我创建了 4 个部署流水线任务,分别对应项目一和项目二的测试和生产环境。如下图所示:qGb28资讯网——每日最新资讯28at.com

图片图片qGb28资讯网——每日最新资讯28at.com

项目一和项目二的测试和生产环境qGb28资讯网——每日最新资讯28at.com

然后还创建了两个分组:正式环境分组和测试环境分组。qGb28资讯网——每日最新资讯28at.com

正式环境分组:demo-prod-envqGb28资讯网——每日最新资讯28at.com

  • 项目一正式环境:对应 passjava-prod-project1 任务
  • 项目二正式环境:对应 passjava-prod-project2 任务

测试环境分组:demo-test-envqGb28资讯网——每日最新资讯28at.com

  • 项目一测试环境:对应 passjava-test-project1 任务
  • 项目二测试环境:对应 passjava-test-project2 任务

分组的好处是可以归类以及可以按组分配权限。qGb28资讯网——每日最新资讯28at.com

六、创建演示角色

6.1 创建角色的页面路径

创建角色的路径如下图所示:qGb28资讯网——每日最新资讯28at.com

图片图片qGb28资讯网——每日最新资讯28at.com

创建角色的页面路径qGb28资讯网——每日最新资讯28at.com

页面地址:http://<你的jenkins服务ip>:8080/manage/role-strategy/访问路径:Dashboard->Manage Jenkins->Manage and Assign Roles->Manage Roles

6.2 三种角色

这个插件可以创建三种角色:qGb28资讯网——每日最新资讯28at.com

  • Global roles:全局角色,例如管理员、作业创建者、匿名等,允许在全局基础上设置总体、代理、任务、运行、查看和 SCM 权限。
  • Item roles:任务角色,允许在任务、分组上设置特定权限。
  • Agent roles:Agent 角色,本篇用不上。

6.3 全局角色

全局角色适用于 Jenkins 中的任何任务,并覆盖你在任务角色中指定的任何内容。也就是说,当你在全局角色中授予角色权限 Job/Read,无论你在任务角色中指定什么,都允许该角色读取所有任务。qGb28资讯网——每日最新资讯28at.com

所以为了分配不同任务权限给不同角色,这里对于全局角色勾选一个 Overall Read 权限即可。如下图所示:qGb28资讯网——每日最新资讯28at.com

我创建了一个全局角色:passjava,如下图所示。qGb28资讯网——每日最新资讯28at.com

创建全局角色 passjava创建全局角色 passjavaqGb28资讯网——每日最新资讯28at.com

后续将上面创建的三个用户加到这个 Global 角色中即可。qGb28资讯网——每日最新资讯28at.com

注意:如果这三个用户不加入到 passjava 角色中的话,后续这三个用户登录会提示报错,如下图所示:qGb28资讯网——每日最新资讯28at.com

图片图片qGb28资讯网——每日最新资讯28at.com

6.4 任务角色

我创建了三种任务角色:qGb28资讯网——每日最新资讯28at.com

  • passjava-master:具有部署项目一和项目二的正式环境的权限。
  • passjava-tester:具有部署项目一的和项目二的测试环境的权限。
  • passjava-pm:具有查看项目一和项目二的正式环境和测试环境的权限,没有部署权限。

如下图所示:qGb28资讯网——每日最新资讯28at.com

项目角色项目角色qGb28资讯网——每日最新资讯28at.com

下面解释下上面的权限配置:qGb28资讯网——每日最新资讯28at.com

  • Role:代表角色名称
  • Pattern:代表正则表达式。例如,如果将该字段设置为 passjava-prod.*,则该角色将匹配名称以 passjava-prod 开头的所有任务,更多匹配规则可到该插件的官网上查看。点击蓝色的 passjava-prod.*,则能看到匹配成功的任务:passjava-prod-project1任务 和 passjava-prod-project2任务,如下图所示:

正则表达式匹配成功 项目正则表达式匹配成功 项目qGb28资讯网——每日最新资讯28at.com

  • Job:任务的权限,我们勾选 Build(部署),Cancel(取消部署),Read(查看任务)即可。

6.5 分配角色

创建好全局角色和任务角色,我们就可以将用户加入到对应的任务角色中,用户和角色是多对多的关系。比如用户张三可以具有角色 A 和角色 B 的权限,角色 A 的权限也可以给用户张三和李四。qGb28资讯网——每日最新资讯28at.com

6.5.1 分配全局角色

通过 Assign Roles 功能将三个用户都加入到 passjava 角色中。qGb28资讯网——每日最新资讯28at.com

图片图片qGb28资讯网——每日最新资讯28at.com

6.5.2 分配项目角色

图片图片qGb28资讯网——每日最新资讯28at.com

  • 开发组长具有 passjava-master 权限,可以部署项目一和项目二的正式环境。开发组长登录系统后看到的任务列表如下图所示:

开发组长查看项目列表开发组长查看项目列表qGb28资讯网——每日最新资讯28at.com

  • 项目经理具有 passjava-pm 权限,可以查看项目一和项目二的测试和正式环境的部署情况。项目经理登录系统后看到的任务列表如下图所示:

图片图片qGb28资讯网——每日最新资讯28at.com

  • 测试组长具有 passjava-tester 权限,可以部署项目一和项目二的测试环境。测试组长登录系统后看到的任务列表如下图所示:

而是组长查看项目列表而是组长查看项目列表qGb28资讯网——每日最新资讯28at.com

可以从上面的结果看出用户、角色、权限分配完成,不同的用户可以部署不同的环境。qGb28资讯网——每日最新资讯28at.com

七、总结

通过本篇的学习,我们了解了 RBAC 以及角色权限插件的使用。通过实战掌握了如何配置不同用户具有不同角色,不同角色具有不同任务的权限,从而可以更安全地管理用户的部署权限。qGb28资讯网——每日最新资讯28at.com

回到最开始提到的 Jenkins 的不足之处我们来看看解决方案是怎么样的:qGb28资讯网——每日最新资讯28at.com

  • 有多个流水线任务,期望不同用户能看到的任务不一样,解决方案是可以给不同角色分配不同的任务,不同用户赋予不同角色。如实战中的开发组长和测试组长看到的任务不一样。
  • 一个项目有多套环境,期望用户只能部署某些环境,解决方案是对多套环境创建对应的多个任务,多个角色拥有对应环境的任务,并对用户赋予对应环境的角色。如实战中开发组长只能看到正式环境的任务。
  • 有的项目只让用户有查看权限,期望不给部署权限,解决方案是添加一个只能查看对应项目的任务的角色,并给用户赋予这个角色,如实战中项目经理1只有查看权限,没有部署权限。

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-81868-0.html如果你还不理解 RBAC,看看 Jenkins 如何做到的

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 用C++11打造智能观察者模式:详解实现步骤完整示例代码

下一篇: 每天都提交代码,那你知道.git目录内部的秘密吗?

标签:
  • 热门焦点
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 对标苹果的灵动岛 华为带来实况窗功能

    对标苹果的灵动岛 华为带来实况窗功能

    继苹果的灵动岛之后,华为也在今天正式推出了“实况窗”功能。据今天鸿蒙OS 4.0的现场演示显示,华为的实况窗可以更高效的展现出实时通知,比如锁屏上就能看到外卖、打车、银行
  • 在线图片编辑器,支持PSD解析、AI抠图等

    在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 每天一道面试题-CPU伪共享

    每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 阿里大调整

    阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 华为Mate 60系列用上可变灵动岛:正式版体验将会更出色

    华为Mate 60系列用上可变灵动岛:正式版体验将会更出色

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • 华为开发者大会2023日程公开:开设鸿蒙HarmonyOS 4体验区

    华为开发者大会2023日程公开:开设鸿蒙HarmonyOS 4体验区

    IT之家 7 月 31 日消息,华为今日公布了 HDC.Together 开发者大会 2023 的详细日程。整场大会将于 8 月 4 日-6 日之间举行,届时将发布最新一代鸿蒙 H
  • 最薄的14英寸游戏笔记本电脑  Alienware X14已可以购买

    最薄的14英寸游戏笔记本电脑 Alienware X14已可以购买

    2022年1月份在国际消费电子展(CES2022)上首次亮相的Alienware新品——Alienware X14现在已经可以购买了,这款笔记本电脑被誉为世界上最薄的 14 英寸游戏笔
  • 荣耀Magic4 至臻版 首创智慧隐私通话 强劲影音系统

    荣耀Magic4 至臻版 首创智慧隐私通话 强劲影音系统

    2022年第一季度临近尾声,在该季度内,许多品牌陆续发布自己的最新产品,让大家从全新的角度来了解当今的手机技术。手机是电子设备中,更新迭代十分迅速的一款产品,基
Top
Baidu
map