容器镜像构建安全检查踩坑记录
最近在为ML模型监控平台搭建CI/CD流水线时,遭遇了容器镜像安全检查的坑。项目中使用了Python 3.8基础镜像,但构建过程中未进行安全扫描导致生产环境出现漏洞。
问题发现过程
首先,在Dockerfile中我们这样配置:
FROM python:3.8-slim
COPY requirements.txt .
RUN pip install -r requirements.txt
但在CI流程中,我们忽略了安全扫描步骤。通过Trivy扫描发现,基础镜像包含多个高危漏洞。
复现步骤
- 构建不带安全检查的镜像:
docker build -t my-model:latest . - 使用Trivy扫描:
trivy image my-model:latest - 查看漏洞报告:会发现大量CVE漏洞,如CVE-2021-44790等
解决方案
为解决这个问题,我们调整了构建流程:
-
使用安全基镜像:
FROM python:3.8-slim@sha256:abc123... -
添加安全检查脚本:
# .gitlab-ci.yml security_check: script: - trivy image --exit-code 1 --severity HIGH my-model:latest -
集成到CI流程中:确保每个镜像构建都必须通过安全检查才能部署。
告警配置
为避免再次发生类似问题,我们设置了GitLab告警规则:
- 镜像扫描发现高危漏洞时触发邮件通知
- 安全检查失败时阻止CI流程继续
这确保了模型监控系统在部署前就能通过安全验证。

讨论