本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。
Kubernetes v1.25:Pod 安全准入控制器进入稳定版
Kubernetes v1.25 的发布标志着 Kubernetes 开箱即用的 Pod 安全控制的一个重要里程碑:Pod 安全准入(PSA)已进入稳定阶段,而 Pod 安全策略(PSP)已被移除。PSP 在 Kubernetes v1.21 中被弃用,并且在 Kubernetes v1.25 及更高版本中不再可用。
Pod 安全准入控制器取代了 PodSecurityPolicy,只需为命名空间添加一个标签,即可更轻松地强制执行预定义的Pod 安全标准。Pod 安全标准由 K8s 社区维护,这意味着每当引入影响安全的新 Kubernetes 功能时,你都会自动获得更新的安全策略。
自 Beta 版以来有什么新变化?
自 Kubernetes v1.23 中的 Beta 版以来,Pod 安全准入没有太大变化。重点一直在于改善用户体验,同时继续保持高质量标准。
改进了违规消息
我们改进了违规消息,以便你收到更少的重复消息。例如,当 Baseline 和 Restricted 策略检查相同权能时,你不会再收到以下消息:
pods "admin-pod" is forbidden: violates PodSecurity "restricted:latest": non-default capabilities (container "admin" must not include "SYS_ADMIN" in securityContext.capabilities.add), unrestricted capabilities (container "admin" must not include "SYS_ADMIN" in securityContext.capabilities.add)
你会收到这条消息:
pods "admin-pod" is forbidden: violates PodSecurity "restricted:latest": unrestricted capabilities (container "admin" must not include "SYS_ADMIN" in securityContext.capabilities.add)
改进了命名空间警告
当你修改命名空间上的 enforce
Pod 安全标签时,Pod 安全准入控制器会检查所有现有 Pod 是否存在违规行为,如果任何 Pod 不合规,则会显示警告。对于具有相同违规行为的 Pod,这些警告现在会被聚合,使得具有许多副本的大型命名空间更易于管理。例如:
Warning: frontend-h23gf2: allowPrivilegeEscalation != false
Warning: myjob-g342hj (and 6 other pods): host namespaces, allowPrivilegeEscalation != false Warning: backend-j23h42 (and 1 other pod): non-default capabilities, unrestricted capabilities
此外,当你将非特权标签应用于已被配置为豁免的命名空间时,你现在会收到一条警告,提醒你这一事实:
Warning: namespace 'kube-system' is exempt from Pod Security, and the policy (enforce=baseline:latest) will be ignored
Pod 安全标准的变更
由 Pod 安全准入强制执行的Pod 安全标准已经更新,以支持新的 Pod OS 字段。在 v1.25 及更高版本中,如果你使用 Restricted 策略,并且明确将 Pod 的 .spec.os.name
字段设置为 windows
,则以下特定于 Linux 的限制将不再是必需的:
- Seccomp - Pod 和容器安全上下文中的
seccompProfile.type
字段 - 特权提升 - 容器安全上下文中的
allowPrivilegeEscalation
字段 - 权能 - 在容器的
capabilities
字段中要求去除ALL
权能
在 Kubernetes v1.23 及更早版本中,kubelet 不会强制执行 Pod OS 字段。如果你的集群包含运行 v1.23 或更早版本 kubelet 的节点,你应该明确地将受限策略固定到 v1.25 之前的版本。
从 PodSecurityPolicy 迁移到 Pod 安全准入控制器
有关从 PodSecurityPolicy 迁移到 Pod 安全准入控制器的说明,以及选择迁移策略的帮助,请参阅迁移指南。我们还在开发一个名为 pspmigrator 的工具,以自动化部分迁移过程。
我们将在即将到来的 KubeCon 2022 北美大会的演讲《从 Pod 安全策略迁移》中更详细地讨论 PSP 迁移。使用 KubeCon 北美大会日程了解更多信息。