角色存取控制RBAC(Role-Based Access Control)的Kubernetes對象Role和ClusterRole中包含一組代表相關許可權的規則。Role總是用來在某個命名空間內設定存取權限,而ClusterRole是為叢集範圍的資源定義存取權限。本文介紹如何自行編寫Kubernetes的ClusterRole和Role。
權限原則說明
您可自行編寫入權限策略,或通過Container Service管理主控台建立自訂策略。
Role:命名空間維度
如果您需要在命名空間內定義角色,則應該使用Role。
下方是一個位於default命名空間的Role的YAML樣本,用來授予對Pods的所有許可權。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: test-role
namespace: default
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
ClusterRole:叢集維度
如果您需要定義叢集範圍的角色,則應該使用ClusterRole。
下方是一個ClusterRole的樣本,用來為任一特定命名空間中的Pods授予所有許可權。
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: test-clusterrole
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
關於Role和ClusterRole的更多資訊,請參見Role和ClusterRole。
建立Kubernetes自訂授權策略
該步驟以為RAM使用者或RAM角色建立自訂ClusterRole為例,與建立Role的步驟基本一致,您可結合實際需求進行操作。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在角色頁面,單擊Cluster Role頁簽。
在Cluster Role頁簽,單擊建立。
在建立YAML面板輸入自訂策略的YAML內容,單擊確定即可建立ClusterRole。
此步驟以權限原則說明中ClusterRole:叢集維度的YAML為例,建立完成後,可在Cluster Role頁簽查看自訂許可權test-clusterrole。
後續步驟
關於如何授予RAM使用者或RAM角色自訂Kubernetes授權策略,請參見配置RAM使用者或RAM角色RBAC許可權。
當前Container Service Kubernetes 版授權管理僅支援自訂ClusterRole角色與叢集內RBAC許可權的綁定,不支援自訂Role角色與叢集內RBAC許可權的綁定。