使用 securityContext 加固 Pod
将最小权限默认设置融入模板
使用 securityContext 加固 Pod 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
为何默认进行加固
提供最小权限默认值的 chart 能保护每个安装它的集群。将安全性内置到模板中,胜过寄希望于用户记得手动添加。
securityContext 的两个层级
您可以在 Pod 层级设置 securityContext,作用于所有容器;也可以为每个容器设置更窄的范围。容器设置会覆盖该容器对应的 Pod 设置。
不要以 root 身份运行
将 runAsNonRoot 设置为 true,让 Kubernetes 拒绝启动会以 root 身份运行的容器。这是您能提供的影响最大的一项默认设置。
securityContext:
runAsNonRoot: true
runAsUser: 1000只读根文件系统
启用 readOnlyRootFilesystem,让容器无法写入自身的镜像层。对于应用确实需要写入的路径,请挂载 emptyDir。
containers:
- name: app
securityContext:
readOnlyRootFilesystem: true删除 Linux 能力
大多数应用不需要特殊的内核权限,因此请删除 ALL 能力,只恢复工作负载确实需要的极少数能力。
capabilities:
drop:
- ALL阻止权限提升
将 allowPrivilegeEscalation 设置为 false,使进程永远无法获得比启动时更多的权限,即使通过 setuid 二进制文件也不行。🔒
allowPrivilegeEscalation: false设置 fsGroup
在 Pod 的 securityContext 中使用 fsGroup,让挂载的卷归属于非 root 用户所属的组,从而避免权限错误。
securityContext:
fsGroup: 2000永远不要将 privileged 设置为 True
privileged 容器几乎拥有对主机的完整访问权限,基本不应出现在 chart 默认值中。不要设置它,这意味着 false。
让设置可以覆盖
使用 toYaml 将 securityContext 连接到 values,让用户可以调整它,但仍将加固设置保留为安全默认值。
securityContext:
{{- toYaml .Values.securityContext | nindent 4 }}符合 Pod 安全标准
这些默认值符合 Kubernetes restricted Pod 安全标准,因此即使在严格锁定的命名空间中,您的 chart 也能顺利安装。
安装后进行验证
使用 kubectl get pod -o yaml 检查运行中 Pod 的规范,并查看 securityContext 字段,以确认加固措施已经生效。
kubectl get pod myapp -o jsonpath='{.spec.securityContext}'快速检查
哪个设置会在容器将以 root 用户运行时阻止它启动?
回顾
您使用 runAsNonRoot 加固了 Pod,删除了不必要的能力,启用了只读文件系统,并禁止了权限提升。安全的默认值能够保护每次安装。✅
常见问题解答
「使用 securityContext 加固 Pod」课时是免费的吗?
是的 — 「使用 securityContext 加固 Pod」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「使用 securityContext 加固 Pod」这节课中我会学到什么?
将最小权限默认设置融入模板 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「使用 securityContext 加固 Pod」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 标准标签与命名约定
- 合理且有文档说明的默认值
- 使用 securityContext 加固 Pod
- 固定版本并避免使用 latest