zoukankan      html  css  js  c++  java
  • Jenkins拾遗--第三篇(用户权限管理)

    采访过很多实用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/最小权限原则

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

  • 相关阅读:
    使用数据(二)
    lambda表达式
    方法引用::
    开发 Web 应用(一)
    Spring基础(三)
    Spring基础(二)
    Spring 基础(一)
    项目实践之Ajax 技术使用教程
    项目实践之前后端分离详解
    考研计算机基础:构造算法与自上而下逐步完善:实例研究3(嵌套控制结构)
  • 原文地址:https://www.cnblogs.com/skytraveler/p/6387670.html
Copyright © 2011-2022 走看看