精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Webhook為Kubernetes實現(xiàn)基于標簽的權(quán)限控制

云計算
Kubernetes支持名稱空間級別的權(quán)限控制。但是,有時這不能滿足我們的要求。例如,在Akraino ICN項目中,我們有一些高級權(quán)限要求:多個用戶可以在同一名稱空間中創(chuàng)建,更新或刪除一種資源,但不能更新或刪除其他人創(chuàng)建的對象。

[[387807]]

Kubernetes支持名稱空間級別的權(quán)限控制。但是,有時這不能滿足我們的要求。例如,在Akraino ICN項目中,我們有一些高級權(quán)限要求:多個用戶可以在同一名稱空間中創(chuàng)建,更新或刪除一種資源,但不能更新或刪除其他人創(chuàng)建的對象。

為了滿足這一要求,我們使用Webhook在Kubernetes中設(shè)計并實現(xiàn)了基于標簽的權(quán)限控制機制。通常,webhooks用于驗證資源或設(shè)置資源的默認值。在本文中,我們使用webhook來控制權(quán)限。

許可系統(tǒng)的設(shè)計

在Kubernetes中,用戶或服務(wù)帳戶可以綁定到一個或多個角色。每個角色定義其權(quán)限規(guī)則。例如,以下定義要求sdewan-test角色可以在默認名稱空間中創(chuàng)建或更新類型為Mwan3Rule的自定義資源實例(CR),并且可以獲取Mwan3Policy CR。

  1. apiVersion: rbac.authorization.k8s.io/v1 
  2. kind: Role 
  3. metadata: 
  4.   Annotations: 
  5.   name: sdewan-test 
  6.   namespace: default 
  7. rules: 
  8. - apiGroups: 
  9.   - "" 
  10.   resources: 
  11.   - mwan3rules 
  12.   verbs: 
  13.   - create 
  14.   - update 
  15. - apiGroups: 
  16.   - "" 
  17.   resources: 
  18.   - mwan3policies 
  19.   verbs: 
  20.   - get 

我們使用json格式的注釋sdewan-bucket-type-permission擴展了角色。

在注釋中,我們可以定義基于標簽的權(quán)限。例如,下面顯示的角色擴展了sdewan-test角色權(quán)限:sdewan-test只能創(chuàng)建/更新帶有標簽sdewan-bucket-type=app-intent或sdewan-bucket-type=k8s-service的Mwan3Rule(json鍵指定自定義資源類型)CR。而且它只能獲得帶有標簽sdewan-bucket-type=app-intent的Mwan3Policy CR。

實際上,我們也支持通配符匹配。例如,我們可以使用mwan3*來同時匹配mwan3policies和mwan3rules。

  1. apiVersion: rbac.authorization.k8s.io/v1 
  2. kind: Role 
  3. metadata: 
  4. annotations: 
  5.   sdewan-bucket-type-permission: |- 
  6.     { "mwan3rules": ["app-intent""k8s-service"], 
  7.     "mwan3policies": ["app-intent"] } 
  8. name: sdewan-test 
  9. namespace: default 
  10. rules: 
  11. - apiGroups: 
  12. "" 
  13. resources: 
  14. - mwan3rules 
  15. verbs: 
  16. create 
  17. update 
  18. - apiGroups: 
  19. "" 
  20. resources: 
  21. - mwan3policies 
  22. verbs: 
  23. - get 

Kubernetes Webhook負責解析角色注釋。讓我用簡單的詞來描述什么是準入webhook。我們可以將webhook視為Web服務(wù),通常它在Kubernetes集群中作為pod運行。

當Kubernetes api收到請求時,kube-api可以在將對象保存到etcd中之前調(diào)用webhook API。如果webhook返回allowed=true,則kube-api繼續(xù)將對象持久保存到etcd中。否則,kube-api拒絕該請求。

Webhook請求主體具有一個名為userInfo的字段,該字段指示誰在發(fā)出Kubernetes api請求。從用戶信息中,webhook可以獲取角色信息,然后獲取角色注釋。通過將注釋中描述的標簽級別權(quán)限與CR標簽進行比較,webhook可以決定是否允許該請求。

實施權(quán)限控制系統(tǒng)

我們已經(jīng)通過Akraino ICN項目中的kubebuilder框架實現(xiàn)了基于標簽的權(quán)限系統(tǒng)。這里的假設(shè)是已經(jīng)實現(xiàn)了一些自定義資源定義(CRD)(例如Mwan3Policy和Mwan3Rule)和相應(yīng)的控制器。

Kubebuilder可以生成基本的CRD,控制器代碼和Webhook代碼。要創(chuàng)建一個新的webhook,我們運行以下kubebuilder命令:

  1. kubebuilder create webhook --group batch --version v1 --kind CronJob --programmatic-validation 

此命令利用controller-runtime builder來創(chuàng)建驗證Webhook。該命令還會創(chuàng)建webhook server,該server接受來自kube-api服務(wù)器的https請求。它甚至生成解析http請求正文并將其轉(zhuǎn)換為CRD結(jié)構(gòu)實例的代碼。

開發(fā)人員只需要編寫代碼來驗證CRD實例內(nèi)容。這對于大多數(shù)Webhook情況都是有用的。但這不能滿足我們的要求,因為我們需要位于https請求正文中的UserInfo而不是CRD實例。

我們重用了kubebuilder生成的webhook server,但自己實現(xiàn)了處理程序。上圖顯示了處理程序的處理流程。處理程序接受“ admission.Request”作為輸入,其中包含UserInfo。在處理程序中,我們獲得用戶角色信息和CR標簽。

  • 獲取用戶角色信息。

userinfo在請求正文中。為了從userinfo獲取角色信息,處理程序必須向kube-api請求用戶的角色信息。處理程序使用serviceaccount令牌作為身份驗證將請求發(fā)送到kube-api。首先,處理程序發(fā)送一個請求以獲取用戶的角色綁定信息。然后,它發(fā)送第二個請求以從角色綁定信息中獲取角色信息。默認情況下,角色綁定資源在“ .subjects”字段上沒有索引器,這意味著我們無法在kube-api請求中過濾角色綁定,除非我們?yōu)榻巧壎ㄌ砑右韵滤饕鳎?/p>

  1. err = mgr.GetFieldIndexer().IndexField(context.Background(), &rbacv1.RoleBinding{}, ".subjects", func(rawObj runtime.Object) []string { 
  2. var fieldValues []string 
  3. rolebinding := rawObj.(*rbacv1.RoleBinding) 
  4. for _, subject := range rolebinding.Subjects { 
  5.         if subject.Kind == "ServiceAccount" { 
  6.                 fieldValues = append(fieldValues, fmt.Sprintf("system:serviceaccount:%s:%s", subject.Namespace, subject.Name)) 
  7.         } else { 
  8.                 fieldValues = append(fieldValues, subject.Name
  9.         } 
  10. return fieldValues 
  • 獲取CR信息

來自用戶的請求可能是創(chuàng)建,更新或刪除資源。對于創(chuàng)建或更新請求,處理程序從請求正文中提取CR信息。對于刪除請求,處理程序只能獲取CR名稱,而不能獲取整個實例。因此需要調(diào)用kube-api來獲取CR信息

  • 考慮角色和ClusterRole

除了角色外,還可以在ClusterRole中定義用戶權(quán)限。區(qū)別在于,角色始終在單個名稱空間中定義權(quán)限,而ClusterRole可以在整個群集中定義權(quán)限。因此,我們還需要檢查ClusterRole中的注釋。解析角色信息時,我們只關(guān)心與CR具有相同名稱空間的角色。

測試與實驗

現(xiàn)在,我要介紹如何測試和試驗基于標簽的權(quán)限。在ICN中,此功能是通過kubebuilder與某些CRD/控制器一起開發(fā)的。Webhook支持https,但不支持http。因此,我們需要Webhook server的認證。

我們使用cert-manager插件來填充Webhook server的證書。同時,我們還將證書注入到webhook配置中,以便kube-api在發(fā)送webhook請求時可以使用證書。對于開發(fā)或本地測試用例,其中Webhook從本地而不是Pod運行,我們需要手動配置證書。

一旦建立了網(wǎng)絡(luò)連接,我們就可以為測試創(chuàng)建角色和角色綁定。讓我們創(chuàng)建以下角色并將其綁定到用戶。

  1. apiVersion: rbac.authorization.k8s.io/v1 
  2. kind: Role 
  3. metadata: 
  4. namespace: default 
  5. namecreate-intent 
  6. annotations: 
  7.   sdewan-bucket-type-permission: |- 
  8.     { "mwan3policies": ["app-intent"] } 
  9. rules: 
  10. - apiGroups: ["batch.sdewan.akraino.org"
  11. resources: ["mwan3policies"
  12. verbs: ["get""watch""list""delete""create"

允許用戶創(chuàng)建標簽為“sdewan-bucket-type:app-intent”的mwan3policies,但不能創(chuàng)建其他標簽。這里一個具體的例子是,用戶可以創(chuàng)建下面左邊的CR,而不是下面右邊的CR。

如果我們嘗試創(chuàng)建下面右邊的CR,則會收到錯誤消息“Error from server (Your roles don't have the permission): error when creating "config/samples/batch_v1alpha1_mwan3policy.yaml"。

結(jié)論

Webhook是kubernetes的一個很好的功能,它賦予kubernetes更大的靈活性。開發(fā)人員可以使用它來實現(xiàn)許多有用的功能。

Controller-runtime項目提供了builder工具,通過它我們可以輕松創(chuàng)建兩種類型的Webhook:驗證Webhook和Mutating Webhook。驗證Webhook用于驗證kube-api的資源,而Muting Webhook可以更新資源字段的值,例如設(shè)置默認值。

有時,這兩種類型的Webhook都不符合我們的要求。例如,在本文中,我們需要獲取不在資源正文中的userinfo。在這種情況下,我們需要自行開發(fā)大多數(shù)處理程序代碼,而不是使用builder工具。

參考鏈接:

Kubebuilder book: https://book.kubebuilder.io/introduction.html

Controller-runtime doc: https://github.com/kubernetes-sigs/controller-runtime/blob/master/pkg/doc.go

Akraino SDEWAN agent design: https://wiki.akraino.org/display/AK/Sdewan+config+Agent

Label based permission control patch: https://gerrit.akraino.org/r/c/icn/sdwan/+/3509

 

*本文部分內(nèi)容翻譯自https://01.org/kubernetes/blogs/chengli3/2020/implement-label-based-permission-control-kubernetes-using-webhook,如有侵權(quán)請聯(lián)系刪除

 

責任編輯:武曉燕 來源: 新鈦云服
相關(guān)推薦

2009-07-07 10:14:57

基于URL權(quán)限控制

2010-09-10 09:51:05

DIVCSS

2014-08-15 10:05:37

Angular權(quán)限控制

2023-11-27 13:41:00

Kubernete本地調(diào)試

2024-10-09 17:19:04

GoGolangKubernetes

2023-10-07 07:51:55

FluxCDKubernetes

2014-08-11 11:01:43

AngularJS

2011-03-03 15:02:22

proftpd權(quán)限

2011-03-03 11:13:11

Pureftpd

2025-08-07 03:00:00

2017-01-13 14:32:50

Azurewebhoo自動化AzureWebhook

2022-10-17 10:35:34

DevOpsCICD

2023-02-10 10:54:48

DevOpsCICD

2021-03-16 11:01:02

KubernetesCLI技術(shù)

2025-02-18 00:00:05

vue后端權(quán)限

2020-05-25 16:05:17

前端限控制設(shè)分離

2020-04-02 09:58:26

Kubernetes容器開發(fā)

2017-12-20 17:50:32

2024-02-18 12:44:22

2022-01-07 07:29:08

Rbac權(quán)限模型
點贊
收藏

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

国产一区二区三区美女| 九色porny丨入口在线| 免费成人在线观看视频| 视频在线观看99| 爆乳熟妇一区二区三区霸乳| 国产69久久| 精品一区二区三区免费| 中文精品99久久国产香蕉| 中文字幕欧美人妻精品一区| chinese偷拍一区二区三区| 精品一区中文字幕| 欧美激情日韩图片| 亚洲精品视频大全| 久久亚洲精品人成综合网| 亚洲乱码日产精品bd| 亚洲资源在线看| 日韩伦人妻无码| 亚洲+变态+欧美+另类+精品| 欧美探花视频资源| 蜜桃网站在线观看| 国产在线观看免费网站| 国产在线精品视频| 2019中文在线观看| 一级片黄色录像| 超碰成人免费| 欧洲av在线精品| 精品高清美女精品国产区| 国产精品电影观看| 国产美女久久久久久| 老牛精品亚洲成av人片| 91国偷自产一区二区开放时间| 中文字幕中文字幕在线中心一区| 黄色片一区二区三区| 日本亚洲欧美天堂免费| 欧美大片免费观看在线观看网站推荐| 一级性生活大片| 国产一区二区三区精品在线观看| 五月婷婷综合激情| 一本一本久久a久久精品综合妖精| 亚洲成人精品女人久久久| 日韩成人一区二区| 日韩亚洲综合在线| 免费在线观看你懂的| 中文字幕一区二区三区日韩精品| 色一情一伦一子一伦一区| 成人毛片100部免费看| 亚洲aaa在线观看| 国产成a人亚洲| 国产日韩欧美在线播放| 久久精品一二区| 黄色亚洲大片免费在线观看| xvideos成人免费中文版| 北京富婆泄欲对白| 三级欧美日韩| 884aa四虎影成人精品一区| 日本成年人网址| av噜噜在线观看| 色婷婷综合视频| 国产一区二区视频在线| 日韩av色综合| 日韩经典在线观看| 韩国欧美一区| 久久躁日日躁aaaaxxxx| 中文字幕色av一区二区三区| 久久久99久久| 国产二区不卡| 国产裸体无遮挡| 免费国产亚洲视频| 日本人成精品视频在线| 青青国产在线观看| 免费超碰在线| 国产精品国产三级国产aⅴ| 国产三级伦理片| 色综合狠狠操| 日韩中文字幕网址| 少妇一级黄色片| 在线中文字幕亚洲| 国内免费精品永久在线视频| 精品国产免费人成电影在线观...| 日韩 欧美 综合| 亚洲综合国产激情另类一区| 国产成+人+综合+亚洲欧洲 | 97精品国产| 久久综合电影一区| 国产污片在线观看| 老司机精品视频网站| 成人黄色影片在线| 人妻精品一区一区三区蜜桃91| 91免费观看国产| 亚洲成人网上| 久草成色在线| 欧美性生活影院| 69久久精品无码一区二区| 成人爽a毛片免费啪啪红桃视频| 日韩精品高清在线观看| 国产精品无码无卡无需播放器| 亚洲五月综合| 欧美日韩午夜在线| 久久男人的天堂| 五月婷婷亚洲综合| 久久成人av少妇免费| 成人在线一区二区| 人成免费电影一二三区在线观看| 国产精品日韩成人| 久久99中文字幕| 欧洲午夜精品| 亚洲精品99久久久久| 国产精品麻豆一区| 99国产精品视频免费观看一公开| 国产日韩欧美电影在线观看| 五月婷婷伊人网| 亚洲免费在线观看视频| 国产天堂在线播放| 成人性生交大片免费看96| 色小说视频一区| 久久午夜免费视频| 国产精品原创巨作av| 日韩高清三级| 国产盗摄——sm在线视频| 欧美精品一级二级三级| xxxxx在线观看| 在线免费高清一区二区三区| 91精品视频在线免费观看| 欧美高清成人| 欧美日韩国产丝袜另类| 亚洲三级在线视频| 久久久久久久久丰满| 国产福利视频一区二区| 天堂成人在线观看| 亚洲国产精品人人做人人爽| 91国内在线播放| 成人网18免费网站| 国产97在线亚洲| 天堂中文在线资| 欧美日韩国产一区二区三区| 999在线精品视频| 日韩在线观看| 国产精品视频一| 福利在线观看| 色婷婷综合久久久中文一区二区| 亚洲av成人无码一二三在线观看| 精品动漫3d一区二区三区免费| 91在线直播亚洲| 黄色在线观看网站| 正在播放亚洲一区| 国产精品 欧美激情| 国产成人精品一区二三区| 老司机亚洲精品| 美国av一区二区三区| 在线高清av| 精品视频久久久久久| 五月婷婷中文字幕| 久久久亚洲精品一区二区三区| 黄色片一级视频| 精品一区二区三区中文字幕老牛 | 五月激情久久| 国产一区二区三区日韩欧美| 国产精品欧美综合| 国产精品欧美极品| 激情久久综合网| 国产一区二区三区四区三区四| 国产精品v欧美精品v日韩| 波多野结衣在线观看| 亚洲高清在线观看| 亚洲免费在线视频观看| 久久精品人人做人人爽97 | 国产在线精品国自产拍免费| 综合国产精品久久久| 日韩高清二区| 97在线视频一区| 青青免费在线视频| 欧美精品在线一区二区三区| 国产1区2区3区4区| av午夜一区麻豆| 日韩免费毛片视频| 日韩国产一区二区三区| 亚洲一区二区三区四区视频| 国产精品探花在线| 亚洲欧美日韩第一区| 一道本在线视频| 亚洲综合激情网| 老牛影视av老牛影视av| 久久精品久久久精品美女| 色哺乳xxxxhd奶水米仓惠香| 欧美绝顶高潮抽搐喷水合集| 国产精品免费久久久久久| av在线免费观看网址| 亚洲国内高清视频| 亚洲视频在线观看一区二区| 亚洲欧美激情插| 亚洲狠狠婷婷综合久久久久图片| 日韩av电影一区| 日本中文字幕一级片| 外国成人在线视频| 91亚洲国产成人久久精品网站 | 亚洲综合中文网| 亚洲精品社区| 伊人天天久久大香线蕉av色| 国内精品国产成人国产三级粉色| 国产精品99久久久久久白浆小说| 51xtv成人影院| 亚洲性无码av在线| 不卡视频在线播放| 在线观看av一区| 精品一区二区三区人妻| 禁断一区二区三区在线| 国产精品美女视频网站| 欧洲精品二区| 中文字幕久久亚洲| 手机在线观看毛片| 91精品国产综合久久小美女| 欧美日韩综合一区二区三区| 一区二区久久久久久| 女教师淫辱の教室蜜臀av软件| www.色综合.com| www激情五月| 秋霞成人午夜伦在线观看| 久草视频国产在线| 亚洲成人二区| 亚洲高清不卡一区| 奇米影视777在线欧美电影观看 | 久久国产亚洲精品无码| 女人香蕉久久**毛片精品| 婷婷久久伊人| 亚洲精品456| 精品人伦一区二区三区| 久久一级大片| 91九色国产社区在线观看| 在线一区视频观看| 人体精品一二三区| 国产理论在线| 国外成人在线视频| 啦啦啦中文在线观看日本| 久久夜精品香蕉| 暖暖日本在线观看| 日韩在线精品视频| 欧美人xxx| 在线成人免费网站| 国产乱子伦三级在线播放| 亚洲精品视频在线观看视频| 熟妇人妻一区二区三区四区| 欧美一区二区三区日韩| 国产又黄又大又粗的视频| 欧美色男人天堂| 中文字幕有码无码人妻av蜜桃| 一本大道综合伊人精品热热| 国产精品人人人人| 美女视频黄久久| 麻豆成人在线看| 三级无遮挡在线观看| 日韩电影大片中文字幕| 先锋av资源站| 国产丝袜一区视频在线观看| 日本xxxx人| 日韩大片免费观看视频播放| 无码国产伦一区二区三区视频 | 一级欧洲+日本+国产 | 法国空姐电影在线观看| 久久精品亚洲国产奇米99| 精品欧美一区二区久久久| 国产精品丝袜久久久久久app| 萌白酱视频在线| 综合久久久久久| 久草视频免费播放| 天天av天天翘天天综合网色鬼国产| 免费日韩一级片| 在线视频欧美区| 国产又粗又猛又黄| 日韩亚洲欧美一区二区三区| 免费看av毛片| 亚洲欧美日本另类| 麻豆91在线| 久久噜噜噜精品国产亚洲综合| 九色porny丨首页入口在线| 国产成人在线一区| 成人污污www网站免费丝瓜| 国产高清在线一区| 综合综合综合综合综合网| 亚洲欧美日产图| 激情成人综合| 久久久久久久少妇| 国产精品一区二区久激情瑜伽| 国产大学生视频| 中文字幕av资源一区| 国产1区2区3区4区| 色狠狠色狠狠综合| 午夜精品久久久久久久爽 | 黄色成年人视频在线观看| 欧美激情图片区| 欧美影视资讯| 亚洲尤物视频网| 欧美人与拘性视交免费看| 一区精品视频| 国产日韩一区二区三区在线播放| 91高清国产视频| 91性感美女视频| 黄色一级片中国| 欧美日韩激情小视频| 国产孕妇孕交大片孕| 亚洲激情自拍图| 国产区精品视频| 成人av一级片| 精品国产亚洲日本| 国产精品视频入口| 日本欧美肥老太交大片| 日本免费成人网| 日本美女一区二区三区视频| 99久久久无码国产精品性波多 | 97视频中文字幕| 欧美亚视频在线中文字幕免费| 一区在线电影| 日韩精品福利网| 久草视频福利在线| **网站欧美大片在线观看| 国产区一区二区三| 欧美tickling挠脚心丨vk| av中文字幕在线| 日韩美女福利视频| 岛国av一区| 欧美在线观看视频免费| 国产精品午夜一区二区三区| 樱花影视一区二区| 91高清免费视频| 不要播放器的av网站| 日本一区二区高清不卡| 日韩欧美国产综合在线| 国产在线精品免费| 天天操天天摸天天舔| 91福利精品第一导航| 无码国产精品一区二区免费16| 久久99热精品这里久久精品| 国产伦子伦对白视频| 6080日韩午夜伦伦午夜伦| av片在线看| 国产99在线|中文| 欧美一级一片| 很污的网站在线观看| 国产传媒日韩欧美成人| www.99re7| 538在线一区二区精品国产| 91青青在线视频| 国产精品亚洲精品| 日韩88av| 色婷婷综合网站| 国产精品视频你懂的| 国产精品露脸视频| 在线视频日本亚洲性| 韩日一区二区| 视频一区视频二区视频三区高| 视频一区欧美精品| 秋霞网一区二区三区| 欧美亚洲动漫制服丝袜| 成年人视频免费在线观看| 国产精品美女无圣光视频| 久久精品高清| 日韩av影视大全| 亚洲愉拍自拍另类高清精品| 精品区在线观看| 久久久久国色av免费观看性色| 国产精品传媒| 精品国一区二区三区| 麻豆影视在线| 国产精品久久一区| 97久久夜色精品国产| 亚洲一二区在线观看| 一区二区三区**美女毛片| 人妻va精品va欧美va| 欧美野外猛男的大粗鳮| 精品国产网站| 欧美一级视频在线| 亚洲中国最大av网站| 日本亚洲一区| 日本精品va在线观看| 成人激情在线| 四虎国产精品永久免费观看视频| 亚洲成在人线在线播放| 黄色片免费在线| 成人性生交大片免费看视频直播| 欧美激情五月| 法国空姐电影在线观看| 制服丝袜在线91| free性护士videos欧美| 视频在线99| 懂色av一区二区三区免费观看 | 午夜久久免费观看| 欧美熟妇精品一区二区| 在线视频观看一区| 天天色天天射天天综合网| 久久久精彩视频| 国内成+人亚洲+欧美+综合在线| 日韩精品一区二区三| 日韩在线中文视频| 欧美美女啪啪| 日本黄色一级网站| 91成人看片片| 日本高清在线观看| 日韩欧美一区二区视频在线播放| 国产酒店精品激情| 日本熟妇色xxxxx日本免费看| 中文字幕日韩专区|