角色存取控制RBAC(Role-Based Access Control)的Kubernetes對象Role和ClusterRole中包含一組代表相關許可權的規則。Role總是用來在某個命名空間內設定存取權限,而ClusterRole是為叢集範圍的資源定義存取權限。本文介紹如何自行編寫Kubernetes的ClusterRole和Role。
權限原則說明
您可自行編寫入權限策略,或通過容器計算服務控制台建立自訂策略。
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
- watchClusterRole:叢集維度
如果您需要定義叢集範圍的角色,則應該使用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。
建立RBAC自訂授權策略
說明
該步驟以為RAM使用者或RAM角色建立自訂ClusterRole為例,與建立Role的步驟基本一致,您可結合實際需求進行操作。
後續步驟
關於如何授予RAM使用者或RAM角色自訂RBAC授權策略,請參見為RAM使用者或RAM角色授予RAM許可權。