← 中文资源

简体中文版本

用安全上下文加固 Pod

以非 root 运行、禁用提权、丢弃能力、使用只读根文件系统并设置 seccomp,使容器逃逸变得更加困难。

阅读英文原文

概述

以 root 运行且拥有全部能力与可写文件系统的容器,一旦被利用即可在节点内升级。收敛安全上下文可从运行时限制攻击面,但需先弄清应用确实要写哪些路径。

关键步骤

  1. 设置 runAsNonRoot 及具体的 runAsUser 与 runAsGroup。
  2. 设 allowPrivilegeEscalation 为 false,丢弃全部能力,仅按需加回。
  3. 设置只读根文件系统,并在需要处挂载可写 emptyDir。
  4. 设置 seccomp 为 RuntimeDefault。

验证

  • 进程以非 root 用户运行。
  • 无法提权且能力被丢弃。
  • 镜像文件系统不可修改。
  • 应用功能在受限上下文下正常。

注意事项

  • 严格的安全上下文会破坏期望 root 或写入自身文件系统的镜像。
  • 它降低但不消除容器逃逸风险,内核与运行时漏洞仍具影响。

适用范围

本条目围绕「用安全上下文加固 Pod」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

securityContext:
  runAsNonRoot: true
  runAsUser: 10001
  allowPrivilegeEscalation: false
  readOnlyRootFilesystem: true
  capabilities: { drop: ["ALL"] }
  seccompProfile: { type: RuntimeDefault }