当前位置: 首页 > web >正文

Jenkins用户授权管理 企业级jenkins授权策略 jenkins用户权限分配

Jenkins用户授权管理

我们来详细介绍一下 Jenkins 的权限管理系统。这是一个非常核心的功能,用于控制不同用户或团队在 Jenkins 中能做什么和不能做什么。

一、权限介绍

Jenkins 的权限管理主要分为两个部分:认证(Authentication)授权(Authorization)

  1. 认证:解决“你是谁?”的问题,即用户登录验证身份。
  2. 授权:解决“你能做什么?”的问题,即验证通过后,你拥有哪些操作的权限。

Jenkins系统中授权插件应用最广的是Role-based Authorization Strategy, 这是最强大、最灵活、也最常用的策略。它允许你创建不同的角色,并为角色分配精细的权限,然后将角色分配给用户或用户组。

权限的粒度(Permissions)

在“基于角色的策略”中,你可以分配非常精细的权限。主要分为以下几大类:

Overall(全局): Jenkins 系统本身的权限。

  • Administer最高权限,可以管理整个 Jenkins。
  • Read:读取系统的基本信息。

Credentials(凭据): 管理敏感信息(如密码、SSH密钥、API Token)的权限。

  • Create, Delete, ManageDomains, Update, View

Agent(代理节点): 管理 Jenkins 代理节点(从节点)的权限。

  • Configure, Create, Delete, Disconnect, Connect

Job(任务): 最常用的权限类别,控制对构建任务的操作。

  • Create:创建新任务。
  • Delete:删除任务。
  • Configure:修改任务的配置。
  • Read:查看任务页面、构建历史和日志。
  • Build:触发一次构建。
  • Cancel:取消一个正在进行的构建。
  • Move:移动任务(如从文件夹A到文件夹B)。
  • Discover:只能看到任务的名字(如果没Read权限,无法进入任务页面)。

Run(构建): 控制对每次构建结果的操作。

  • Delete:删除某次构建的历史记录。
  • Update:更新构建信息(如描述)。
  • Replay:使用相同的参数重新运行构建。

View(视图): 控制视图(用于筛选和分类任务)的管理。

  • Create, Configure, Delete, Read

SCM(源代码管理): 触发由 SCM 更改引起的构建(如 Git 的 Webhook)。

jenkins权限矩阵通过“角色→权限→用户”的三级管理:每个用户只绑定1-2个角色,每个角色仅包含必要权限,操作记录可精确到人。
在这里插入图片描述

二、设置权限

1.安装插件:系统管理—>插件管理
在这里插入图片描述
在这里插入图片描述
2.安装完成后,返回“系统管理”→进入“全局安全配置”,在“授权策略”中选择“Role-Based Strategy”
在这里插入图片描述
保存返回主界面之后在系统管理---->Manage and Assign Roles
在这里插入图片描述

三、最佳实践和配置示例

假设我们有一个团队,结构如下:

  • 管理员admin - 拥有所有权限。
  • 开发团队A:用户 dev-a1, dev-a2,他们只能管理以 team-a- 开头的任务。
  • 开发团队B:用户 dev-b1, dev-b2,他们只能管理以 team-b- 开头的任务。
  • 运维团队:用户 ops,可以管理所有任务(查看、配置)和节点,但不能修改系统设置。

创建用户
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
用户创建照此进行,或者开启允许注册用户:系统管理---->全局安全配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置步骤:

管理角色:进入 “系统管理” > “Manage and Assign Roles”

  • a. 管理角色

    全局角色

    • admin-role:分配 Overall/Administer
    • read-only-role:分配 Overall/Read
      在这里插入图片描述
    • ops-role:分配 Overall/Read, Agent/..., Job/Read, Job/Configure(不包含CreateDelete)。
      在这里插入图片描述

    项目角色

    • team-a-devPattern 填写 team-a-.*,分配 Job/Build, Job/Read, Job/Configure, Job/Cancel 等。
      在这里插入图片描述

    • team-b-devPattern 填写 team-b-.*,权限同 team-a-dev
      在这里插入图片描述

  • b. 分配角色

    • 全局角色分配

      • 用户 admin -> 分配 admin-role

      • 用户 ops -> 分配 ops-roleread-only-role
        在这里插入图片描述
        在这里插入图片描述

      • 所有已登录用户(authenticated)-> 分配 read-only-role(保证登录后至少能看到一些东西)。
        在这里插入图片描述
        在这里插入图片描述

在这里插入图片描述

  • 项目角色分配

    • 用户 dev-a1, dev-a2 -> 分配 team-a-dev
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 用户 dev-b1, dev-b2 -> 分配 team-b-dev
      在这里插入图片描述

    测试

    新建两个项目一个为team-a*开头的与team-b开头的项目测试dev-a1与dev-b1用户
    在这里插入图片描述

    首选登陆jack用户查看是否只有对全局拥有只读权限
    在这里插入图片描述

    登陆dev-a1用户查看
    在这里插入图片描述

    登陆dev-b1用户查看
    在这里插入图片描述

    登陆运维的ops用户查看
    在这里插入图片描述
    到此jenkins权限设置完成,在工作中需要根据实际情况给相关人员分配对应的权限。

http://www.xdnf.cn/news/18608.html

相关文章:

  • 【go语言】使用Wails开发一款现代化文本编辑器 - 从0到1的实践指南
  • 机器学习之线性回归:原理、实现与实践
  • 动态代理保姆级别
  • 移动应用青少年模式开发成本解析:原生、Flutter与Uniapp方案对比-优雅草卓伊凡
  • Slither 审计自己写的智能合约
  • MySQL InnoDB记录存储结构深度解析
  • 服务发现实例和服务实例是不同的
  • reactive 核心要点
  • Unreal Engine UPrimitiveComponent
  • 数据分析编程第二步: 最简单的数据分析尝试
  • day58 拓扑排序 (kama117. 软件构建) dijkstra(朴素版)(kama47. 参加科学大会)
  • 无人机电机与螺旋桨的匹配原理及方法(一)
  • JavaSSM框架从入门到精通!第三天(MyBatis(二))!
  • Python训练营打卡Day40-简单CNN
  • 【51单片机数码管字符左移】2022-11-11
  • 如何低门槛自制Zigbee 3.0温湿度计?涂鸦上新开发包,开箱即用、完全开源
  • 开源AI编程工具Kilo Code的深度分析:与Cline和Roo Code的全面对比
  • Tiger任务管理系统-13
  • 【jar包启动,每天生成一个日志文件】
  • Unity UnityWebRequest高级操作
  • Ubuntu部署K8S集群
  • Jmeter+Jenkins接口压力测试持续集成
  • 【motion】基于标签重合度的匹配算法1:原理
  • 3D打印小批量低成本打印玩具工艺品模型-中科米堆CASAIM
  • 字节Seed-OSS开源,不卷参数卷脑子
  • 从零开始搭 Linux 环境:VMware 下 CentOS 7 的安装与配置全流程(附图解)
  • 如何修复“DNS服务器未响应”错误
  • AP服务发现PRS_SOMEIPSD_00160的解析
  • 开源版CRM客户关系管理系统源码包+搭建部署教程
  • 深度学习入门详解:从神经网络到实践应用