采访过很多实用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. 一起来看看IOS内存泄漏的一个问题

    很多iOS开发的朋友都是比较关心内存泄漏的问题,在实际的开发工作中首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复.最简单的方法当然是借助于专业的检测工具,比 ...

  2. 详细讲解:通过composer安装TP5.1(Thinkphp5.1)

    现在TP5越来越火了,TP5也更新到了5.1版本,但是5.1以上版本只能通过composer来进行安装,那么这里贴出详细的步骤 前提:PHP版本必须要5.6以上 参考网址:http://www.thi ...

  3. C#调用C++的dll存在的问题

    C#调用C++写的DLL时,在C#程序中,使用DllImport定义C++导出函数的定义信息,之前在C++中定义导出函数时,使用了long作为参数类型,使用C#调用时,开始在64位版本是哪个测试,一切 ...

  4. SAP Netweaver和Hybris的数据库层

    ABAP Netweaver 在SAP基于Netweaver的ABAP应用里,应用开发人员用Open SQL访问数据库, 这些Open SQL会被Database interface(数据库接口)转换 ...

  5. maven项目右键快捷方式,然后点击Run As

    在某一个maven项目右键快捷方式,然后点击Run As就可以发现几个Maven的命令: 1.Maven Build: 这个命令用于编译Maven工程,执行命令后会在target文件夹中的classe ...

  6. 在Centos上面用yum不能安装redis的朋友看过来

    我得是centos 6.3,如果直接用yum安装redis,报错,如下:[root@CentOS6 etc]# yum install redisLoaded plugins: fastestmirr ...

  7. 前端jQuery基本语法

    1.概念 1.1基础知识 jQuery是一个兼容多浏览器的JavaScript库,封装了开发过程中常用的一些功能,类似Python模块 jQuery就是用JS写的,JS是基础 jQuery写起来简单, ...

  8. IOS开发中缓存策略

    为了节约流量,同时也是为了更好的用户体验,目前很多应用都使用本地缓存机制,其中以网易新闻的缓存功能最为出色.我自己的应用也想加入本地缓存的功能,于是我从网上查阅了相关的资料,发现总体上说有两种方法.一 ...

  9. iOS App 瘦身方案

    缩减iOS安装包大小是很多中大型APP都要做的事,一般首先会对资源文件下手,压缩图片/音频,去除不必要的资源.这些资源优化做完后,我们还可以尝试对可执行文件进行瘦身,项目越大,可执行文件占用的体积越大 ...

  10. 洛谷P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

    题目背景 提示:原 P1829 半数集问题 已经迁移至 P1028 数的计算 题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a ...