成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如果你還不理解 RBAC,看看 Jenkins 如何做到的

開發(fā) 前端
通過本篇的學習,我們了解了 RBAC 以及角色權(quán)限插件的使用。通過實戰(zhàn)掌握了如何配置不同用戶具有不同角色,不同角色具有不同任務(wù)的權(quán)限,從而可以更安全地管理用戶的部署權(quán)限。

通過本篇你可以學習到如下內(nèi)容:

  • RBAC 的基礎(chǔ)知識。
  • Jenkins 的角色權(quán)限插件的使用。
  • 實戰(zhàn):通過角色來管理用戶的部署權(quán)限。

一、RBAC

Jenkins 對權(quán)限的支持是比較弱的,存在以下不足:

  • 有多個流水線任務(wù),期望不同用戶能看到的任務(wù)不一樣。
  • 一個項目有多套環(huán)境,期望用戶只能部署某些環(huán)境。
  • 有的項目只讓用戶有查看權(quán)限,期望不給部署權(quán)限。

針對上面的不足,Jenkins 可以通過 RBAC 插件的方式來實現(xiàn)對權(quán)限的管控。RBAC 是常見的權(quán)限控制方案。

RBAC(Role-Based Access Control):基于角色的權(quán)限控制。通過角色關(guān)聯(lián)用戶,角色關(guān)聯(lián)權(quán)限的方式間接賦予用戶權(quán)限。

如下圖所示,三個用戶對應(yīng)了三種角色,每個角色關(guān)聯(lián)了不同的部署任務(wù),通過這種關(guān)聯(lián)方式間接賦予了用戶權(quán)限。

圖片圖片

二、角色權(quán)限插件

目前發(fā)現(xiàn)這個角色權(quán)限插件是比較好用的,推薦給大家使用。

插件名:Role-based Authorization Strategy。可以到插件管理那里進行安裝,如下圖所示:

角色權(quán)限策略插件角色權(quán)限策略插件

三、選擇授權(quán)策略

Jenkins 自帶了多種授權(quán)策略,如下圖所示,在全局安全設(shè)置中可以選擇授權(quán)策略。

對應(yīng)的訪問路徑如下:

Dashboard->Manage Jenkins->Configure Global Security

當我們安裝好 Role-based Authorization Strategy 插件后,就會出現(xiàn)一個 Role-Base Strategy 授權(quán)策略。

Jenkins 授權(quán)策略Jenkins 授權(quán)策略

下面開始演示如何基于這個授權(quán)策略來分配多個流水線的部署權(quán)限。

四、創(chuàng)建演示用戶

為了更好的演示角色權(quán)限管理功能,我創(chuàng)建了 3 個用戶以及 4 個流水線任務(wù)。

創(chuàng)建用戶的路徑為:

http://<你的jenkins地址>:8080/securityRealm/

我在 jenkins 后臺創(chuàng)建了幾個用戶:

  • 開發(fā)組長1:用戶名=passjava-master1
  • 測試組長1:用戶名=passjava-tester1
  • 項目經(jīng)理1:用戶名=passjava-pm1

如下圖所示:

圖片圖片

五、創(chuàng)建演示任務(wù)

我創(chuàng)建了 4 個部署流水線任務(wù),分別對應(yīng)項目一和項目二的測試和生產(chǎn)環(huán)境。如下圖所示:

圖片圖片

項目一和項目二的測試和生產(chǎn)環(huán)境

然后還創(chuàng)建了兩個分組:正式環(huán)境分組和測試環(huán)境分組。

正式環(huán)境分組:demo-prod-env

  • 項目一正式環(huán)境:對應(yīng) passjava-prod-project1 任務(wù)
  • 項目二正式環(huán)境:對應(yīng) passjava-prod-project2 任務(wù)

測試環(huán)境分組:demo-test-env

  • 項目一測試環(huán)境:對應(yīng) passjava-test-project1 任務(wù)
  • 項目二測試環(huán)境:對應(yīng) passjava-test-project2 任務(wù)

分組的好處是可以歸類以及可以按組分配權(quán)限。

六、創(chuàng)建演示角色

6.1 創(chuàng)建角色的頁面路徑

創(chuàng)建角色的路徑如下圖所示:

圖片圖片

創(chuàng)建角色的頁面路徑

頁面地址:
http://<你的jenkins服務(wù)ip>:8080/manage/role-strategy/
訪問路徑:
Dashboard->Manage Jenkins->Manage and Assign Roles->Manage Roles

6.2 三種角色

這個插件可以創(chuàng)建三種角色:

  • Global roles:全局角色,例如管理員、作業(yè)創(chuàng)建者、匿名等,允許在全局基礎(chǔ)上設(shè)置總體、代理、任務(wù)、運行、查看和 SCM 權(quán)限。
  • Item roles:任務(wù)角色,允許在任務(wù)、分組上設(shè)置特定權(quán)限。
  • Agent roles:Agent 角色,本篇用不上。

6.3 全局角色

全局角色適用于 Jenkins 中的任何任務(wù),并覆蓋你在任務(wù)角色中指定的任何內(nèi)容。也就是說,當你在全局角色中授予角色權(quán)限 Job/Read,無論你在任務(wù)角色中指定什么,都允許該角色讀取所有任務(wù)。

所以為了分配不同任務(wù)權(quán)限給不同角色,這里對于全局角色勾選一個 Overall Read 權(quán)限即可。如下圖所示:

我創(chuàng)建了一個全局角色:passjava,如下圖所示。

創(chuàng)建全局角色 passjava創(chuàng)建全局角色 passjava

后續(xù)將上面創(chuàng)建的三個用戶加到這個 Global 角色中即可。

注意:如果這三個用戶不加入到 passjava 角色中的話,后續(xù)這三個用戶登錄會提示報錯,如下圖所示:

圖片圖片

6.4 任務(wù)角色

我創(chuàng)建了三種任務(wù)角色:

  • passjava-master:具有部署項目一和項目二的正式環(huán)境的權(quán)限。
  • passjava-tester:具有部署項目一的和項目二的測試環(huán)境的權(quán)限。
  • passjava-pm:具有查看項目一和項目二的正式環(huán)境和測試環(huán)境的權(quán)限,沒有部署權(quán)限。

如下圖所示:

項目角色項目角色

下面解釋下上面的權(quán)限配置:

  • Role:代表角色名稱
  • Pattern:代表正則表達式。例如,如果將該字段設(shè)置為 passjava-prod.*,則該角色將匹配名稱以 passjava-prod 開頭的所有任務(wù),更多匹配規(guī)則可到該插件的官網(wǎng)上查看。點擊藍色的 passjava-prod.*,則能看到匹配成功的任務(wù):passjava-prod-project1任務(wù) 和 passjava-prod-project2任務(wù),如下圖所示:

正則表達式匹配成功 項目正則表達式匹配成功 項目

  • Job:任務(wù)的權(quán)限,我們勾選 Build(部署),Cancel(取消部署),Read(查看任務(wù))即可。

6.5 分配角色

創(chuàng)建好全局角色和任務(wù)角色,我們就可以將用戶加入到對應(yīng)的任務(wù)角色中,用戶和角色是多對多的關(guān)系。比如用戶張三可以具有角色 A 和角色 B 的權(quán)限,角色 A 的權(quán)限也可以給用戶張三和李四。

6.5.1 分配全局角色

通過 Assign Roles 功能將三個用戶都加入到 passjava 角色中。

圖片圖片

6.5.2 分配項目角色

圖片圖片

  • 開發(fā)組長具有 passjava-master 權(quán)限,可以部署項目一和項目二的正式環(huán)境。開發(fā)組長登錄系統(tǒng)后看到的任務(wù)列表如下圖所示:

開發(fā)組長查看項目列表開發(fā)組長查看項目列表

  • 項目經(jīng)理具有 passjava-pm 權(quán)限,可以查看項目一和項目二的測試和正式環(huán)境的部署情況。項目經(jīng)理登錄系統(tǒng)后看到的任務(wù)列表如下圖所示:

圖片圖片

  • 測試組長具有 passjava-tester 權(quán)限,可以部署項目一和項目二的測試環(huán)境。測試組長登錄系統(tǒng)后看到的任務(wù)列表如下圖所示:

而是組長查看項目列表而是組長查看項目列表

可以從上面的結(jié)果看出用戶、角色、權(quán)限分配完成,不同的用戶可以部署不同的環(huán)境。

七、總結(jié)

通過本篇的學習,我們了解了 RBAC 以及角色權(quán)限插件的使用。通過實戰(zhàn)掌握了如何配置不同用戶具有不同角色,不同角色具有不同任務(wù)的權(quán)限,從而可以更安全地管理用戶的部署權(quán)限。

回到最開始提到的 Jenkins 的不足之處我們來看看解決方案是怎么樣的:

  • 有多個流水線任務(wù),期望不同用戶能看到的任務(wù)不一樣,解決方案是可以給不同角色分配不同的任務(wù),不同用戶賦予不同角色。如實戰(zhàn)中的開發(fā)組長和測試組長看到的任務(wù)不一樣。
  • 一個項目有多套環(huán)境,期望用戶只能部署某些環(huán)境,解決方案是對多套環(huán)境創(chuàng)建對應(yīng)的多個任務(wù),多個角色擁有對應(yīng)環(huán)境的任務(wù),并對用戶賦予對應(yīng)環(huán)境的角色。如實戰(zhàn)中開發(fā)組長只能看到正式環(huán)境的任務(wù)。
  • 有的項目只讓用戶有查看權(quán)限,期望不給部署權(quán)限,解決方案是添加一個只能查看對應(yīng)項目的任務(wù)的角色,并給用戶賦予這個角色,如實戰(zhàn)中項目經(jīng)理1只有查看權(quán)限,沒有部署權(quán)限。
責任編輯:武曉燕 來源: 悟空聊架構(gòu)
相關(guān)推薦

2020-11-10 09:17:03

Redis

2018-12-11 09:09:10

分布式數(shù)據(jù)庫事務(wù)

2010-09-26 09:26:20

2020-09-16 14:18:10

云原生容器微服務(wù)

2023-03-09 11:37:14

AI模型

2011-11-09 15:49:52

API

2020-03-11 08:19:27

JavaScript閉包開發(fā)

2018-05-24 10:04:16

Zookeeper異地原理

2022-01-24 11:36:52

周鴻祎中年危機程序員

2019-07-19 20:33:38

人工智能AI無人駕駛

2011-06-22 09:45:46

JavaScriptAPI

2009-11-20 11:37:11

Oracle完全卸載

2023-11-30 10:13:17

TensorRT架構(gòu)

2019-08-08 10:18:15

運維架構(gòu)技術(shù)

2016-01-08 10:03:07

硅谷通吃互聯(lián)網(wǎng)

2018-09-25 23:21:13

2010-03-30 10:44:05

Nginx啟動

2024-12-04 13:52:30

2021-05-24 10:55:05

Netty單機并發(fā)

2022-09-09 08:41:43

Netty服務(wù)端驅(qū)動
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: www.日韩欧美 | 日韩一区三区 | 亚洲精品在线看 | 亚洲高清一区二区三区 | 91青青草视频 | 在线免费观看毛片 | 欧美精品一区三区 | 亚洲午夜精品久久久久久app | 91亚洲国产精品 | 欧美黄色片在线观看 | 亚洲一区视频在线 | 免费同性女女aaa免费网站 | 中文字幕成人av | 国产丝袜一区二区三区免费视频 | 亚洲视频免费播放 | 久久99这里只有精品 | 亚洲九九 | 在线观看视频91 | 黄色网址av | 久久国产精品精品国产色婷婷 | 男女爱爱网站 | 三级视频在线观看电影 | 精品一二三 | 精品96久久久久久中文字幕无 | 天天操夜夜操 | 一级大片 | 视频1区| 欧美激情一区二区三级高清视频 | 日韩不卡视频在线观看 | 欧美一区二区三区在线观看视频 | 亚洲精品女优 | 国产精品久久久久久久免费观看 | 99精品视频在线观看 | 中文二区 | 久久久久久久久淑女av国产精品 | 成人av免费 | 国产高清在线精品一区二区三区 | 男女激情网 | www.日韩| 亚洲女人天堂成人av在线 | 午夜成人在线视频 |