主管 上的 TKG 使用網繭安全性原則許可控制器來支援網繭安全性,依預設,已為使用 TKR v1.24 及更早版本的 Tanzu Kubernetes 叢集啟用該控制器。

必要條件:TKR 1.24 及更早版本

本主題的內容適用於 主管 上佈建了 TKR v1.24 及更早版本的 TKG 叢集。依預設,這些 Tanzu Kubernetes 版本 啟用網繭安全性原則許可控制器。

網繭安全性原則許可控制器的接替者是網繭安全性許可控制器。主管 上佈建了 TKR v1.25 及更新版本的 TKG 叢集啟用網繭安全性許可控制器。請參閱為 TKR 1.25 及更新版本設定 PSA

網繭安全性原則許可控制器

Kubernetes 網繭安全性原則 (PSP)是控制網繭安全性的叢集層級資源。透過 PSP,可讓您控制可部署的網繭類型以及可部署這些網繭的帳戶類型。

PodSecurityPolicy 資源會定義網繭必須滿足才能部署的一組條件。如果未滿足這些條件,則無法部署網繭。單一 PodSecurityPolicy 必須對網繭進行完整驗證。網繭不能在一個原則中有一些規則,同時在另一個原則中又有一些規則。如需詳細資訊,請參閱 Kubernetes 說明文件中的網繭安全性原則RBAC

有多種方式可在 Kubernetes 中實作網繭安全性原則的使用。一般方法是使用角色型存取控制 (RBAC) 物件。ClusterRole 和 ClusterRoleBinding 適用於整個叢集;Role 和 RoleBinding 適用於特定命名空間。如果使用 RoleBinding,則僅會讓網繭在與繫結相同的命名空間中執行。如需詳細資訊,請參閱 Kubernetes 說明文件中的 RBAC

有兩種方式可建立 Kubernetes 網繭:直接或間接。透過使用您的使用者帳戶部署網繭規格,可以直接建立網繭。透過定義一些更高層級的資源 (例如 Deployment 或 DaemonSet),可以間接建立網繭。在此情況下,服務帳戶會建立基礎網繭。如需詳細資訊,請參閱 Kubernetes 說明文件中的〈服務帳戶〉

若要有效使用 PSP,您必須同時考慮這兩個網繭建立工作流程:直接和間接。如果使用者直接建立網繭,則繫結到使用者帳戶的 PSP 會控制該作業。如果使用者透過服務帳戶建立網繭,則 PSP 必須繫結至用於建立網繭的服務帳戶。如果在網繭規格中未指定服務帳戶,則會使用命名空間的預設服務帳戶。

TKG 叢集的預設 PodSecurityPolicy

此表列出並說明 TKG 叢集的有權限和受限制的預設網繭安全性原則,以及與每個原則相關聯的預設 ClusterRole。
表 1. 具有相關聯 ClusterRole 的預設 PodSecurityPolicy
預設 PSP 權限 說明 相關聯的預設 ClusterRole
vmware-system-privileged 以任何身分執行 寬鬆的 PSP。相當於在未啟用 PSP 許可控制器的情況下執行叢集。 psp:vmware-system-privileged 可以使用此 PSP
vmware-system-restricted 必須以非根使用者身分執行 限制性 PSP。不允許對網繭容器進行具有特殊權限的存取,封鎖可能升階至根使用者,並且需要使用多個安全機制。 psp:vmware-system-restricted 可以使用此 PSP

TKG 叢集的角色繫結和 ClusterRole 繫結

主管 上的 TKG 不會為 TKG 叢集提供預設的 RoleBinding 和 ClusterRoleBinding。本說明文件提供了可使用的範例。請參閱將預設網繭安全性原則套用至 TKG 服務叢集

被授與 vSphere 命名空間編輯權限的 vCenter Single Sign-On 使用者,將指派有 cluster-admin 角色 (對於在該命名空間中部署的任何 Tanzu Kubernetes 叢集)。已驗證的叢集管理員可隱式使用 vmware-system-privileged PSP。雖然從技術層面來說並不是 ClusterRoleBinding,但其效果也相同。

叢集管理員必須定義任何繫結,以允許或限制使用者可部署到叢集的網繭類型。如果使用 RoleBinding,則該繫結僅允許網繭在與繫結相同的命名空間中執行。這樣可以與系統群組配對,以向命名空間中執行的所有網繭授與存取權。向叢集進行驗證的非管理員使用者會指派有 authenticated 角色,因此可繫結至預設 PSP。

對於需要網繭安全性原則的任何 TKG 叢集,將強制執行以下行為:
  • 叢集管理員可使用其使用者帳戶,直接在任何命名空間中建立有權限的網繭。
  • 叢集管理員可以在 kube-system 命名空間中建立 Deployment、StatefulSet 和 DaemonSet (每個都建立有權限的網繭)。如果要使用不同的 Kubernetes 命名空間,請為其建立 RoleBinding 或 ClusterRoleBinding。
  • 叢集管理員可以建立自己的 PSP (除了兩個預設 PSP),並將這些 PSP 繫結到任何使用者。若要定義自己的 PSP,請參閱 Kubernetes 說明文件中的原則順序
  • 在叢集管理員將 PSP 繫結至已驗證的使用者之前,任何已驗證的使用者都無法建立有權限或無權限的網繭。

如需繫結範例,請參閱將預設網繭安全性原則套用至 TKG 服務叢集