自动化部署用户及权限(理论篇)

一、Jenkins安全域管理

Jenkins可使用多种方式对用户授权进行管理。在实际应用中,一般大型团队可建立LDAP服务器,小型团队可使用Unix用户/ 组。

Jenkins专有用户数据库 Jenkins的内置验证,适用于没有用户数据库小范围的设定。不支持组概念。
LDAP 轻量目录访问协议验证,需要在外部建立LDAP服务器
Servlet容器代理 使用Servlet容器认证用户,遵循Servlet规范。旧版本遗留功能。
Unix用户/组数据库 将授权验证委托给Jenkins的操作系统。

表1: Jenkins安全域管理

二、授权策略

Jenkins内置的授权策略为任何用户可以做任何事、登录用户可以做任何事、或遗留模式。内置模式无法满足多角色操作的需求,因此我们引入插件 Role Strategy Plugin,来实现用户ACL管理策略。RSP可建立的策略包括:

  • 建立角色,如系统管理员,项目管理员,匿名用户等。并在全局范围内赋予工作台、从节点、项目、运行、视图或版本控制权限。
  • 建立项目角色,对指定的项目赋予管理和运行权限
  • 建立从节点角色,管理节点相关权限
Overall  全局, 系统级别的定义组
  Administer 管理员,分配后具备Jenkins所有操作权限
  Read 系统访问,该权限包括大部分Jenkins页面的只读权限
  RunScripts 运行脚本,在Jenkins系统中运行脚本,包括Groovy脚本或可交互的Groovy命令行,不包括任务。
Credentials   凭证
   Create、Update、View、Delete 分别为创建、更新、访问、删除凭证
  ManageDomains 凭证域管理
Agent   节点
  Create、Configure、Delete 创建、修改、删除节点
Connect、Disconnect 连接、断开连接操作
 Job  任务
  Create、Configure、Delete、Read 创建、修改、删除、查看任务
  Discover 发现。当勾选后,无Read权限的用户访问任务URL时,将被提示重新登录。若为不勾选,则会出现404.
  Build、Cancel 启动一个构建、中断正在运行的构建
  Workspace 工作区的源代码访问权限
Run  构建
  Update、Delete 更新或删除一个构建
View  视图
  Create Configure、Delete、Read 创建、修改、删除、查看视图

表2.系统权限表

三、组织结构

按照组织结构和任务分工,可将用户分为开发(dev)、测试(qa)、配置管理(scm)、运维工程师(sa)、管理员(admin)等角色。

角色  职责
dev
  • 对关联项目具有只读权限,可进行编译工作和发布至测试环境工作。
  • 不可发布准生产(UAT)环境、生产(Prod)环境
qa
  • 具有dev的所有权限
  • 发布代码至UAT、PROD环境
  • 对已发布版本标记Tag功能。
scm
  •  建立项目、配置Jenkins项目权限
  • 不受限于项目配置分配
  • 由于Jenkins项目需要,scm也一般也具备dev的编译和发布至测试环境工作
sa
  • 具有认证帐号的管理权限,如svn的帐号密码,git的访问私钥、ssh密钥等
  • 无项目管理权限
admin
  • 具有全部功能权限
  • 用户管理、项目组管理及用户权限分配
  • 用于其他系统排错及异常处理工作
  • 一般不使用admin账户进行日常发布工作

表3:Jenkins用户角色职责表

 

注: Role Strategy Plugin: https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注