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

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

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

通過本篇你可以學習到如下內容:

  • RBAC 的基礎知識。
  • Jenkins 的角色權限插件的使用。
  • 實戰:通過角色來管理用戶的部署權限。

一、RBAC

Jenkins 對權限的支持是比較弱的,存在以下不足:

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

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

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

如下圖所示,三個用戶對應了三種角色,每個角色關聯了不同的部署任務,通過這種關聯方式間接賦予了用戶權限。

圖片圖片

二、角色權限插件

目前發現這個角色權限插件是比較好用的,推薦給大家使用。

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

角色權限策略插件角色權限策略插件

三、選擇授權策略

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

對應的訪問路徑如下:

Dashboard->Manage Jenkins->Configure Global Security

當我們安裝好 Role-based Authorization Strategy 插件后,就會出現一個 Role-Base Strategy 授權策略。

Jenkins 授權策略Jenkins 授權策略

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

四、創建演示用戶

為了更好的演示角色權限管理功能,我創建了 3 個用戶以及 4 個流水線任務。

創建用戶的路徑為:

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

我在 jenkins 后臺創建了幾個用戶:

  • 開發組長1:用戶名=passjava-master1
  • 測試組長1:用戶名=passjava-tester1
  • 項目經理1:用戶名=passjava-pm1

如下圖所示:

圖片圖片

五、創建演示任務

我創建了 4 個部署流水線任務,分別對應項目一和項目二的測試和生產環境。如下圖所示:

圖片圖片

項目一和項目二的測試和生產環境

然后還創建了兩個分組:正式環境分組和測試環境分組。

正式環境分組:demo-prod-env

  • 項目一正式環境:對應 passjava-prod-project1 任務
  • 項目二正式環境:對應 passjava-prod-project2 任務

測試環境分組:demo-test-env

  • 項目一測試環境:對應 passjava-test-project1 任務
  • 項目二測試環境:對應 passjava-test-project2 任務

分組的好處是可以歸類以及可以按組分配權限。

六、創建演示角色

6.1 創建角色的頁面路徑

創建角色的路徑如下圖所示:

圖片圖片

創建角色的頁面路徑

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

6.2 三種角色

這個插件可以創建三種角色:

  • Global roles:全局角色,例如管理員、作業創建者、匿名等,允許在全局基礎上設置總體、代理、任務、運行、查看和 SCM 權限。
  • Item roles:任務角色,允許在任務、分組上設置特定權限。
  • Agent roles:Agent 角色,本篇用不上。

6.3 全局角色

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

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

我創建了一個全局角色:passjava,如下圖所示。

創建全局角色 passjava創建全局角色 passjava

后續將上面創建的三個用戶加到這個 Global 角色中即可。

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

圖片圖片

6.4 任務角色

我創建了三種任務角色:

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

如下圖所示:

項目角色項目角色

下面解釋下上面的權限配置:

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

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

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

6.5 分配角色

創建好全局角色和任務角色,我們就可以將用戶加入到對應的任務角色中,用戶和角色是多對多的關系。比如用戶張三可以具有角色 A 和角色 B 的權限,角色 A 的權限也可以給用戶張三和李四。

6.5.1 分配全局角色

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

圖片圖片

6.5.2 分配項目角色

圖片圖片

  • 開發組長具有 passjava-master 權限,可以部署項目一和項目二的正式環境。開發組長登錄系統后看到的任務列表如下圖所示:

開發組長查看項目列表開發組長查看項目列表

  • 項目經理具有 passjava-pm 權限,可以查看項目一和項目二的測試和正式環境的部署情況。項目經理登錄系統后看到的任務列表如下圖所示:

圖片圖片

  • 測試組長具有 passjava-tester 權限,可以部署項目一和項目二的測試環境。測試組長登錄系統后看到的任務列表如下圖所示:

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

可以從上面的結果看出用戶、角色、權限分配完成,不同的用戶可以部署不同的環境。

七、總結

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

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

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

2020-11-10 09:17:03

Redis

2018-12-11 09:09:10

分布式數據庫事務

2010-09-26 09:26:20

2020-09-16 14:18:10

云原生容器微服務

2023-03-09 11:37:14

AI模型

2011-11-09 15:49:52

API

2020-03-11 08:19:27

JavaScript閉包開發

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架構

2016-01-08 10:03:07

硅谷通吃互聯網

2019-08-08 10:18:15

運維架構技術

2018-09-25 23:21:13

2022-09-09 08:41:43

Netty服務端驅動

2010-03-30 10:44:05

Nginx啟動

2024-12-04 13:52:30

2021-05-24 10:55:05

Netty單機并發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97视频久久 | 日本国产精品视频 | 亚洲国产高清免费 | 亚洲精品国产成人 | 视频在线观看亚洲 | 成人免费网站 | 久久精品久久久久久 | 三级在线视频 | 亚洲免费视频一区二区 | 亚洲精品一 | 国产片淫级awww | 美国黄色毛片 | 久久国产欧美日韩精品 | 欧产日产国产精品视频 | 国产一区二区小视频 | 激情网站在线 | 亚洲一区二区三区在线视频 | 亚洲视频在线一区 | 91免费在线 | 一区二区三区视频在线 | 国产成人精品一区二区三 | 一区二区三区四区在线免费观看 | 色免费在线视频 | 国产精品揄拍一区二区久久国内亚洲精 | 日本欧美国产在线 | 女生羞羞视频 | 日本免费视频 | 在线观看视频一区 | 日本亚洲欧美 | 日韩一区二区免费视频 | 性高朝久久久久久久3小时 av一区二区三区四区 | 中文字幕男人的天堂 | 精品一区免费 | h片在线免费看 | 亚洲欧洲成人av每日更新 | 欧美成人二区 | 中文字幕一区在线 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 91精品国产欧美一区二区成人 | 成人av影院 | 亚洲成人在线免费 |