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权限设置完成,在工作中需要根据实际情况给相关人员分配对应的权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值