InkByteStudio/cicd-supply-chain-security
GitHub: InkByteStudio/cicd-supply-chain-security
整合 Sigstore 签名、SLSA 证明和 SBOM 的 CI/CD 供应链安全参考工作流与模板工具包。
Stars: 0 | Forks: 0
# CI/CD 供应链安全
使用 Sigstore、SLSA 和 SBOM 强化 CI/CD 流水线的参考工作流、脚本和模板。
这不是一个应用程序。它是一个包含工作流、脚本和模板的参考工具包,您可以将其复制到自己的 CI/CD 流水线中。每个文件都源自配套教程,旨在被复刻 (fork)、调整和扩展。
## 流程
```
Source → Build → Sign (Cosign) → Attest Provenance → Generate SBOM (Syft) → Attest SBOM → Verify → Deploy
```
## 包含内容
| 文件 | 用途 |
|---|---|
| `.github/workflows/release.yml` | 完整的 GitHub Actions 工作流:构建、推送、Cosign 签名、来源证明、SBOM 生成、SBOM 证明 |
| `scripts/deploy-verify-signature.sh` | 部署前签名验证关卡 |
| `scripts/deploy-verify.sh` | 综合部署前关卡:签名 + 来源 + SBOM 验证 |
| `templates/pipeline-inventory.yaml` | 流水线阶段清单模板 |
| `templates/third-party-trust-points.md` | 第三方信任点检查清单 |
| `templates/supply-chain-policy.yaml` | 最低策略基线(需要签名、来源、SBOM)|
| `templates/exception-request.md` | 策略例外工作流模板 |
## 前置条件
- GitHub Actions(或适配您的 CI 平台)
- [Cosign](https://docs.sigstore.dev/cosign/overview/) CLI
- [Syft](https://github.com/anchore/syft) SBOM 生成器
- 一个容器镜像仓库(示例使用 GHCR)
- GitHub CLI (`gh`) 用于证明验证
- [`jq`](https://jqlang.github.io/jq/) 用于 deploy-verify.sh 中的 SBOM 策略评估
- **镜像仓库身份验证** — 对 OCI 镜像执行 `gh attestation verify` 需要容器镜像仓库的读取权限。在调用验证脚本之前运行 `docker login`(对于 GHCR:`echo $GITHUB_TOKEN | docker login ghcr.io -u --password-stdin`)
## 快速开始
1. 复刻 (Fork) 本仓库
2. 将 `.github/workflows/release.yml` 复制到您的项目中
3. 更新环境变量:
- `IMAGE_NAME` — 您的容器镜像路径
- 镜像仓库登录凭据
4. 更新验证脚本中的证书身份以匹配您的仓库和工作流
5. 将 `scripts/deploy-verify.sh` 复制到您的部署流水线中
6. 查看并根据您的组织调整 `templates/supply-chain-policy.yaml`
## 适配您的流水线
- **不同的 CI 平台**:签名和验证模式是相同的。将 GitHub Actions 语法替换为您平台的等效语法。使用 Cosign 进行签名,并使用 `gh attestation verify` 或 `cosign verify-attestation` 进行验证。
- **不同的构件类型**:如果您发布发行版二进制文件而不是容器镜像,请使用 `cosign sign-blob` 并调整 SBOM 生成以扫描文件系统而不是镜像。
- **不同的 SBOM 格式**:如果您的工具首选 CycloneDX,请在 Syft 命令中将 `spdx-json` 替换为 `cyclonedx-json`。
- **Kubernetes 准入**:添加 Sigstore policy-controller 以进行准入时强制执行。
## 相关
- [教程:使用 Sigstore、SLSA 和 SBOM 强化您的 CI/CD 流水线](https://igotasite4that.com/tutorials/harden-cicd-pipeline-sigstore-slsa-sboms)
- [博客:AI 时代的软件供应链安全](https://igotasite4that.com/blog/software-supply-chain-security-ai)
## 许可证
MIT
标签:CI/CD 安全, Cosign, Cutter, DevSecOps, GitHub Actions, SBOM, Sigstore, SLSA, Syft, Web截图, 上游代理, 人工智能安全, 代码签名, 合规性, 安全基线, 容器安全, 工件完整性, 教学环境, 数据投毒防御, 来源证明, 硬件无关, 自动笔记, 请求拦截, 软件供应链安全, 远程方法调用, 部署验证