角色存取控制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。
建立Kubernetes自訂授權策略
說明
本步驟展示了為RAM使用者或RAM角色建立自訂ClusterRole,過程與建立Role大體相同。您可以根據實際需求調整相應操作。
後續步驟
關於如何授予RAM使用者或RAM角色自訂Kubernetes授權策略,請參見配置RAM使用者或RAM角色RBAC許可權。
重要
當前容器計算服務授權管理僅支援自訂ClusterRole角色與叢集內RBAC許可權的綁定,不支援自訂Role角色與叢集內RBAC許可權的綁定。