什么是權限管理
CCE權限管理是在統一身份認證服務(IAM)與Kubernetes的角色訪問控制(RBAC)的能力基礎上,打造的細粒度權限管理功能,支持基于IAM的細粒度權限控制和IAM Token認證,支持集群級別、命名空間級別的權限控制,幫助用戶便捷靈活的對租戶下的IAM用戶、用戶組設定不同的操作權限。
如果您需要對CCE集群及相關資源進行精細的權限管理,例如限制不同部門的員工擁有部門內資源的細粒度權限,您可以使用CCE權限管理提供的增強能力進行多維度的權限管理。
CCE支持的權限管理能力
CCE的權限管理包括“集群權限”和“命名空間權限”兩種能力,能夠從集群和命名空間層面對用戶組或用戶進行細粒度授權,具體解釋如下:
集群權限:是基于IAM系統策略的授權,可以通過用戶組功能實現IAM用戶的授權。用戶組是用戶的集合,通過集群權限設置可以讓某些用戶組操作集群(如創(chuàng)建/刪除集群、節(jié)點、節(jié)點池、模板、插件等),而讓某些用戶組僅能查看集群。
集群權限涉及CCE非Kubernetes API,支持IAM細粒度策略、企業(yè)項目管理相關能力。
命名空間權限:是基于Kubernetes RBAC(Role-Based Access Control,基于角色的訪問控制)能力的授權,通過權限設置可以讓不同的用戶或用戶組擁有操作不同Kubernetes資源的權限。同時CCE基于開源能力進行了增強,可以支持基于IAM用戶或用戶組粒度進行RBAC授權、IAM token直接訪問API進行RBAC認證鑒權。
命名空間權限涉及CCE Kubernetes API,基于Kubernetes RBAC能力進行增強,支持對接IAM用戶/用戶組進行授權和認證鑒權,但與IAM細粒度策略獨立。
CCE從v1.11.7-r2版本起的集群支持配置命名空間權限,1.11.7-r2之前的版本默認擁有全部命名空間權限。
CCE的權限可以從使用的階段分為兩個階段來看,第一個階段是創(chuàng)建和管理集群的權限,也就是擁有創(chuàng)建/刪除集群、節(jié)點等資源的權限。第二個階段是使用集群Kubernetes資源(如工作負載、Service等)的權限。
清楚了集群權限和命名空間權限后,您就可以通過這兩步授權,做到精細化的權限控制。
CCE集群權限是基于IAM系統策略和自定義策略的授權,可以通過用戶組功能實現IAM用戶的授權。
系統策略
IAM中預置的CCE系統策略當前包含CCEFullAccess和CCEReadOnlyAccess兩種策略:
- CCE FullAccess:系統策略,CCE服務集群相關資源的普通操作權限,不包括集群(啟用Kubernetes RBAC鑒權)的命名空間權限,不包括委托授權、生成集群證書等管理員角色的特權操作。
- CCE ReadOnlyAccess:系統策略,CCE服務集群相關資源的只讀權限,不包括集群(啟用Kubernetes RBAC鑒權)的命名空間權限。
自定義策略
如果系統預置的CCE策略,不滿足您的授權要求,可以創(chuàng)建自定義策略。
目前支持以下兩種方式創(chuàng)建自定義策略:
- 可視化視圖創(chuàng)建自定義策略:無需了解策略語法,按可視化視圖導航欄選擇云服務、操作、資源、條件等策略內容,可自動生成策略。
- JSON視圖創(chuàng)建自定義策略:可以在選擇策略模板后,根據具體需求編輯策略內容;也可以直接在編輯框內編寫JSON格式的策略內容。
設置集群權限流程
命名空間權限是基于Kubernetes RBAC能力的授權,通過權限設置可以讓不同的用戶或用戶組擁有操作不同Kubernetes資源的權限。Kubernetes RBAC API定義了四種類型:Role、ClusterRole、RoleBinding與ClusterRoleBinding,這四種類型之間的關系和簡要說明如下:
- Role:角色,其實是定義一組對Kubernetes資源(命名空間級別)的訪問規(guī)則。
- RoleBinding:角色綁定,定義了用戶和角色的關系。
- ClusterRole:集群角色,其實是定義一組對Kubernetes資源(集群級別,包含全部命名空間)的訪問規(guī)則。
- ClusterRoleBinding:集群角色綁定,定義了用戶和集群角色的關系。

在CCE控制臺可以授予用戶或用戶組命名空間權限,可以對某一個命名空間或全部命名空間授權,CCE控制臺默認提供如下ClusterRole:
- view(只讀權限):對全部或所選命名空間下大多數資源的只讀權限。
- edit(開發(fā)權限):對全部或所選命名空間下多數資源的讀寫權限。當配置在全部命名空間時能力與運維權限一致。
- admin(運維權限):對全部命名空間下大多數資源的讀寫權限,對節(jié)點、存儲卷,命名空間和配額管理的只讀權限。
- cluster-admin(管理員權限):對全部命名空間下所有資源的讀寫權限。
CCE中的命名空間權限是基于Kubernetes RBAC能力的授權,通過權限設置可以讓不同的用戶或用戶組擁有操作不同Kubernetes資源的權限。
某部門權限設計及配置示例
某部門權限設計及配置示例
活動對象:華為云電銷客戶及渠道伙伴客戶可參與消費滿送活動,其他客戶參與前請咨詢客戶經理
活動時間: 2020年8月12日-2020年9月11日
活動期間,華為云用戶通過活動頁面購買云服務,或使用上云禮包優(yōu)惠券在華為云官網新購云服務,累計新購實付付費金額達到一定額度,可兌換相應的實物禮品。活動優(yōu)惠券可在本活動頁面中“上云禮包”等方式獲取,在華為云官網直接購買(未使用年中云鉅惠活動優(yōu)惠券)或參與其他活動的訂單付費金額不計入統計范圍內;
活動對象:華為云電銷客戶及渠道伙伴客戶可參與消費滿送活動,其他客戶參與前請咨詢客戶經理
基于IAM系統策略的“集群權限”與基于Kubernetes RBAC能力的“命名空間權限”,兩者是完全獨立的,互不影響,但要配合使用。同時,為用戶組設置的權限將作用于用戶組下的全部用戶。當給用戶或用戶組添加多個權限時,多個權限會同時生效(取并集)。
下面以一個公司為例進行介紹。
通常一個公司中有多個部門或項目,每個部門又有多個成員,所以在配置權限前需要先進行詳細設計,并在設置權限之前提前為每個成員創(chuàng)建用戶名,便于后續(xù)對用戶進行用戶組歸屬和權限設置。
下圖為某公司某部門的組織架構圖和相關人員的權限設計,本文將按照該設計對每個角色的權限設置進行演示:

-
收起
主管:DAVID 收起
用戶“DAVID”為該公司某部門的主管,根據權限設計需要為其配置CCE服務的所有權限(包括集群權限和命名空間權限),因此需要在統一身份認證服務 IAM中單獨為DAVID創(chuàng)建用戶組“cce-admin”,并配置所有項目的權限:“CCE Administrator”。
- 說明
CCE Administrator:CCE的管理員權限,擁有該服務的所有權限,不需要再賦予其他權限。
CCE FullAccess、CCE ReadOnlyAccess:CCE的集群管理權限,僅針對與集群相關的資源(如集群、節(jié)點)有效,您必須確保同時配置了“命名空間權限”,才能有操作Kubernetes資源(如工作負載、Service等)的權限。
-
收起
運維組長:JAMES 收起
用戶“JAMES”為該部門的運維組長,需要設置所有項目的集群權限和所有命名空間的只讀權限。
在統一身份認證服務 IAM中為用戶“JAMES”單獨創(chuàng)建用戶組“cce-sre”,然后為用戶組“cce-sre”配置所有項目的集群權限:“CCE FullAccess”,用戶組“cce-sre”便擁有了所有項目的集群管理權限,接下來為所有組長和工程師添加所有集群和命名空間的只讀權限。
-
收起
開發(fā)組長:ROBERT 收起
用戶“ROBERT”作為開發(fā)組的組長,雖然在已經為其設置了所有集群和命名空間的只讀權限,但顯然還不夠,還需要為其設置所有命名空間的管理權限。
因此需要再單獨為其賦予所有集群下全部命名空間的管理員權限。
-
收起
運維工程師:WILLIAM 收起
運維工程師“WILLIAM”雖然有了所有集群和命名空間的只讀權限,但還需要在統一身份認證服務 IAM中為其設置區(qū)域的集群管理權限,因此單獨為其創(chuàng)建一個用戶組“cce-sre-b4”,然后配置區(qū)域項目的“CCE FullAccess”。
-
收起
開發(fā)工程師:LINDA、PETER 收起
“LINDA”和“PETER”是開發(fā)工程師,已經在用戶組“read-only”中為兩位工程師配置了集群和命名空間的只讀權限,此時只需要再另外配置相應命名空間的編輯權限即可。