关于 container-image-hardening
用于审查并加固生产环境 Dockerfile 和容器镜像的技能,涵盖构建实践、漏洞、运行时设置及验证,并输出加固后的 Dockerfile 和 CI 门禁配置。
主要功能
- 01审查 Dockerfile 构建实践
- 02检查镜像漏洞
- 03加固运行时安全设置
- 04验证镜像层和非 root 运行
- 05生成扫描报告和 CI 门禁
适用场景
- 01发布前审查 Dockerfile
- 02在 CI 中加入漏洞检查
- 03降低容器运行时权限
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ securityskills/ skills --skill container-image-hardening安装后在 Claude Code 中输入/container-image-hardening确认已加载。
详细介绍
容器镜像加固
审查并修复 Dockerfile 和镜像,确保生产环境安全。
Dockerfile 审查清单
- 基础镜像:使用官方镜像、指定标签或摘要,以及精简变体(
alpine、distroless、slim);切勿使用latest - 多阶段构建:不将构建工具链(编译器、包管理器)纳入最终镜像
- 非 root 用户:使用专用 UID 配置
USER指令;镜像中不包含 sudo - 不含密钥:不使用含凭据的
ENV,不执行COPY .env,不将密钥烘焙到镜像层中(即使之后删除,密钥仍会保留) - 锁定依赖:使用锁文件(
npm ci、带哈希值的pip install -r requirements.txt) - 定义健康检查;使用
ENTRYPOINT而非CMD来强制执行初始化 - 镜像层整洁:将 apt 操作合并到同一镜像层,并在该层清理软件包列表;
.dockerignore应包含.git和构建产物
扫描与门禁
trivy image --severity HIGH,CRITICAL --exit-code 1 <image>
grype <image>
docker scout cves <image>
- 对存在可用修复方案的严重 CVE,在 CI 中阻止通过
- 跟踪基础镜像更新(使用 renovate/dependabot 更新 Dockerfile)
运行时加固
read_only: true
cap_drop: ["ALL"]
security_opt: ["no-new-privileges:true"]
tmpfs: [/tmp]
- 设置资源限制(CPU/内存),以减轻 DoS 攻击
- 将根文件系统设为只读;明确指定可写路径的 tmpfs
验证
docker history <image>— 检查是否存在疑似包含密钥的镜像层dive <image>— 检查镜像效率和空间浪费- 以镜像用户身份运行:
docker run --rm <image> id应显示非 root 用户
输出
加固后的 Dockerfile、扫描前后报告,以及 CI 门禁配置。
评论
支持 Markdown