Jenkins 用户权限管理终极指南
一、 核心理念
现代 Jenkins 为了安全,默认强制启用安全机制。我们不再需要“开启安全”,而是直接进行配置。权限管理围绕两大核心:
- 认证 (Authentication): 你是谁? — 通过
安全域 (Security Realm)进行配置,决定用户如何登录。 - 授权 (Authorization): 你能做什么? — 通过
授权策略 (Authorization Strategy)进行配置,决定用户登录后拥有哪些权限。
主配置入口: 系统管理 (Manage Jenkins) -> 全局安全配置 (Configure Global Security)
二、 认证配置 (你是谁?)
在 全局安全配置 页面,找到 安全域 (Security Realm) 部分。这里决定了用户登录 Jenkins 的方式。
选项 1:Jenkins 专用用户数据库 (默认 & 新手推荐)
这是最简单直接的方式,所有用户信息都存储在 Jenkins 内部。
- 配置:
- 在
安全域下拉菜单中选择Jenkins 专用用户数据库。 - 强烈建议:取消勾选
允许用户注册 (Allow users to sign up),以防任何人都能随意创建账号。
- 在
- 用户管理:
- 管理员需在
系统管理->管理用户 (Manage Users)中手动创建、删除或修改用户。
- 管理员需在
选项 2:通过插件扩展更多认证方式 (企业级推荐)
要连接企业用户系统 (如 LDAP) 或第三方平台 (如 GitHub),需要先安装插件。
- 安装步骤:
- 进入
系统管理->插件管理 (Manage Plugins)->Available plugins标签页。 - 根据需求搜索并安装插件,例如:
LDAP,GitHub Authentication,GitLab Authentication。 - 安装后,根据提示重启 Jenkins。
- 进入
- 配置:
- 重启后,回到
全局安全配置->安全域。 - 在下拉菜单中选择你刚刚安装的选项 (如
LDAP) 并填写相关配置。
- 重启后,回到
三、 授权配置 (你能做什么?) - 权限管理核心
在 全局安全配置 页面,找到 授权策略 (Authorization Strategy) 部分。
重要提示: Jenkins 默认的 登录用户可以做任何事 策略意味着任何登录用户都是管理员,这存在巨大安全风险。必须将其更换为更安全的策略。
策略一只做简单介绍
策略二是我正在使用的策略
策略一:安全矩阵 (Matrix-based security) - 基础选项
这是一种直观的表格化权限管理方式,适用于用户和项目数量不多,权限结构简单的场景。
- 简介: 在一个二维表格中,直接为每个用户(行)勾选其拥有的权限(列)。
- 优点: 设置简单,一目了然。
- 缺点: 当用户和项目增多时,表格会变得异常庞大,难以维护和审计。
- 关键操作: 选择此策略后,第一步务必先将自己的管理员账号加入矩阵,并授予
Administer最高权限,然后再进行其他配置,最后点击保存。
前提:检查核心安全插件是否已安装
如果您在授权策略的下拉列表中看不到安全矩阵 (Matrix-based security)这个选项,说明您需要先安装它的功能插件。
- 进入插件管理:
系统管理->插件管理->Available plugins。- 搜索并安装: 搜索
Matrix Authorization Strategy Plugin并安装。- 重启 Jenkins。
策略二:基于角色的策略 (Role-based Strategy) - 推荐的高级选项
当 安全矩阵 变得难以管理时,Role-based Strategy 插件是最佳解决方案。它通过引入“角色 (Role)”这一中间层,将用户与具体权限解耦,实现了高效、可扩展的权限管理。
第 1 步:安装插件
- 在 Jenkins 主界面,点击
系统管理 (Manage Jenkins)->插件管理 (Manage Plugins)。 - 切换到
Available plugins(可选插件) 标签页。 - 在右上角的搜索框中输入
Role-based Authorization Strategy。 - 勾选该插件并安装,然后根据提示重启 Jenkins。
第 2 步:启用策略
- 回到
系统管理->全局安全配置->授权策略。 - 在下拉菜单中,选择新出现的
Role-based Strategy。 - 点击页面底部的
保存 (Save)。

第 3 步:进入角色管理界面
启用策略后,系统管理 菜单下会出现一个新的管理入口:
Manage and Assign Roles
点击进入,你将看到权限配置的核心界面。
第 4 步:创建角色 (Manage Roles) - 定义权限模板
在这里,我们不直接给用户权限,而是创建带有权限集合的“角色”。
-
创建全局角色 (Global roles):
- 用途: 定义与具体项目无关的全局性权限。
- 操作:
- 在
Global roles下方的Role to add输入框中,输入角色名,例如admin,点击Add。 - 在权限列表中,为
admin角色勾选Overall分类下的Administer权限。 - 再创建一个
viewer角色,只为其勾选Overall下的Read权限。

- 在
-
创建项目角色 (Item roles):
- 用途: 定义针对一个或多个项目的特定权限。这是该插件最强大的功能。
- 核心功能: 使用
Pattern字段,通过正则表达式匹配 Job 名称。 - 操作:
- 在
Item roles下方的Role to add输入框中,输入角色名,例如project-api-dev,点击Add。 Pattern字段: 填写^project-api-.*。这个表达式的含义是“匹配所有以project-api-字符串开头的 Job 名称”。Permissions: 为这个角色勾选项目相关的权限,例如Job分类下的Build,Configure,Read,Workspace。

- 在
Agent Roles可以暂时不用理会
第 5 步:分配角色 (Assign Roles) - 将权限赋予用户
在这里,我们将之前创建好的角色“贴”到具体的用户或用户组身上。
-
分配全局角色 (Global roles):
- 在
User/group to add输入框中,添加你的管理员用户名 (如admin)。 - 在表格中,为
admin用户勾选admin角色。 - 找到
authenticated用户组(代表所有已登录的用户),为其勾选viewer角色。这样确保了所有登录用户至少拥有全局只读的权限。

- 在
-
分配项目角色 (Item roles):
- 在
User/group to add输入框中,添加需要此权限的开发者用户名 (如dev_user1,dev_user2,用户需要先在 系统管理-管理用户 下进行创建)。 - 在表格中,为
dev_user1和dev_user2勾选project-api-dev角色。save保存

至此一个简单权限控制就完成了
- 在
四、 总结与黄金法则
- 安全永在: 现代 Jenkins 安全默认开启,你的任务是配置,而非开启。
- 先保自己: 无论切换何种授权策略,第一要务是确保你自己的管理员账号拥有最高管理权限。
- 最小权限: 始终遵循最小权限原则,只授予必要的权限。
- 由简入繁: 团队小,用
安全矩阵;团队大,项目多,果断上Role-based Strategy插件。 - 善用组/角色: 优先将权限赋予“角色”或“用户组”,而不是单个用户,极大简化人员变动时的权限调整。
- 插件是翅膀: Jenkins 的核心功能有限,学会通过插件来扩展其认证和授权能力。
- 定期审计: 定期检查用户权限,移除不再需要的账号和权限。
2万+

被折叠的 条评论
为什么被折叠?



