Tanzu Kubernetes Grid 服務 使用已啟用的 PodSecurityPolicy 許可控制器佈建 Tanzu Kubernetes 叢集。這表示部署工作負載需要網繭安全性原則。叢集管理員可以將網繭從其使用者帳戶部署到任何命名空間,以及從服務帳戶部署到 kube-system 命名空間。對於所有其他使用案例,您必須明確繫結至 PodSecurityPolicy 物件。叢集包括可繫結至的預設網繭安全性原則,或建立您自己的安全性原則。
關於 Kubernetes 網繭安全性原則
Kubernetes 網繭安全性原則 (PSP)是控制網繭安全性的叢集層級資源。透過 PSP,可讓您控制可部署的網繭類型以及可部署這些網繭的帳戶類型。
PodSecurityPolicy 資源會定義網繭必須滿足才能部署的一組條件。如果未滿足這些條件,則無法部署網繭。單一 PodSecurityPolicy 必須對網繭進行完整驗證。網繭不能在一個原則中有一些規則,同時在另一個原則中又有一些規則。
有多種方式可在 Kubernetes 中實作網繭安全性原則的使用。一般方法是使用角色型存取控制 (RBAC) 物件。ClusterRole 和 ClusterRoleBinding 適用於整個叢集;Role 和 RoleBinding 適用於特定命名空間。如果使用 RoleBinding,則僅會讓網繭在與繫結相同的命名空間中執行。
有兩種方式可建立 Kubernetes 網繭:直接或間接。透過使用您的使用者帳戶部署網繭規格,可以直接建立網繭。透過定義一些更高層級的資源 (例如 Deployment 或 DaemonSet),可以間接建立網繭。在此情況下,服務帳戶會建立基礎網繭。
若要有效使用 PSP,您必須同時考慮上述網繭建立工作流程。如果使用者直接建立網繭,則繫結到使用者帳戶的 PSP 會控制該作業。如果使用者透過服務帳戶建立網繭,則 PSP 必須繫結至用於建立網繭的服務帳戶。如果在網繭規格中未指定服務帳戶,則會使用命名空間的預設服務帳戶。
Tanzu Kubernetes 叢集的預設 PodSecurityPolicy
預設 PSP | 權限 | 說明 | 相關聯的預設 ClusterRole |
---|---|---|---|
vmware-system-privileged |
以任何身分執行 | 寬鬆的 PSP。相當於在未啟用 PSP 許可控制器的情況下執行叢集。 | psp:vmware-system-privileged 可以使用此 PSP |
vmware-system-restricted |
必須以非根使用者身分執行 | 限制性 PSP。不允許對網繭容器進行具有特殊權限的存取,封鎖可能升階至根使用者,並且需要使用多個安全機制。 | psp:vmware-system-restricted 可以使用此 PSP |
Tanzu Kubernetes 叢集沒有預設繫結
Tanzu Kubernetes Grid 服務 不會為 Tanzu Kubernetes 叢集提供預設的 RoleBinding 和 ClusterRoleBinding。
被授與 vSphere 命名空間 之編輯權限的 vCenter Single Sign-On 使用者,將指派有 cluster-admin 角色 (對於在該命名空間中部署的任何 Tanzu Kubernetes 叢集)。已驗證的叢集管理員可隱式使用 vmware-system-privileged
PSP。雖然從技術層面來說並不是 ClusterRoleBinding,但其效果也相同。
叢集管理員必須定義任何繫結,以允許或限制使用者可部署到叢集的網繭類型。如果使用 RoleBinding,則該繫結僅允許網繭在與繫結相同的命名空間中執行。這樣可以與系統群組配對,以向命名空間中執行的所有網繭授與存取權。向叢集進行驗證的非管理員使用者會指派有 authenticated
角色,因此可繫結至預設 PSP。請參閱向開發人員授與 Tanzu Kubernetes 叢集的存取權。
預設 PodSecurityPolicy 對 Tanzu Kubernetes 叢集的影響
- 叢集管理員可使用其使用者帳戶,直接在任何命名空間中建立有權限的網繭。
- 叢集管理員可以在 kube-system 命名空間中建立 Deployment、StatefulSet 和 DaemonSet (每個都建立有權限的網繭)。如果您想要使用其他命名空間,請參閱Tanzu Kubernetes Guestbook 教學課程。
- 叢集管理員可以建立自己的 PSP (除了兩個預設 PSP),並將這些 PSP 繫結到任何使用者。若要定義自己的 PSP,請參閱 Kubernetes 說明文件中的原則順序。
- 在叢集管理員將 PSP 繫結至已驗證的使用者之前,任何已驗證的使用者都無法建立有權限或無權限的網繭。請參閱Tanzu Kubernetes Guestbook 教學課程。