概述
CI 构建若在构建时访问公网,就可能在依赖被篡改时无声受影响。以锁文件固定工具链、基础镜像与依赖,从受控镜像预取,构建步骤禁网而让未声明的网络依赖显式失败,再记录并验证输入,可让构建只依赖已声明内容。
关键步骤
- 用锁文件固定工具链、基础镜像与依赖。
- 预取依赖到受控镜像或缓存。
- 在禁网条件下运行构建步骤。
- 记录输入并验证构建只用它们。
验证
- 禁网条件下构建通过。
- 移除镜像中某必需输入会使构建失败。
- 安装步骤从镜像取包而非公网。
- 输入清单有记录。
决策点
应对整个构建步骤禁网,安装也应走镜像;供应链完整性重要时宜用镜像而非仅锁定版本。
适用范围
本条目围绕「封闭式构建 CI 工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
建议在正式环境落地前先在预发或隔离环境演练一遍,把关键观测指标与负责人一并记录,确保出现异常时能快速定位并恢复。
# CI step with network disabled
- name: build
run: ./build.sh
# runner configured without egress; deps already in the mirror