上线 Jenkins 做自动构建后,随着项目越来越多,Jenkins 中配置的项目越来越多,需要根据不同项目组用户来控制项目的权限,实现 A 用户只能查看自己的项目,只有构建权限和查看权限且不能编辑项目,同理 B 用户也不能看到 A 用户的构建项目。
权限配置
- 启用用户安全配置,Manage Jenkins → Configure Global Security → Security Realm → Jenkins’ own user database
- 用户可以自由注册,启用之后在 Jenkins 首页可以看到 Sign-up 入口,团队规模不大(10 人左右)建议不要启用用户自由注册选项,减少用户管理时间成本。管理员可以从后台直接添加用户,从 Jenkins 管理控制台页面 → Manage Jenkins → Manage user,进行添加、修改、删除用户等操作
- 不同的用户在 Jenkins 中可操作的内容不同,其优势是分权管理,避免误操作带来的麻烦。比如误删任务、误改代码等。常见的权限配置有
- 管理员:配置 Jenkins , 创建和更新 job,运行 job,查看日志
- 任务开发:创建和更新 job,运行 job,查看日志
- 使用者:运行 job, 查看日志
- 用户操作的权限控制,必须由管理员来完成。Manage Jenkins → Configure Global Security → Authorization → 安全矩阵 | 项目矩阵授权策略
案例说明
使用管理员账号分别创建用户 a,用户 b 。在 b 用户 Read 权限。
管理员账号创建 ajob,并在 ajob 中 General 启动用项目安全,赋予用户 a 构建和查看 job 的权限。管理员账号创建 bjob,并在 bjob 中 General 启动用项目安全,赋予用户 b 构建和查看 job 的权限。
登录用户 a,可以看到 ajob,并可以构建和查看 ajob。没有配置和删除 ajob 的权限。用户 b 同理