2. 核心概念解析
在深入镜像供应链安全容量水位巡检之前,必须统一对六个核心概念的理解。这些概念构成了巡检策略的底层逻辑与度量基础,任何偏差都会导致基线失准或巡检失效。
2.1 镜像仓库 (Image Registry)
镜像仓库是存储、分发容器镜像的核心基础设施。它不仅是二进制文件的存储池,更是供应链安全策略的执行点。现代镜像仓库(如 Harbor、Docker Registry、Amazon ECR)通常集成以下安全能力:
- 镜像签名验证:确保镜像来源可信,未被篡改。
- 漏洞扫描:在推送或拉取时自动触发 CVE 检测。
- 访问控制:基于角色的权限管理,限制谁可以推送/拉取。
- 不可变标签:防止已发布的镜像标签被覆盖。
容量视角:镜像仓库的存储容量、API 请求吞吐量、并发扫描队列深度,是容量规划的核心指标。仓库的存储水位直接影响镜像拉取延迟和扫描任务积压。
2.2 制品库 (Artifact Repository)
制品库是比镜像仓库更广义的概念,管理所有软件交付物:容器镜像、Helm Chart、JAR 包、NPM 包、Python Wheel 等。在供应链安全上下文中,制品库是“物料清单”的集中管控点。
| 维度 | 镜像仓库 | 制品库 |
|---|---|---|
| 管理对象 | 容器镜像 (OCI 标准) | 镜像 + 包 + 配置文件 + SBOM |
| 安全焦点 | 镜像层漏洞、签名 | 依赖链、许可证、元数据完整性 |
| 容量指标 | 存储、拉取 QPS | 存储 + 元数据索引 + 制品版本数 |
| 巡检策略 | 水位 + 扫描覆盖率 | 水位 + 依赖溯源 + 策略合规 |
2.3 供应链安全 (Supply Chain Security)
镜像供应链安全覆盖从代码提交、构建、镜像打包、制品存储、部署到运行时的全链路。核心威胁模型包括:
- 依赖投毒:上游基础镜像或第三方库被植入恶意代码。
- 镜像篡改:中间人攻击或仓库权限泄露导致镜像被替换。
- 漏洞传播:基础镜像中的已知漏洞被下游所有服务继承。
- 配置漂移:安全策略(如扫描阈值、签名要求)在制品流转过程中被绕过。
容量与安全的交叉点:当镜像仓库存储水位超过 80% 时,扫描任务可能因磁盘 I/O 瓶颈而超时,导致新推送的镜像无法及时完成安全扫描,形成“安全盲区”。容量规划是供应链安全的基础保障。
2.4 容量水位 (Capacity Watermark)
容量水位是衡量基础设施资源使用程度的量化指标,通常以百分比或值表示。在镜像供应链场景中,关键水位指标包括:
| 指标名称 | 定义 | 预警阈值 | 危险阈值 |
|---|---|---|---|
| 存储水位 | 已用存储 / 总分配存储 | 70% | 85% |
| 拉取 QPS 水位 | 当前拉取请求 / 最大并发拉取能力 | 60% | 80% |
| 扫描队列深度 | 待扫描镜像数 / 扫描器并发槽位数 | 50% | 75% |
| 制品版本膨胀率 | 月新增版本数 / 月清理版本数 | 1.5x | 3.0x |
2.5 基线 (Baseline)
基线是经过验证的、可接受的容量与安全状态参考点。基线不是静态的,而是随着业务增长、架构演进、安全策略调整而周期性校准的“动态标尺”。
基线通常包含三个层次:
- 容量基线:正常业务负载下的存储、QPS、扫描延迟的 P50/P95 值。
- 安全基线:允许的最大漏洞严重等级、签名覆盖率、SBOM 生成率。
- 合规基线:满足行业标准(如 SLSA、NIST SP 800-190)的最低要求。
基线验证原则:基线必须可测量、可复现、可告警。例如:“镜像仓库存储水位在业务高峰期间不超过 75%”是一条可验证的容量基线;“所有生产镜像必须包含有效签名”是一条可验证的安全基线。
2.6 巡检策略 (Inspection Strategy)
巡检策略是将基线转化为可执行检查动作的规则集合。一个完整的巡检策略包含:
- 巡检对象:哪些仓库、哪些制品、哪些指标。
- 巡检频率:实时、每小时、每日、每周。
- 触发条件:定时触发、事件驱动(如镜像推送)、水位告警联动。
- 动作定义:记录日志、发送告警、自动扩缩容、阻断不安全镜像。
- 基线比对:当前值与基线值的偏差计算与判定。
2.7 概念间的协同关系
六个概念并非孤立存在,而是形成闭环:
- 镜像仓库 和 制品库 是巡检的“对象层”,提供原始数据。
- 容量水位 是“度量层”,量化资源使用状态。
- 基线 是“参考层”,定义可接受的范围。
- 供应链安全 是“目标层”,驱动巡检的价值取向。
- 巡检策略 是“执行层”,将上述四层串联为可操作的自动化流程。
实践建议:在搭建巡检体系时,建议先定义基线,再配置巡检策略,最后通过容量水位数据反哺基线校准。避免“先巡检、后定标”的常见误区。