适用场景
容器安全的关键是"镜像可信 + 运行受限":来源不可信的镜像等于把攻击者请进集群,运行不限权等于给他 root。
配置步骤(镜像来源与签名)
# 1) 基础镜像统一维护,固定 digest
FROM registry.example.com/base/openjdk:17.0.9@sha256:xxxx
# 2) 构建后签名
cosign sign --key cosign.key registry.example.com/app:1.0.0
# 3) 部署校验(准入策略校验签名)
cosign verify --key cosign.pub registry.example.com/app:1.0.0
关键参数与建议
- 镜像来源:只允许私有仓库,基础镜像固定版本并定期更新
- 签名与校验:镜像签名(cosign 类方案),部署时校验摘要
- 扫描:CI 阶段扫漏洞,高危阻断;运行时定期复扫
- 运行策略:禁止 privileged、禁止 hostPath 敏感目录、只读根文件系统
- 准入控制:用 admission policy 拒绝不合规工作负载
容易踩的坑
- 生产直接用公网 latest 镜像,内容可能变化
- 签名公钥泄露或私钥未保护,签名形同虚设
- 只签名不校验,策略未生效
验证与巡检
cosign verify --key cosign.pub 镜像
- 巡检:生产镜像均来自私有仓库、签名校验开启
小结
容器安全验收:随便挑一个运行中的 Pod,能说清镜像来源、是否有高危漏洞、运行权限是否最小。说不清就是风险。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。