Rancher Kubernetes擁有RBAC(基于角色的訪問控制)功能,此功能可以讓管理員配置不同的策略,允許或拒絕用戶和服務(wù)帳戶訪問Kubernetes API資源。
為了更好地理解RBAC功能是如何工作的,本文將闡明如何使用Kubernetes API進行身份認(rèn)證,以及RBAC授權(quán)模塊如何與認(rèn)證用戶協(xié)同工作。
在Rancher中使用KUBERNETES驗證
Rancher使用Webhook Token身份驗證策略來認(rèn)證用戶的bearer token。首先,用戶使用Rancher驗證通過Kubernetes > CLI選項卡獲得kube配置文件,這其中就包含bearer token。然后,kubectl借助此token和web hook遠(yuǎn)程認(rèn)證服務(wù),用Kubernetes API對用戶進行身份認(rèn)證:
當(dāng)用戶嘗試使用bearer token對Kubernetes API進行認(rèn)證時,認(rèn)證webhook會與Rancher Kubernetes認(rèn)證服務(wù)進行通信,并發(fā)送包含該token的身份認(rèn)證審查對象。然后,Rancher Kubernetes認(rèn)證服務(wù)將會發(fā)送一個檢查狀態(tài),該狀態(tài)指定用戶是否經(jīng)過身份認(rèn)證。
審閱狀態(tài)包含名稱、uid和組等用戶信息。Kubernetes API中的授權(quán)模塊稍后將以此確定該用戶的訪問級別。
以下是Kubernetes發(fā)送給Rancher Kubernetes認(rèn)證服務(wù)的認(rèn)證請求示例。
認(rèn)證請求:
Rancher Kubernetes認(rèn)證服務(wù)決定該用戶是否通過認(rèn)證,并向Kubernetes發(fā)送響應(yīng)。
認(rèn)證響應(yīng):
如您所見,由于環(huán)境所有者發(fā)送此請求,用戶在系統(tǒng)中被歸為system:masters組,該用戶組可以訪問Kubernetes集群中的所有資源:
集群角色“集群管理”資源允許訪問所有API組中的所有Kubernetes資源:
RBAC授權(quán)模塊
對API的請求包含請求者的用戶名、請求的操作以及操作所影響的對象的信息。在對Kubernetes API的請求成功進行認(rèn)證之后,必須授權(quán)該請求。
RBAC授權(quán)模塊定義了四個頂級對象,這四個對象控制授權(quán)用戶的授權(quán)決策:
角色和集群角色都標(biāo)識了Kubernetes API資源的權(quán)限集。它們之間唯一的區(qū)別是:角色可以在命名空間中定義,而集群角色綁定則在集群范圍內(nèi)定義。
角色綁定和集群角色綁定將定義的角色分配給用戶、組或服務(wù)帳戶。而它們可以通過在命名空間中進行角色綁定或在集群范圍內(nèi)進行集群角色綁定來獲得授予權(quán)限。在下一節(jié)中我們將討論相關(guān)示例。
如何在Rancher中啟用Kubernetes RBAC功能
要在Rancher中全新安裝Kubernetes來啟用RBAC功能,您可以編輯默認(rèn)環(huán)境或創(chuàng)建新的環(huán)境模板。在Kubernetes環(huán)境選項中,您可以啟用RBAC,如果您已經(jīng)啟動了Kubernetes基礎(chǔ)設(shè)施服務(wù),則可以單擊“更新”以更新Kubernetes的配置選項。
RBAC示例
如前一節(jié)所述,這些示例假設(shè)您已經(jīng)啟用了RBAC功能的Kubernetes,并假設(shè)您已啟用Rancher的GitHub身份認(rèn)證。
作為Kubernetes環(huán)境的所有者,如前所述,您可以訪問所有Kubernetes API,因為集群管理員角色是默認(rèn)分配給環(huán)境所有者的。管理員用戶默認(rèn)不會訪問任何API資源。
若您已將一些GitHub用戶和組添加為Kubernetes環(huán)境的成員,當(dāng)你嘗試訪問Kubernetes API時,則會收到以下消息:

要跨所有Kubernetes集群啟用GitHub組織的訪問權(quán)限,請創(chuàng)建以下集群角色:
此角色定義了列表并獲得了對服務(wù)資源的訪問權(quán)限。此時, 集群角色不與任何用戶或組關(guān)聯(lián), 因此以下步驟為創(chuàng)建集群角色綁定:
角色綁定指定了GitHub組織的“github_org:”組。這時您會發(fā)現(xiàn),當(dāng)您想將角色綁定應(yīng)用于組時,每種認(rèn)證類型都有專門的Rancher認(rèn)證語法。有關(guān)更多詳細(xì)信息,可參閱Rancher文檔:
創(chuàng)建角色綁定后,您就可以列出屬于此GitHub組織的任何用戶的服務(wù)了:
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://m.hanmeixuan.com/
本文標(biāo)題:Rancher中的K8S認(rèn)證和RBAC
本文網(wǎng)址:http://m.hanmeixuan.com/html/support/11121521483.html