采访过很多实用Jenkins的同学,发现Jenkins的安全是一个很薄弱的地方。很多公司用作生产部署的Jenkins安全管理都不是很规范,就更别提测试用的Jenkins了。
其实Jenkins是一个很敏感的地方。由于需要方便CI,Jenkins本身会得到很多权限,比如某些机器的SSH登录权限,源码库访问权限,它的构建空间也会保存很多信息。
如果持有恶意的人得到了Jenkins的访问权限它可以干很多非法勾当,举几个触目惊心的例子:

  1. 跑到工作项目窃取源码。
  2. 修改源码,build,上线,这样可以拿到服务器端几乎所有权限。只要想,拖库,修改后台数据, rm -rf 基本上都可以做到。
  3. 污染客户端,比如在客户端上种个木马,窃取手机数据,把客户端当肉鸡。。。

安全无小事,Jenkins的安全还是要上心的。
作为维护者,最基本的事情就是阅读Jenkins的安全文档,虽然这份文档很简单,做好远不止这些,但是考虑里边的风险并作出防护算是最基本的要求。
https://wiki.jenkins-ci.org/display/JENKINS/Securing+Jenkins

这篇文章会介绍最基础的地方,就是用户权限管理。Jenkins本身提供三种权限管理

1.内建的用户管理。这是最简单的一种方式。在确认维护jenkins的人不多,且权限分配不复杂的时候,可以使用这种方法。

2.使用 Active Directory (主要在Windows下) ,这样可以继承windows网络的管理权限。

3.LDAP方式。如果部署在linux上,使用LDAP方式是一种省事的方法。权限本质上是一个矩阵,LDAP提供的机制足够用了。同时,使用LDAP,会省去创建很多账号的麻烦,使用者也省去了维护多个账号的麻烦。如果有上下游产品(比如Jira)也使用LDAP,则可以系统管理员统一来管理这些账号(一般可以委托给运维人员管理一部分权限),从总体上效率会提高很多。

配置的方法,下面文档写的非常详细,就不细讲了。
https://wiki.jenkins-ci.org/display/JENKINS/Standard+Security+Setup

配置后,有一个很重要的事情就是,分配权限。jenkins提供了还算是比较细的权限矩阵,可以根据需要配置。 一个需要注意的就是,权限尽量遵从最小权限原则。安全是多层的概念,每一层多一些保护,受到攻击的概率就会降低一些。

参考文章:
https://zh.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E6%9D%83%E9%99%90%E5%8E%9F%E5%88%99

https://wiki.jenkins-ci.org/display/JENKINS/LDAP+Plugin#LDAPPlugin-Configuration

Jenkins拾遗--第三篇(用户权限管理)的更多相关文章

  1. 从零开始配置Jenkins(三)——用户权限管理

    背景 最近项目管理中需要对jenkins的权限进行区分和限定,就研究了一下下.顺道把用户和权限这块的内容分享给大家. 用户 要想创建用户,需要先设定允许用户注册. 在系统设置,Configure Gl ...

  2. Django基础篇--用户权限管理和组管理

    Django作为一个成熟的python后台开发框架,为开发者提供了很多内置的功能,开发者只需要做一些配置就可以完成原生操作中比较复杂的代码编写.这些内置功能中其中一个比较强大的功能就是后台用户管理类. ...

  3. [原]Jenkins(十三)---jenkins用户权限管理

    * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5337874.html 两种策略的比较

  4. Jenkins用户权限管理-Role-based Authorization Strategy插件

    02-Jenkins用户权限管理-Role-based Authorization Strategy插件 在jenkins的使用过程中,需要给用户分配只管理特定项目的权限来保证项目相关人员只能管理对应 ...

  5. 有手就行2——持续集成环境—Jenkins安装、插件、用户权限及凭证管理

    有手就行2--持续集成环境-Jenkins安装.插件.权限及凭证管理 持续集成环境(1)-Jenkins安装 持续集成环境(2)-Jenkins插件管理 持续集成环境(3)-Jenkins用户权限管理 ...

  6. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  7. Oracle SQL 基本操作之 用户权限管理方法

     Oracle SQL 基本操作之 用户权限管理方法 最近把有关用户操作和权限管理的东西整理了一下,虽然不少博客都有过类似的整理,但是自己发现他们的内容或多或少都有些错误.于是,本人亲自对每条语句进行 ...

  8. jenkins配置基于角色的项目权限管理设置步骤

    jenkins配置基于角色的项目权限管理设置步骤 本文链接:https://blog.csdn.net/russ44/article/details/52276222 由于jenkins默认的权限管理 ...

  9. Oracle 表空间和用户权限管理

    一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...

随机推荐

  1. ES6相关特性(let & const)

    [ecma-262/8.0]http://www.ecma-international.org/ecma-262/8.0/index.html 1.Let & const let 的三个特性: ...

  2. 浏览器中使用calc不识别

    在使用css3中的calc运算函数时,发现浏览器不识别,当时代码是这样的 width:calc(100%-50px); 经过查询官网原来发现这里有个需要注意的地方就是在进行加减运算的时候,必须在运算符 ...

  3. 如何将位置值写入simotion encoder?

    目标: 将变量值(任意实数)写入Encoder,作为encoder的实际位置值.例如,将MP177手轮的值写入编码器,达到SMC30配置手轮的功能. Platform: simotion D435-2 ...

  4. 从HTTP响应头判断是否命中CDN

    腾讯云: X-Cache-Lookup:Hit From MemCache 表示命中CDN节点的内存X-Cache-Lookup:Hit From Disktank 表示命中CDN节点的磁盘X-Cac ...

  5. 实现pdf word在线浏览和下载

    这篇实现的是在线展示pdf和word并且不能显示下载和打印按钮 一 下载功能: 因为html5给a标签新添加了一个属性download,这个属性可以直接实现下载文件的功能:<a href=&qu ...

  6. github设置添加SSH(转载自:破男孩)

    注:本文来源于 破男孩 博客(http://www.cnblogs.com/ayseeing/p/3572582.html)能切实解决问题. 很多朋友在用github管理项目的时候,都是直接使用htt ...

  7. 【BZOJ5212】[ZJOI2018] 历史(LCT大黑题)

    点此看题面 大致题意: 给定一棵树每个节点\(Access\)的次数,求最大虚实链切换次数,带修改. 什么是\(Access\)? 推荐你先去学一学\(LCT\)吧. 初始化(不带修改的做法) 首先考 ...

  8. CUDA内存拷贝

    原文链接1.cudaMemcpy()<--> cudaMalloc()  //线性内存拷贝 1 //线性内存拷贝 2 cudaMalloc((void**)&dev_A, data ...

  9. 【Java-POJO-设计模式】JavaEE中的POJO与设计模式中多态继承的冲突

    最近看<重构>谈到利用OO的多态来优化 if else 和 switch 分支语句,但是我发现OO语法中的多态在使用框架的JavaEE中是无法实践的.对此,我感到十分的疑惑,加之之前项目中 ...

  10. babel 不能统编译Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise的问题

    Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator.Generator.Set.Maps.Proxy.Reflect.Symbol.Promis ...