采访过很多实用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. jquery对radio的操作汇总

    1.JQuery控制radio选中和不选中 通过name $("input:radio[name="analyfsftype"]").eq(0).attr(&q ...

  2. simotion读写CF卡,保存/读取变量

    simotion读写CF卡功能 1 使用西门子的Simotion运动控制器时,有时需要用到 读/写 CF卡的功能.主要来自以下几个方面的需求. 1)用户数据量较大,可保持(retain)存储区的容量不 ...

  3. 从windows CMD 命令行(CMD promp)运行Docker

    英文原帖 Running Docker from Windows CMD prompt https://medium.com/@neil.avery_68603/running-docker-from ...

  4. 修改hosts工具推荐SwitchHosts

    推荐一个修改hosts的工具.适合平时工作中经常修改hosts的开发测试. 下载地址:https://oldj.github.io/SwitchHosts/ 可以按各种环境或者项目添加,用的时候打开或 ...

  5. Java中调用MatLab返回值

    当在Java中使用MatLab函数时,由于语言语法的不同,Matlab返回多个数据时,想在Java中获取到并进行使用.查阅了网上资料,翻箱倒柜加上自己实战,得出方法如下: 如MatLab函数返回的是N ...

  6. leetcode_No.1 Two Sum

    原题: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...

  7. zen-Coding在Notepad++中的使用

    zen-Coding是一款快速编写HTML,CSS(或其他格式化语言)代码的编辑器插件,这个插件可以用缩写方式完成大量重复的编码工作,是web前端从业者的利器. zen-Coding插件支持多种编辑器 ...

  8. java并发多线程(摘自网络)

    1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和 ...

  9. wm_concat()函数

    工作中遇到这样一个问题,一张数据库表中有一个字段file_id,还有一个主键f_id(唯一),而file_id不唯一,我想把file_id=‘123456789’的记录中的f_id(主键)连接成一个字 ...

  10. fastjson 应用

    fastjson优势就是解析快,用法和json-lib.jar差不多(如下图) 贴心的附上jar和反编译工具:https://pan.baidu.com/s/1iADAiFyoUZVBAFSPsIeY ...