背景
随着公司开发项目越来越多,需要Jenkins构建的项目越来越多,我们需要对不同项目组用户实行项目的权限配置,如A用户只能查看自己的项目,只有构建权限和查看权限且不能编辑项目;同理,B用户也不能看到A用户的构建项目。本着为不同用户分配权限, 不同项目组成员做好安全和项目隔离, 让团队执行效率更高等原因, 故需要做好Jenkins的权限控制
接下来跟大家分享Jenkins中的权限控制
安装插件
系统管理----插件管理------可选插件
搜索
Role-based Authorization Strategy
进行安装, 安装后重启Jenkins部署完成后,进入Jekins平台 -> 系统管理 -> 全局安全配置 ->授权策略,选择
Role-Based Strategy
用户的项目权限配置
用户的创建可以在全局全局配置中打开允许用户注册, 也可以在系统管理->用户管理 中新增用户
配置路径:系统管理 -> Manage and Assign Roles
Manage Roles
从字面可以看出,这是进行role管理,
role分为 Global roles,Item roles,Node roles
1)Global roles
Global roles下不能给除管理员以外的其他角色授权read权限,否则用户能看到所有job,只是无法操作而已,这样就没办控制对应项目组的用户只能看自己项目的job,而且会出现一个用户展示很多job,体验不友好!
Global roles :除了admin角色外,其他角色都需要自己重新创建,这里可以创建开发,qa等角色,然后分别给对应的角色授权 任务(job)的增删改等操作的权限。这里针对开发(developer)的话,暂时只分配任务(job)创建、构建和取消构建的权限。这个是全局的角色权限,还可以针对不同的job再单独授权更细的权限 ,全局role的权限建议不要给太大
2)Item roles
为针对不同的job创建的角色
角色的权限为 Global roles + Item roles 的并集
3)Node roles
针对节点相关的权限控制
Assign Roles分配角色
user001 登录后的效果如下:只能看project_a 项目相关的view和job,并且job是没有配置权限
user002 登录后的效果如下:只能看project_b 项目相关的view和job,并且job是有配置权限的。