jenkins--為普通使用者授予指定job許可權

追梦boyaaa發表於2024-09-30

安裝Role-based Authorization Strategy 外掛

我們採用RBAC 基於角色的方式進行授權,需要在jenkins上安裝外掛,在Jenkins的Manage Jenkins→Plugins→Available Plugins 中安裝

jenkins--為普通使用者授予指定job許可權

之後在Jenkins的Manage Jenkins→Security 中開啟基於角色的許可權策略。

jenkins--為普通使用者授予指定job許可權

然後在jenkins的配置欄裡就能看到多出來的角色許可權配置了。

jenkins--為普通使用者授予指定job許可權
Pasted image 20231023141759.png

配置角色

緊接著,我們可以配置相關的角色並且為角色分配對應模組的許可權。角色分為3種型別,Global roles,Item roles(專案角色),Agent roles(和節點操作許可權相關的角色),其中Global roles擁有最高的許可權,如果為它分配job的讀寫許可權,那麼使用者如果繫結了這個角色,將會允許讀取所有的job,不管使用者是不是擁有的專案角色的許可權。

!! 溫馨提示: job 和item在jenkins中的概念,都可以看成是jenkins的建立的編譯部署專案。

如下圖所示,擁有一個admin角色,擁有jenkins的所有許可權,我們還建立了一個dev角色,擁有對jenkins介面的讀許可權(可能說法不太準確,但事實是如果普通角色的使用者沒有overall的讀許可權,那麼他進去jenkins後將什麼也不不能看,並且提示其許可權不足)

jenkins--為普通使用者授予指定job許可權
Pasted image 20231023174442.png

接著,我們再分配兩個針對具體構建專案的角色,develop和prodev,如下圖所示,分別是針對測試環境和正式環境的專案建立的角色,其中,pattern能夠用正規表示式匹配具體構建的專案名。對job的許可權勾選了build,cancel,read,所以這兩個角色都能夠對他們看到的具體專案擁有構建,取消構建和讀許可權。

jenkins--為普通使用者授予指定job許可權
Pasted image 20231024174828.png

分配角色

接著,我們再把配置好的角色分配給具體的使用者,如下圖所示,使用者同時擁有dev,develop和prodev3個角色。

jenkins--為普通使用者授予指定job許可權

之後,用該使用者登入jenkins可以看到正確的專案構建頁面,同時擁有生產環境和測試環境的構建許可權。效果如下,

jenkins--為普通使用者授予指定job許可權

這裡我是對使用者同時分配了對正式環境和測試環境有構建許可權的角色給一個使用者,真實開發中,可以對少部分人開啟這個權利,畢竟知道正式環境配置的人越少,系統越安全。

相關文章