持续集成交付CI及CD之Jenkins的权限控制

背景

随着公司开发项目越来越多,需要Jenkins构建的项目越来越多,我们需要对不同项目组用户实行项目的权限配置,如A用户只能查看自己的项目,只有构建权限和查看权限且不能编辑项目;同理,B用户也不能看到A用户的构建项目。本着为不同用户分配权限, 不同项目组成员做好安全和项目隔离, 让团队执行效率更高等原因, 故需要做好Jenkins的权限控制

接下来跟大家分享Jenkins中的权限控制

安装插件

系统管理----插件管理------可选插件

搜索 Role-based Authorization Strategy 进行安装, 安装后重启Jenkins

部署完成后,进入Jekins平台 -> 系统管理 -> 全局安全配置 ->授权策略,选择 Role-Based Strategy

授权策略选择入口.png

授权策略选择.png

用户的项目权限配置

用户的创建可以在全局全局配置中打开允许用户注册, 也可以在系统管理->用户管理 中新增用户
用户列表.png

配置路径:系统管理 -> Manage and Assign Roles

Manage and Assign Roles入口.png

Manage and Assign Roles.png

Manage Roles

从字面可以看出,这是进行role管理,

role分为 Global roles,Item roles,Node roles

1)Global roles

角色权限分配.png

Global roles下不能给除管理员以外的其他角色授权read权限,否则用户能看到所有job,只是无法操作而已,这样就没办控制对应项目组的用户只能看自己项目的job,而且会出现一个用户展示很多job,体验不友好!

Global roles :除了admin角色外,其他角色都需要自己重新创建,这里可以创建开发,qa等角色,然后分别给对应的角色授权 任务(job)的增删改等操作的权限。这里针对开发(developer)的话,暂时只分配任务(job)创建、构建和取消构建的权限。这个是全局的角色权限,还可以针对不同的job再单独授权更细的权限 ,全局role的权限建议不要给太大

2)Item roles

为针对不同的job创建的角色

item权限分配1.png
item权限分配2.png

角色的权限为 Global roles + Item roles 的并集

3)Node roles

针对节点相关的权限控制

Assign Roles分配角色

为用户指定角色.png
为用户指定item权限.png

user001 登录后的效果如下:只能看project_a 项目相关的view和job,并且job是没有配置权限
user001任务列表.png
user001任务详情.png

user002 登录后的效果如下:只能看project_b 项目相关的view和job,并且job是有配置权限的。

user002任务列表.png
user002任务详情.png

添加新评论