概述
以 root 运行且拥有全部能力与可写文件系统的容器,一旦被利用即可在节点内升级。收敛安全上下文可从运行时限制攻击面,但需先弄清应用确实要写哪些路径。
关键步骤
- 设置 runAsNonRoot 及具体的 runAsUser 与 runAsGroup。
- 设 allowPrivilegeEscalation 为 false,丢弃全部能力,仅按需加回。
- 设置只读根文件系统,并在需要处挂载可写 emptyDir。
- 设置 seccomp 为 RuntimeDefault。
验证
- 进程以非 root 用户运行。
- 无法提权且能力被丢弃。
- 镜像文件系统不可修改。
- 应用功能在受限上下文下正常。
注意事项
- 严格的安全上下文会破坏期望 root 或写入自身文件系统的镜像。
- 它降低但不消除容器逃逸风险,内核与运行时漏洞仍具影响。
适用范围
本条目围绕「用安全上下文加固 Pod」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
securityContext:
runAsNonRoot: true
runAsUser: 10001
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
seccompProfile: { type: RuntimeDefault }