首页/云/Kubernetes 速查/Pod Security Admission(PSA)
集群运维与排障54 条

Pod Security Admission(PSA)

用命名空间标签声明 Pod 安全标准与违规动作:enforce 拒绝、audit 记入审计、warn 只出警告,三个动作可分别配置。

Kubernetes 速查云更新于 2026-10-13

PSA 是什么

Pod 安全准入是内置的准入控制器,用命名空间标签声明三档安全标准与三种违规动作,替代已废弃的 PodSecurityPolicy。它不引入额外组件,由 API Server 直接执行:创建或更新 Pod 时按标签选择的标准校验,命中违规就按配置的动作用户侧提示、记审计或直接拒绝。

基本信息

适用平台Kubernetes 1.23 起正式可用,1.25 移除旧版 PodSecurityPolicy
配置方式命名空间标签 pod-security.kubernetes.io/<动作>
三种动作enforce 拒绝、audit 记入审计日志、warn 返回警告
三档标准privileged 不限制、baseline 禁明显危险项、restricted 最严格
版本固定<动作>-version 标签锁定判定所用标准版本

典型使用场景

  • 为生产命名空间设置强制标准,阻止特权容器与主机网络被误开
  • 先在测试命名空间用警告模式统计历史负载的违规面
  • 对系统组件命名空间放宽到 privileged,业务命名空间收紧
  • 配合审计日志做合规举证,记录谁在什么时候尝试提权
  • 用版本固定标签避免集群升级后标准变严导致负载突然创建失败

打标签与版本固定

打标签与版本固定
kubectl label ns prod pod-security.kubernetes.io/enforce=baseline   # 强制基线标准
kubectl label ns prod pod-security.kubernetes.io/warn=restricted    # 违规时给警告便于改造
kubectl label ns prod pod-security.kubernetes.io/audit=restricted   # 违规写入审计
kubectl label ns prod pod-security.kubernetes.io/enforce-version=v1.29   # 锁定判定版本
kubectl get ns prod --show-labels                                   # 确认标签生效

三档标准对比

标准限制程度典型禁止项
privileged不限无限制,仅保留审计能力
baseline中等禁止特权容器、主机命名空间、危险的能力提升
restricted最严还要求非 root 运行、只读根文件系统、丢弃全部能力
迁移顺序推荐先只开警告与审计观察一到两周,把违规负载清单交给业务改造,确认无阻断后再打开强制,这样不会在大规模扩容的夜里集中暴露问题。
CNI、存储、监控等需要特权或主机目录的组件要单独放在宽松命名空间。给它们开强制严格标准会导致组件无法创建,直接影响集群网络与存储。

易错点

  • 直接把强制标准设成最严一档:大量历史负载会创建失败,滚动升级时新旧副本无法切换
  • 忘了系统组件命名空间:网络与存储插件被拒后业务 Pod 会大面积无法启动
  • 不固定标准版本:集群升级后判定规则变严,原本合规的负载会突然被拒且报错不易理解
  • 把警告模式当成限制生效:警告只返回提示,负载照样被创建,安全边界并没有建立

数据来源与参考

  • Kubernetes 官方文档 · Pod 安全准入
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌