← 文章 / 未分类
sysdig 2小时前 · 2026-09-05 16:23:45 · 2 阅读

Kubernetes 1.37 - 新功能:新增安全防护

Falco Feeds 扩展了 Falco 的能力,为专注于开源的企业提供专家编写的规则,并随新威胁的发现持续更新。

绿色背景,左侧为圆形图标,右侧三个要点:自动检测威胁、无需维护规则、保持合规,并配有三支指向文字的黑白光标箭头。

Kubernetes 1.37 刚刚发布,带来了 67 项功能增强

在安全方面,我们梳理出 19 项与安全相关的变更,涵盖卷挂载的新安全特性、快照改进、webhook 默认启用认证等内容。

让我们一探究竟!

Kubernetes 1.37 中可能造成破坏的安全变更

#1710 加速递归 SELinux 标签修改

SIG 小组: sig-storage
阶段: 升级至 Stable

该功能可加快使用 SELinux 时 PersistentVolumes 的挂载速度。通过在挂载时使用 context 选项,Kubernetes 会将安全上下文应用到整个卷,而不是逐个递归修改文件的上下文。

借助这一优化,集群管理员用 SELinux 加固集群会变得更轻松。

⚠️ 在 Kubernetes 1.37 中,该增强的最后一块拼图 SELinuxMount 升级为 stable,意味着此优化将应用于所有符合条件的卷。在少数情况下,这可能导致问题:具有不同 SELinux 标签或不同权限级别的 Pod 共享同一个卷时。

ℹ️ 更多信息请阅读关于 SELinuxMount 破坏性变更的说明

ℹ️ 更多内容请参阅 Kubernetes 1.30 - What’s new?

#5343 将 nftables 设为 kube-proxy 的默认后端

SIG 小组: sig-network
#5343 阶段: 全新进入 Alpha

自 1.33 版本起,kube-proxy 的 nftables 后端模式#3866)已被视为稳定,并将在 1.40 版本中成为默认选项。在 1.37 版本中,如果用户仍在默认使用 iptables,将开始收到警告提示。

⚠️ 如果你正在此时进行迁移,请确保你的安全工具已覆盖新的配置文件。

相关:此外,在本版本中,ipvs 模式也迈出了其弃用进程的第一步(#5495)。

#140226 Kubelet:静态 Pod 不再能够引用 Secrets 或 ConfigMaps

此前静态 Pod 可以引用 Secrets 或 ConfigMaps 的漏洞现已修复,相关的 PreventStaticPodAPIReferences 功能门控已被移除。

新 API 中暴露的信息

与往常一样,本版本 Kubernetes 带来了若干增强功能,将新数据暴露到 API 中。以下列举部分:

这些数据通常供集群管理员使用,用于监控集群健康、做出决策或排查问题。

⚠️ 然而,这些额外数据也可能被攻击者用来更好地了解你的基础设施。

✅ 检查谁有权限访问 API,确保他们只能访问所需的数据。

Kubernetes 1.37 新增的安全增强

#4939 支持 gRPC 探测中的 TLS 凭据

SIG 小组: sig-node
阶段: Alpha 新功能
功能门控: GRPCContainerProbeTLS 默认值: false

你的 Kubernetes 1.37 集群将能够原生探测需要 TLS 的 gRPC 健康服务器。此前,你需要通过使用执行命令的 exec 探测来绕过这一限制。

ℹ️ 使用新的 mode 字段:

livenessProbe:
  grpc:
    port: 8443
    mode: TLS

#5502 为 emptydir 卷添加 stickyBit 支持

SIG 小组: sig-storage
阶段: Alpha 新功能
功能门控: FOO 默认值: false

此项新增强允许你创建 EmptyDirVolumeSource,并设置介于 000001777 之间的权限模式,而非默认的 0777

ℹ️ 使用新的 mode 字段:

volumes:
  - name: app-data
    emptyDir:
      mode: 01777

#5823 Pod 级检查点/恢复

SIG 小组: sig-node
阶段: Alpha 新功能
功能门控: PodLevelCheckpointRestore 默认值: false

当前的 Kubelet Checkpoint API 可以为正在运行的容器创建状态副本。然而,Kubernetes 工作负载是由多个容器组合而成的。

现在,集群管理员可以在 Pod 级别创建和恢复 检查点

这有助于加快启动速度。预期用法是:在 Pod 加载完成后先创建检查点,等下次需要该 Pod 时直接恢复,而不是冷启动。

另一个用例,也是我们收录这个特性的原因,是让集群在故障后更快恢复。恢复时间在安全领域常被忽视,但它其实是韧性的重要组成部分。

ℹ️ 你可以设置在满足特定条件时创建 PodCheckpoint:

apiVersion: checkpoint.k8s.io/v1alpha1
kind: PodCheckpoint
metadata:
  name: myapp-snapshot-01
  namespace: team-a
status:
  nodeName: node-1
  checkpointLocation:
    type: NodeLocal
    nodeLocal:
      path: checkpoint-myapp_team-a-2026-05-28T10:14:22Z
  checkpointedPodTemplate:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: app
        image: registry.example.com/myapp:v1.4.0
      # ...scheduling constraints, resources, and security contexts as captured.
  conditions:
  - type: Ready
    status: "True"
    reason: CheckpointCompleted
    message: "checkpoint archive written successfully"
    observedGeneration: 1

然后在 Pod 中使用它。注意其中的 restoreFrom 字段:

apiVersion: v1
kind: Pod
metadata:
  name: myapp-restored
  namespace: team-a
spec:
  restoreFrom: myapp-snapshot-01
  # No nodeName: admission injects a required node affinity for the checkpoint's
  # node and the scheduler binds the Pod there.
  containers:
  - name: app
    image: registry.example.com/myapp:v1.4.0
    # ...rest of spec must match the spec inside myapp-snapshot-01

#5855 为 volumeMounts 增加 bind mount 选项(noexec、nodev、nosuid)支持

SIG 组: sig-node
阶段: 首次进入 Alpha
特性开关:
VolumeBindMountOptions 默认值: false

这个增强在 volumeMounts 上新增了 bindMountOptions 字段,用于定义 noexecnodevnosuid 等安全相关的挂载标志。

ℹ️ 举例来说,你可以给挂载在 /tmp 的卷加上 noexec 标志,阻止攻击者对刚下载的恶意文件执行 chmod +x 使其变成可执行文件——这是一种常见的攻击手法。

volumes:
  - name: tmp
    emptyDir: {}
containers:
  - name: app
    volumeMounts:
      - name: tmp
        mountPath: /tmp
        bindMountOptions: [noexec, nosuid]

#5936 为原子写入卷添加用户字段

SIG 小组: sig-storage
阶段: 全新引入,Alpha
功能门控:
AtomicWriteVolumeUserFields 默认值: false

现在你可以限制原子写入卷(如 ConfigMapSecretDownwardAPIProjected volumes)中文件的所有权。

此前在实现 restricted Pod 安全策略的集群中无法做到这一点,而其他场景则需要高维护成本的变通方案。

ℹ️ 注意 userdefaultUser 字段:

volumes:
- name: volA
  configMap:
    defaultUser: 1000
    name: cm1
    items:
    - key: foo // Owner=defaultUser
      path: foo
    - key: bar // Owner=user
      path: bar
      user: 1001

#5943 卷快照的拓扑支持

SIG 小组: sig-storage
阶段: 全新引入,Alpha
功能门控:
VolumeSnapshotTopology 默认值: false

延续灾难恢复的主题,管理员现在可以在卷快照中包含拓扑数据。

这些数据可用于引导快照的存储位置,以符合灾难恢复要求;也可引导恢复过程的位置,从而加快恢复速度。

ℹ️ 拓扑信息定义在 VolumeSnapshotClassallowedTopologies 字段上:

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: csi-aws-vsc
driver: ebs.csi.aws.com
deletionPolicy: Delete
allowedTopologies:
  - matchLabelE
原始来源: sysdig

评论 (0)