Jenkins拾遺--第三篇(用戶權限管理)

採訪過不少實用Jenkins的同窗,發現Jenkins的安全是一個很薄弱的地方。不少公司用做生產部署的Jenkins安全管理都不是很規範,就更別提測試用的Jenkins了。
其實Jenkins是一個很敏感的地方。因爲須要方便CI,Jenkins自己會獲得不少權限,好比某些機器的SSH登陸權限,源碼庫訪問權限,它的構建空間也會保存不少信息。
若是持有惡意的人獲得了Jenkins的訪問權限它能夠幹不少非法勾當,舉幾個觸目驚心的例子:linux

  1. 跑到工做項目竊取源碼。
  2. 修改源碼,build,上線,這樣能夠拿到服務器端幾乎全部權限。只要想,拖庫,修改後臺數據, rm -rf 基本上均可以作到。
  3. 污染客戶端,好比在客戶端上種個木馬,竊取手機數據,把客戶端當肉雞。。。

安全無小事,Jenkins的安全仍是要上心的。
做爲維護者,最基本的事情就是閱讀Jenkins的安全文檔,雖然這份文檔很簡單,作好遠不止這些,可是考慮裏邊的風險並做出防禦算是最基本的要求。
https://wiki.jenkins-ci.org/display/JENKINS/Securing+Jenkinswindows

這篇文章會介紹最基礎的地方,就是用戶權限管理。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運維

相關文章
相關標籤/搜索