Cosign + GitHub Actions:打造安全软件供应链的密钥级方案

GitHub May 2026
⭐ 2
来源:GitHub归档:May 2026
全新演示仓库 pstoeckle/cosign-test 展示了如何将 Sigstore 的 Cosign 工具与 GitHub Actions 无缝集成,实现无密钥容器镜像签名与验证,大幅降低构建稳健软件供应链安全体系的门槛。

pstoeckle/cosign-test 仓库为开发者和团队提供了一个实用、可操作的示例,帮助他们在 GitHub Actions CI/CD 流水线中采用 Cosign——Sigstore 项目的核心工具。通过利用无密钥签名机制,该仓库消除了传统私钥管理的复杂性,使容器镜像在构建过程中能够自动完成签名与验证。这一方法直接回应了日益增长的软件供应链安全需求,尤其是在 SolarWinds 和 Codecov 等高调攻击事件之后。该演示引导用户设置一个 GitHub Actions 工作流,使用 Cosign 对镜像进行签名,随后进行验证,全程无需手动处理加密密钥。对于希望快速入门供应链安全的团队而言,这是一个低摩擦的切入点。

技术深度解析

pstoeckle/cosign-test 仓库建立在两项关键技术之上:SigstoreCosign。Sigstore 是一个非营利开源项目,提供公开、透明且可审计的软件制品签名与验证系统。Cosign 是其用于容器镜像签名、验证和存储的主要 CLI 工具。

架构与工作流:

该仓库展示的核心工作流非常直接:
1. 构建: 从 Dockerfile 构建 Docker 镜像(或从仓库拉取)。
2. 签名: Cosign CLI 使用无密钥签名方法对镜像摘要进行签名。这利用了 GitHub Actions 的 OpenID Connect(OIDC)令牌(需要 `id-token: write` 权限)。Cosign 将此令牌与 Sigstore 的 Fulcio 证书颁发机构交换,后者签发一个短期签名证书。签名和证书随后上传至 Sigstore 的 Rekor 透明度日志,创建公开可验证的记录。
3. 验证: 后续步骤或单独的工作流使用 Cosign 验证镜像的签名。验证过程检查证书链、证书中嵌入的身份(例如 GitHub 仓库和工作流名称)以及 Rekor 条目。

无密钥签名 vs. 传统密钥签名:

传统签名需要生成、存储和保护私钥——这对开发者来说是一个主要痛点。无密钥签名通过使用与 CI/CD 身份绑定的临时短期证书消除了这一痛点。这意味着:
- 无密钥管理开销。
- 无密钥泄露风险(密钥是临时的)。
- 自动撤销(证书快速过期)。
- 强大且可审计的身份绑定(签名者的身份就是 GitHub Actions 工作流运行)。

工程细节:

该仓库使用标准的 GitHub Actions YAML 文件。关键步骤包括:
- 设置权限:`id-token: write`(OIDC 令牌生成所需)。
- 安装 Cosign:通常通过 `cosign-installer` action 或简单的 `curl` 命令完成。
- 签名命令:`cosign sign --yes <IMAGE_URI>`(`--yes` 标志跳过确认提示)。
- 验证命令:`cosign verify --certificate-identity <EXPECTED_IDENTITY> --certificate-oidc-issuer https://token.actions.githubusercontent.com <IMAGE_URI>`。

相关开源仓库:

- sigstore/cosign(GitHub 星标:~4.5k):用于签名和验证制品的核心工具。支持 OCI 镜像、blob 等。近期更新包括对多架构镜像的改进支持以及增强的验证策略。
- sigstore/fulcio(GitHub 星标:~1.2k):基于 OIDC 令牌签发短期证书的证书颁发机构。
- sigstore/rekor(GitHub 星标:~1.1k):记录所有签名的透明度日志,实现公开可审计性。
- sigstore/gitsign(GitHub 星标:~1.0k):使用 Sigstore 对 Git 提交进行签名的相关工具。

性能与基准数据:

| 操作 | 时间(秒) | 备注 |
|---|---|---|
| OIDC 令牌生成 | < 1 | 在 GitHub Actions 中自动完成 |
| Cosign 安装 | 2-5 | 取决于网络和运行器 |
| Cosign 签名(无密钥) | 3-8 | 包括 Fulcio 证书签发和 Rekor 上传 |
| Cosign 验证 | 1-3 | 需要网络访问 Rekor |

数据要点: 签名和验证的开销极小(总计不到 10 秒),相比典型的构建时间(通常数分钟)微不足道。权衡之处在于构建时间略有增加,但换来了显著的安全增益。

关键参与者与案例研究

该生态系统的主要参与者是 Sigstore(开源项目)和 GitHub(CI/CD 平台)。pstoeckle/cosign-test 仓库是一个社区驱动的示例,但其底层技术得到了主要行业参与者的支持。

Sigstore:
- 创立者: Linux 基金会,初始贡献来自 Google、Red Hat 和普渡大学。
- 目标: 让软件签名变得普及且简单。
- 采用情况: Sigstore 已被 Kubernetes(用于签名发布制品)、Python(PyPI)和 npm(实验性)等主要项目采用。
- 资金支持: 由 OpenSSF(开源安全基金会)和个人捐赠支持。

GitHub:
- 角色: 提供 CI/CD 运行时(GitHub Actions)和 OIDC 身份提供商。
- 策略: GitHub 一直在大力推动供应链安全功能,包括 Dependabot、秘密扫描,以及现在与 Sigstore 的原生集成。他们有一个专门团队负责制品证明(artifact attestations)。
- 业绩记录: GitHub 的 Actions 平台已成为开源世界 CI/CD 的事实标准,每月运行超过 5000 万个工作流(截至 2024 年)。

签名解决方案对比:

| 特性 | Cosign(Sigstore) | Notary v2 | In-toto |
|---|---|---|---|
| 密钥管理 | 无密钥(OIDC) | 基于密钥 | 基于密钥 |
| 透明度日志 | Rekor(公开) | 可选 | 无 |
| 身份绑定 | CI/

更多来自 GitHub

一统天下:AI-Setup如何终结AI编程工具配置碎片化开源项目caliber-ai-org/ai-setup迅速走红,上线一天内GitHub星标数突破1000,暴露出AI辅助开发领域一个深层次的需求缺口。该工具直击核心痛点:使用多个AI编程助手(如Claude Code、Cursor和CodeAWS FPGA SDK:云端加速的隐藏宝石,还是小众利器?aws/aws-fpga 仓库是 AWS 官方开源的 FPGA 加速应用开发与部署工具包,专为 EC2 F1 实例设计。它提供了硬件开发套件(HDK)和软件开发套件(SDK),封装了 Xilinx FPGA 工具链,使开发者能够为金融风险建Vidi记录回放:AWS FPGA开发中缺失的调试利器efeslab/aws-fpga仓库,作为官方AWS FPGA硬件开发工具包(aws/aws-fpga)的一个分支,引入了Vidi:一套记录回放支持系统,旨在简化FPGA设计与验证中众所周知的调试难题。通过捕获并回放硬件状态,Vidi使工程查看来源专题页GitHub 已收录 2069 篇文章

时间归档

May 20262270 篇已发布文章

延伸阅读

Cosign GitHub Action:如何为 DevOps 自动化软件供应链安全sigstore/cosign-installer GitHub Action 正成为自动化软件供应链安全的关键枢纽。它将 Cosign 的加密签名能力无缝集成至 GitHub CI/CD 环境,大幅降低了实施强健制品验证的门槛,将复杂的安Sigstore Scaffolding:加速软件供应链安全落地的测试框架Sigstore Scaffolding 已成为软件安全生态中一个关键却低调的工具。它通过大幅降低测试 Sigstore 复杂加密基础设施的门槛,悄然推动着软件供应链安全在实际场景中的大规模应用。本文解析这一测试框架如何成为现实世界中 DeSigstore Fulcio如何以身份即密钥架构重构代码签名范式Sigstore的Fulcio组件正在彻底改写代码签名的规则。它通过OpenID Connect身份颁发短期证书,消除了长期私钥管理的负担,开创了身份本身成为加密密钥的新范式。这标志着软件来源验证十年来最重大的架构变革。Sigstore Cosign 以无密钥签名革新软件供应链安全Sigstore 旗下的 Cosign 正从根本上重塑软件供应链安全,其核心突破在于移除了最棘手的障碍——密钥管理。通过创新的‘无密钥’签名模型,Cosign 为容器镜像和二进制文件实现了加密证明的自动化,创建了一个不可篡改、透明的软件来源

常见问题

GitHub 热点“Cosign and GitHub Actions: The Key to Secure Software Supply Chains”主要讲了什么?

The pstoeckle/cosign-test repository serves as a practical, hands-on example for developers and teams looking to adopt Cosign—a tool from the Sigstore project—within their GitHub A…

这个 GitHub 项目在“how to sign container images with cosign and github actions”上为什么会引发关注?

The pstoeckle/cosign-test repository is built on top of two key technologies: Sigstore and Cosign. Sigstore is a non-profit, open-source project that provides a public, transparent, and auditable system for signing and v…

从“cosign keyless signing github actions tutorial”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 2,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。