CentOS 上 Jenkins 权限管理实操指南
一 基础安全配置
- 启用安全:进入 Manage Jenkins → Configure Global Security,勾选 Enable security。
- 身份认证:在 Security Realm 选择 Jenkins’ own user database,按需勾选 Allow users to sign up(首次搭建便于创建管理员)。
- 授权策略(两种常用):
- Matrix-based security(安全矩阵):在全局为用户/组授予细粒度权限,适合小团队或快速落地。
- Project-based Matrix Authorization Strategy(项目矩阵授权):与矩阵类似,但可在每个 Job/项目 配置页进一步细化授权。
- 关键权限要点:
- Overall/Read 是最基本的“能登录并看到内容”的权限;
- Overall/Administer 是最高权限;
- 在矩阵中为用户/组添加后,应用并保存设置。
二 基于角色的访问控制 RBAC(推荐)
- 安装插件:进入 Manage Jenkins → Manage Plugins,安装 Role-based Authorization Strategy。
- 切换策略:回到 Configure Global Security,将授权策略切换为 Role-Based Strategy 并保存。
- 定义角色:进入 Manage Jenkins → Manage and Assign Roles → Manage Roles,常见三类角色:
- Global roles(全局角色):如管理员、只读用户等;
- Item roles(项目角色):按项目命名空间授权,支持用 正则表达式 匹配项目名;
- Node roles(节点角色):控制代理/节点相关操作。
- 建议起步角色:
- 创建全局角色 baseRole,仅授予 Overall/Read,作为所有用户的“最小可见”基线;
- 创建项目角色(如 demo)绑定 demo.,创建 test 绑定 test.,分别授予构建、查看等所需权限;
- 分配角色:进入 Assign Roles,为用户(如 test1、test2)勾选相应 Global/Item 角色;
- 验证:以不同用户登录,确认 test1 仅见 demo* 项目、test2 仅见 test* 项目。
三 常见权限矩阵示例
| 对象 |
建议权限 |
说明 |
| Overall |
Read |
所有用户的最小权限,缺失会导致“看不见任何内容” |
| Overall |
Administer |
超级管理员,谨慎授予 |
| Job |
Read、Build、Workspace、Cancel |
只读+构建+查看工作区+取消构建,覆盖日常开发 |
| Job |
Configure、Delete、Create |
项目配置/删除/创建,按需授予 |
| View |
Read、Create、Delete |
视图可见与维护 |
| Credentials |
View、Create、Update、Delete、ManageDomains |
凭证查看与管理 |
| Node |
Connect、Disconnect、Configure |
代理节点连接与配置 |
| 说明:在 Matrix 或 Project-based Matrix 中,按上表为用户/组勾选对应权限即可;若使用 RBAC,则把相同权限组合到 Global/Item/Node 角色中再分配。 |
|
|
四 用户管理与项目级授权
- 新建用户:进入 Manage Jenkins → Manage Users → 新建用户,创建后回到 Assign Roles 分配角色。
- 项目级授权:在 RBAC 下,项目角色通过 命名模式(正则) 自动匹配;在 矩阵策略 下,可进入具体 Job → Configure → Enable project-based security,为用户/组设置该项目专属权限,实现“不同项目不同人不同权限”。
五 安全加固与排错要点
- 最小权限原则:普通用户只给 Overall/Read + Job/Read/Build 等必要权限,避免授予 Overall/Administer。
- 基线角色:为所有用户统一授予 baseRole(Overall/Read),再按项目授予 Item 角色,减少遗漏。
- 定期更新:保持 Jenkins 与插件 为最新稳定版,及时修补安全漏洞。
- 访问控制:通过 firewall-cmd 仅开放必要端口(如 8080/443),并限制来源网段。
- 日志排查:出现异常时查看 /var/log/jenkins/jenkins.log 定位问题。
- 谨慎提权:不建议将 JENKINS_USER 改为 root 运行,优先使用 jenkins 系统用户并配合精细授权。