協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Pod 安全政策 (PSP) 移除常見問答集
PodSecurityPolicy
已在 Kubernetes1.21
中被棄用1.25
中移除。如果您 PodSecurityPolicy 在叢集中使用,則必須先移轉至內建 Kubernetes Pod 安全性標準(PSS)或 policy-as-code 解決方案,才能將叢集升級1.25
至版本,以避免工作負載中斷。選擇任何常見問答集以了解詳細資訊。
PodSecurityPolicy
這是 Kubernetes 專案中的上游變更,而不是在 Amazon EKS 中執行的變更。PSP 已在 Kubernetes 1.21
中被棄用,並在 Kubernetes 1.25
中移除。Kubernetes 社群發現 PSP 存在嚴重的可用性問題。其中包括意外授予比預期更廣泛的許可,以及難以檢查在特定情況下適用的 PSPs。如果沒有進行重大變更,就無法解決這些問題。這就是 Kubernetes 社群 決定移除 PSP
若要檢查您是否在叢集使用 PSPs,您可以執行下列命令:
kubectl get psp
若要查看叢集中 PSPs 正在影響的 Pods,請執行下列命令。此命令會輸出 Pod 名稱、命名空間和 PSPs:
kubectl get pod -A -o jsonpath='{range.items[?(@.metadata.annotations.kubernetes\.io/psp)]}{.metadata.name}{"\t"}{.metadata.namespace}{"\t"}{.metadata.annotations.kubernetes\.io/psp}{"\n"}'
將叢集升級到 1.25
之前,您必須將自己的 PSPs 遷移至下列其中一個替代選項:
Kubernetes PSS.
來自Kubernetes環境的 P olicy-as-code 解決方案。
為了回應 PSP 棄用和從一開始就控制 Pod 安全性的持續需求,Kubernetes 社群建立了具有 (PSS)
您可以在 EKS 最佳實務指南
P olicy-as-code 解決方案提供護欄以引導叢集使用者,並透過規定的自動化控制來防止不必要的行為。P olicy-as-code 解決方案通常會使用 Kubernetes 動態許可控制
有幾種開源 policy-as-code 解決方案可用於Kubernetes. 若要檢閱移轉PSPs至 policy-as-code 解決方案的最佳做法,請參閱上的網繭安全性頁面的 P olicy-as-code
具有 Kubernetes 版本 1.13
或更高版本的 Amazon EKS 叢集具有名為 eks.privileged
的預設值 PSP。此政策在 1.24
和更早版本的叢集中建立。它不會在 1.25
和更新版本的叢集中使用。Amazon EKS 會自動將此 PSP 遷移到以 PSS 為基礎的強制執行。您不需要執行任何動作。
不會。除了 eks.privileged
之外 (這是由 Amazon EKS 建立的 PSP),升級至 1.25
時不會對叢集中的其他 PSPs 執行任何變更。
不會。如果您尚未遷移 PSP,Amazon EKS 將不會阻止叢集更新至版本 1.25
。
當包含 PSP 的叢集升級到 Kubernetes 版本 1.25
時,API 伺服器將無法識別 1.25
的 PSP 資源。這可能會導致 Pods 取得不正確的安全範圍。如需詳盡的隱含清單,請參閱從內建許可控制器移轉 PodSecurityPolicy 至內建 PodSecurity 許可控制器
我們預期不會對 Windows 工作負載產生任何特定影響。 PodSecurityContext 有一個在適用於視windowsOptions
窗的 PodSpec v1
API 中調用的字段Pods。這會使用 Kubernetes 1.25
中的 PSS。如需有關針對 Windows 工作負載強制執行 PSS 的詳細資訊和最佳實務,請參閱 EKS 最佳實務指南