角色訪問控制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
- 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的步驟基本一致,您可結合實際需求進行操作。
后續步驟
關于如何授予RAM用戶或RAM角色自定義Kubernetes授權策略,請參見配置RAM用戶或RAM角色RBAC權限。
重要
當前容器服務 Kubernetes 版授權管理僅支持自定義ClusterRole角色與集群內RBAC權限的綁定,不支持自定義Role角色與集群內RBAC權限的綁定。
文檔內容是否對您有幫助?