應用現狀
云容器引擎的權限控制有兩種:集群權限和命名空間權限,以下篇幅將介紹云容器引擎針對集群權限的ClusterRole的創建、權限綁定和驗證做簡單介紹。
RBAC(Role-Based Access Control) 是基于角色(Role)的訪問控制。您可以通過RBAC將權限和集群角色關聯,以達到為不同的角色成員配置不同的權限,從而降低賬號的安全風險。RBAC的Kubernetes對象的Role或者ClusterRole中包含一組代表相關權限的規則。Role用來在某個命名空間內設置訪問權限,ClusterRole則是用于為集群范圍的資源定義訪問權限。
權限策略說明
您可自行編寫權限策略,或通過云容器引擎的控制臺創建自定義策略。
ClusterRole創建
針對您要定義集群范圍的角色,那么請使用ClusterRole。下面是一個創建ClusterRole的YAML示例。
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: clusterRole-test
rules:
- apiGroups:
- metrics.k8s.io
resources:
- pods
verbs:
- get
- list
- watch
關于ClusterRole或者Role的更多信息,請參見。
預置角色權限說明
| 預置角色 |
集群內RBAC權限 |
|---|---|
| 管理員 | 對集群所有命名空間下 Kubernetes 資源的 RBAC 讀寫權限, 對集群節點、存儲卷、命名空間、配額的讀寫權限 |
| 運維人員 | 對集群所有命名空間下控制臺可見 Kubernetes 資源的 RBAC 讀寫權限, 對集群節點、存儲卷、命名空間、配額的只讀權限 |
| 開發人員 | 對集群所有命名空間或所選命名空間下控制臺可見 Kubernetes 資源的 RBAC 讀寫權限 |
| 受限人員 | 對集群所有命名空間或所選命名空間下控制臺可見 Kubernetes 資源的 RBAC 只讀權限 |
| 自定義 | 權限由您所選擇的 ClusterRole 決定,請在確定所選 ClusterRole 對各類資源的操作權限后再進行授權,以免子賬號獲得不符合預期的權限 |
云容器引擎控制臺創建Kubernetes自定義授權策略
注意本步驟展示創建自定義ClusterRole,過程和創建Role類似。您可以根據實際的場景調整相應操作。
第一步:登錄天翼云,進入到云容器引擎控制臺,在左側導航欄選擇集群。
第二步:在集群管理界面,點擊目標集群名稱,然后在左側導航欄,選擇安全管理 -> 角色。

第三步:在角色頁面,點擊Cluster Role頁簽,然后點擊創建Cluster Role。
第四步:當點擊創建Cluster Role后,會彈出一個YAML面板,您需要在面板上輸入自定義策略的YAML內容,點擊確定即可創建成功。
第五步:在左側導航欄,選擇安全管理 ->授權,進入授權頁面,選擇子賬號下面的用戶,點擊添加權限。
第六步:進入集群RBAC配置,點擊添加權限,選擇命名空間,選擇自定義,然后選擇里之前創建好的Cluster Role,點擊下一步。
第七步:授權成功。
第八步:驗證。
首先按照下圖獲取到對應的config,登錄到集群主機保存test.config文件中。
查詢集群的Pod。
kubectl get pod --kubeconfig=test.config
沒有權限查看集群的Service,提示forbidden。
kubectl get services --kubeconfig=test.config
注意當前云容器引擎授權管理僅支持自定義Cluster Role角色與集群內RABAC權限的綁定,暫不支持自定義Role角色與集群內RBAC權限的綁定。