适用场景
容器安全的关键是"镜像可信 + 运行受限":来源不可信的镜像等于把攻击者请进集群,运行不限权等于给他 root。
配置步骤(运行时策略与准入控制)
# Pod 安全策略示例(禁止特权与宿主路径)
securityContext:
runAsNonRoot: true
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities: { drop: ["ALL"] }
关键参数与建议
- 镜像来源:只允许私有仓库,基础镜像固定版本并定期更新
- 签名与校验:镜像签名(cosign 类方案),部署时校验摘要
- 扫描:CI 阶段扫漏洞,高危阻断;运行时定期复扫
- 运行策略:禁止 privileged、禁止 hostPath 敏感目录、只读根文件系统
- 准入控制:用 admission policy 拒绝不合规工作负载
容易踩的坑
- 业务为了省事用 privileged,风险极高
- 挂载宿主目录(如 /var/run/docker.sock),等同宿主权限
- 未设资源限制,被挖矿进程吃满节点
验证与巡检
kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.name}{" privileged="}{.spec.containers[*].securityContext.privileged}{"\n"}{end}' | grep -i true | head
- 巡检:无 privileged、无敏感宿主挂载、资源限制齐全
小结
容器安全验收:随便挑一个运行中的 Pod,能说清镜像来源、是否有高危漏洞、运行权限是否最小。说不清就是风险。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。