跳至主要内容

叢集和專案角色

叢集和專案角色定義叢集或專案內的使用者授權。

要管理這些角色,

  1. 點擊 ☰ > 使用者與身份驗證。
  2. 在左側導覽列中,點擊 角色範本,然後前往 叢集 或 專案/命名空間 標籤。

成員資格和角色分配​

非管理使用者可存取的專案和叢集是由_成員資格_決定的。成員資格是根據在該叢集或專案中被分配的角色而有權存取特定叢集或專案的使用者清單。每個叢集和專案都包含一個標籤,具有適當權限的使用者可以使用它來管理成員資格。

當您建立叢集或專案時,Rancher 會自動將您指定為其 Owner。被分配 Owner 角色的使用者可以在叢集或專案中為其他使用者分配角色。

備註

預設情況下,非管理使用者無法存取任何現有的專案/叢集。具有適當權限的使用者(通常是擁有者)必須明確分配專案和叢集成員資格。

叢集角色​

_叢集角色_是您可以分配給使用者的角色,授予他們對叢集的存取權。有兩個主要的叢集角色:Owner 和 Member。

  • 叢集擁有者:

    這些使用者對叢集及其所有資源擁有完全控制權。

  • 叢集成員:

    這些使用者可以檢視大多數叢集級別的資源並建立新專案。

自訂叢集角色​

Rancher 允許您為標準使用者分配_自訂叢集角色_,而不是典型的 Owner 或 Member 角色。這些角色可以是內建的自訂叢集角色,也可以是由 Rancher 管理員定義的角色。它們便於為叢集內的標準使用者定義狹窄或專門的存取權。請參閱下表以取得內建自訂叢集角色的清單。

叢集角色參考​

下表列出了每個可用的內建自訂叢集角色,以及該存取層級是否包含在預設的叢集級別權限 Cluster Owner 和 Cluster Member 中。

內建叢集角色OwnerMember
Create Projects✓✓
Manage Cluster Backups            ✓
Manage Cluster Catalogs✓
Manage Cluster Members✓
Manage Nodes (見下表)✓
Manage Storage✓
View All Projects✓
View Cluster Catalogs✓✓
View Cluster Members✓✓
View Nodes✓✓

Manage Nodes 權限​

下表列出了 RKE 和 RKE2 中 Manage Nodes 角色可用的權限。

Manage Nodes 權限RKERKE2
SSH Access✓✓
Delete Nodes✓✓
Scale Clusters Up and Down✓*
*在 RKE2 中,您必須具有編輯叢集的權限才能擴展和縮減叢集。

有關每個叢集角色如何存取 Kubernetes 資源的詳細資訊,您可以在 Rancher UI 中查找:

  1. 在左上角,點擊 ☰ > 使用者與身份驗證。
  2. 在左側導覽列中,點擊 角色範本。
  3. 點擊 叢集 標籤。
  4. 點擊個別角色的名稱。該表格顯示角色允許的所有操作和資源。
備註

檢視 Rancher 建立的預設角色相關資源時,如果一個行項目上有多個 Kubernetes API 資源,則該資源將附加 (Custom)。這些不是自訂資源,只是表示有多個 Kubernetes API 資源作為一個資源。

為叢集成員分配自訂叢集角色​

在管理員設定自訂叢集角色之後,叢集擁有者和管理員就可以將這些角色分配給叢集成員。

要為新叢集成員分配自訂角色,您可以使用 Rancher UI。要修改現有成員的權限,您需要使用 Rancher API 檢視。

要將角色分配給新叢集成員,

  1. 點擊 ☰ > 叢集管理。
  2. 前往您要為成員分配角色的叢集,然後點擊 Explore。
  3. 點擊 RBAC > Cluster Members。
  4. 點擊 Add。
  5. 在 Cluster Permissions 部分,選擇應分配給成員的自訂叢集角色。
  6. 點擊 Create。

結果: 成員已獲得指定的角色。

要將任何自訂角色分配給現有叢集成員,

  1. 點擊 ☰ > 使用者與身份驗證。
  2. 前往您要授予角色的成員。點擊 ⋮ > Edit Config。
  3. 如果您已新增自訂角色,它們將顯示在 Custom 部分。選擇您要分配給成員的角色。
  4. 點擊 Save。

結果: 成員已獲得指定的角色。

專案角色​

_專案角色_是可用於授予使用者存取專案的角色。有三個主要的專案角色:Owner、Member 和 Read Only。

  • 專案擁有者:

    這些使用者對專案及其所有資源擁有完全控制權。

  • 專案成員:

    這些使用者可以管理專案範圍的資源,例如命名空間和工作負載,但無法管理其他專案成員。

備註

預設情況下,Rancher 的 project-member 角色繼承自 Kubernetes-edit 角色,而 project-owner 角色繼承自 Kubernetes-admin 角色。因此,project-member 和 project-owner 角色都允許命名空間管理,包括建立和刪除命名空間的能力。

  • 唯讀:

    這些使用者可以檢視專案中的所有內容,但無法建立、更新或刪除任何內容。

危險

被分配專案的 Owner 或 Member 角色的使用者會自動繼承 namespace creation 角色。但是,此角色是 Kubernetes ClusterRole,這意味著其範圍擴展到叢集中的所有專案。因此,明確被分配專案的 owner 或 member 角色的使用者可以在他們被分配到的其他專案中建立命名空間,即使只被分配了 Read Only 角色。

自訂專案角色​

Rancher 允許您為標準使用者分配_自訂專案角色_,而不是典型的 Owner、Member 或 Read Only 角色。這些角色可以是內建的自訂專案角色,也可以是由 Rancher 管理員定義的角色。它們便於為專案內的標準使用者定義狹窄或專門的存取權。請參閱下表以取得內建自訂專案角色的清單。

專案角色參考​

下表列出了 Rancher 中每個可用的內建自訂專案角色,以及它是否也由 Owner、Member 或 Read Only 角色授予。

內建專案角色OwnerMemberRead Only
Manage Project Members✓
Create Namespaces✓✓
Manage Config Maps✓✓
Manage Ingress✓✓
Manage Project Catalogs✓
Manage Secrets✓✓
Manage Service Accounts✓✓
Manage Services✓✓
Manage Volumes✓✓
Manage Workloads✓✓
View Secrets✓✓
View Config Maps✓✓✓
View Ingress✓✓✓
View Project Members✓✓✓
View Project Catalogs✓✓✓
View Service Accounts✓✓✓
View Services✓✓✓
View Volumes✓✓✓
View Workloads✓✓✓
注意事項:
  • 上面列出的每個專案角色,包括 Owner、Member 和 Read Only,都由授予對各種資源存取權的多個規則組成。您可以在 Global > Security > Roles 頁面上檢視角色及其規則。
  • 檢視 Rancher 建立的預設角色相關資源時,如果一個行項目上有多個 Kubernetes API 資源,則該資源將附加 (Custom)。這些不是自訂資源,只是表示有多個 Kubernetes API 資源作為一個資源。
  • Manage Project Members 角色允許專案擁有者管理專案的任何成員並授予他們任何專案範圍的角色,無論他們對專案資源的存取權如何。單獨分配此角色時要謹慎。

定義自訂角色​

如前所述,自訂角色可以定義為在叢集或專案層級使用。context 欄位定義角色是否會出現在叢集成員頁面、專案成員頁面或兩者。

在定義自訂角色時,您可以授予對特定資源的存取權,或指定自訂角色應繼承的角色。自訂角色可以由特定授權和繼承角色的組合組成。所有授權都是累加的。這意味著為特定資源定義更窄的授權不會覆蓋自訂角色繼承的角色中定義的更廣泛授權。

專案層級的 UpdatePSA​

關於定義自訂角色,您可以授予使用者在專案中定義命名空間時建立或更新 PSA 政策的權限。

為此,您可以使用以下 RoleTemplate 套用於叢集:

apiVersion: management.cattle.io/v3
builtin: false
context: project
description: ''
displayName: Manage PSA Labels
external: false
hidden: false
kind: RoleTemplate
metadata:
name: namespaces-psa
rules:
- apiGroups:
- management.cattle.io
resources:
- projects
verbs:
- updatepsa

建立新專案時(從 Members 標籤),點擊 Add 以新增使用者,並選擇 Custom > Create Namespaces(以允許使用者建立命名空間)。然後再次點擊 Add,並從 Project Permissions 清單中選擇 UpdatePSA 專案角色範本。

預設叢集和專案角色​

預設情況下,當標準使用者建立新叢集或專案時,他們會自動被分配擁有權角色:叢集擁有者或專案擁有者。然而,在某些組織中,這些角色可能會過度擴展管理存取權。在這種情況下,您可以將預設角色更改為更嚴格的內容,例如一組個別角色或自訂角色。

有兩種方法可以更改預設叢集/專案角色:

  • 分配自訂角色:為您的叢集或專案建立自訂角色,然後將自訂角色設定為預設。

  • 分配個別角色:將多個叢集/專案角色設定為預設,以分配給建立使用者。

    例如,您可以選擇個別角色的組合(例如 manage nodes 和 manage storage),而不是分配繼承其他角色的角色(例如 cluster owner)。

備註
  • 儘管您可以鎖定預設角色,但系統仍會將該角色分配給建立叢集/專案的使用者。
  • 只有建立叢集/專案的使用者才會繼承其角色。之後新增到叢集/專案成員資格的使用者必須明確分配其角色。

為叢集和專案建立者設定預設角色​

您可以更改自動分配給建立使用者的叢集或專案角色。

  1. 在左上角,點擊 ☰ > 使用者與身份驗證。
  2. 在左側導覽列中,點擊 角色範本。
  3. 點擊 叢集 或 專案/命名空間 標籤。
  4. 找到您要用作預設的自訂或個別角色。然後透過選擇 ⋮ > Edit Config 來編輯角色。
  5. 在 Cluster Creator Default 或 Project Creator Default 部分,啟用該角色作為預設。
  6. 點擊 Save。

結果: 預設角色根據您的更改進行設定。分配給叢集/專案建立者的角色會在 Cluster/Project Creator Default 欄中顯示勾選標記。

如果您要移除預設角色,請編輯權限並從預設角色選項中選擇 No。

叢集成員資格撤銷行為​

當您撤銷明確被分配叢集_和_叢集內專案成員資格的標準使用者的叢集成員資格時,該標準使用者失去其叢集角色但保留其專案角色。換句話說,儘管您已撤銷使用者存取叢集及其節點的權限,標準使用者仍然可以:

  • 存取他們持有成員資格的專案。
  • 行使被分配的任何個別專案角色。

如果您要完全撤銷使用者在叢集中的存取權,請同時撤銷其叢集和專案成員資格。

外部 RoleTemplate 行為​

在 Rancher v2.9.0 及更高版本中,只有在本機叢集中存在支援的 ClusterRole 或在您的設定中設定 ExternalRules 時,才能建立外部 RoleTemplate 物件。

為了提供背景資訊,支援的 ClusterRole 持有叢集規則和權限,並與 ClusterRoleTemplateBinding/ProjectRoleTemplateBinding 引用的相應叢集中 RoleTemplate 使用的相同 metadata.name 共享。此外,請注意,需要 RoleTemplates 上的 escalate 權限才能使用 ExternalRules 建立外部 RoleTemplates。