1. 课程导论:供应链安全背景、Cosign在云原生安全中的定位、课程目标与学习路径
1.1 软件供应链安全:从“开发安全”到“交付安全”的范式转移
传统应用安全聚焦于代码漏洞扫描与运行时防护,但在云原生时代,攻击面已大幅前移。攻击者不再仅利用应用逻辑缺陷,而是通过污染镜像构建流程、篡改制品仓库、劫持 CI/CD 管道,将恶意载荷植入生产环境。2023 年以来的多次重大安全事件表明:镜像供应链已成为最薄弱的攻击入口。
关键数据: 据 CNCF 调查报告,超过 60% 的受访企业在过去 12 个月内遭遇过至少一次与容器镜像相关的安全事件;其中 34% 的事件直接源于未经验证的第三方镜像或构建产物被篡改。
软件供应链安全(Software Supply Chain Security)的核心目标,是确保从源码提交、构建、打包、存储到部署的每一个环节,制品的完整性、真实性与可追溯性都得到验证。这要求我们建立一套“不可变交付”机制——即任何制品在离开构建环境后,其内容与签名必须被严格锁定,任何未经授权的修改都能被即时发现并阻断。
1.2 Cosign 在云原生安全体系中的定位
Cosign 是 Sigstore 项目下的核心签名工具,专为容器镜像及 OCI 制品设计。它解决了传统 PGP 签名在云原生场景下的三大痛点:密钥管理复杂、签名验证流程割裂、缺乏与 CI/CD 管道的原生集成。
| 维度 | 传统 PGP 签名 | Cosign(Sigstore) |
|---|---|---|
| 密钥管理 | 需自行生成、保管、轮换私钥,丢失即失效 | 支持无密钥(Keyless)模式,利用 OIDC 身份临时签名 |
| 签名存储 | 分离的 .asc 文件,易丢失或与镜像脱钩 | 签名直接存储在 OCI Registry 中(镜像标签或 OCI 引用) |
| 验证集成 | 需手动下载公钥并运行 gpg --verify | 一条命令 cosign verify,原生支持 Kubernetes 准入控制器 |
| 可审计性 | 无内置透明度日志 | 签名记录自动上传至 Rekor 透明度日志,支持公开审计 |
在云原生安全架构中,Cosign 处于“构建-存储-部署”安全链路的中间枢纽位置:
- 构建阶段: 与 GitHub Actions、GitLab CI、Tekton 等工具集成,在镜像推送前自动签名。
- 存储阶段: 签名作为镜像元数据的一部分,与镜像共存于 Registry,无需额外存储系统。
- 部署阶段: 通过 Kyverno、OPA Gatekeeper 或 Cosign 内置的准入控制器,在 Pod 创建前强制验证签名。
1.3 课程目标:从“能签名”到“能巡检、能准入”
本课程不满足于教会你运行 cosign sign 和 cosign verify 两条命令。我们的核心目标是帮助你建立一套生产级镜像供应链安全运营体系,具体包括三个能力层级:
- 基础层:签名与验证自动化 —— 掌握 Cosign 的密钥模式与 Keyless 模式,在主流 CI/CD 平台中实现镜像自动签名与验证。
- 进阶层:容量水位巡检 —— 构建对镜像仓库中所有已签名镜像的周期性巡检机制,自动发现签名过期、算法降级、签名缺失等水位异常。
- 高阶层:灰度发布准入检查 —— 在 Kubernetes 集群中部署基于 Cosign 签名的准入控制器,实现灰度发布场景下的差异化安全策略(如:金丝雀版本必须使用 Keyless 签名,稳定版本必须使用硬件密钥签名)。
课程特色: 每章均附带可运行的代码示例与 YAML 配置,你可以在本地 Kind 集群或测试环境中直接复现。我们提供一套完整的“镜像供应链巡检仪表盘”设计思路,帮助你从手工操作走向自动化运营。
1.4 学习路径与前置知识
本课程共 30 章,按“基础 → 进阶 → 高级 → 实战”四阶段组织。建议按顺序学习,但如果你已有 Cosign 使用经验,可以直接从第 10 章“容量水位巡检”开始。
| 阶段 | 章节范围 | 核心产出 | 推荐学习周期 |
|---|---|---|---|
| 基础篇 | 第 1-9 章 | 掌握 Cosign 签名/验证、Keyless 模式、与 CI/CD 集成 | 3-5 天 |
| 进阶篇 | 第 10-16 章 | 实现镜像仓库签名水位巡检、告警与可视化 | 4-6 天 |
| 高级篇 | 第 17-24 章 | 构建灰度发布准入控制器、策略引擎与多集群策略分发 | 5-7 天 |
| 实战篇 | 第 25-30 章 | 端到端供应链安全平台搭建、故障演练与运营复盘 | 3-5 天 |
前置知识要求:
- 熟悉 Docker 或 containerd 的基本操作(构建、推送、拉取镜像)。
- 了解 Kubernetes 基本概念(Pod、Deployment、Namespace、准入控制器)。
- 具备基础的 CI/CD 使用经验(GitHub Actions 或 GitLab CI 至少一种)。
- 了解 OpenID Connect(OIDC)基本流程(非必须,但有助于理解 Keyless 模式)。
1.5 本章小结与自检清单
本章我们明确了软件供应链安全的紧迫性,理解了 Cosign 在云原生安全中的枢纽定位,并规划了从基础签名到灰度准入的完整学习路径。在进入下一章之前,请确认你已经掌握以下知识点:
- ✅ 能够解释为什么传统 PGP 签名不适合云原生镜像供应链场景。
- ✅ 能够说出 Cosign 相比传统签名工具的至少三个优势。
- ✅ 能够描述 Cosign 在“构建-存储-部署”三个阶段中的具体作用。
- ✅ 能够说出本课程四个学习阶段的核心产出分别是什么。