SuperAPI AI 工具集

implementing-sigstore-for-software-signing

通用与其它

查看项目

更新于 10-16 06:49

技能介绍

用途:使用 Sigstore 对容器镜像和软件制品进行无密钥签名与验证,建立可验证的构建来源,并通过 Rekor 透明日志审计签名事件。适用于 CI/CD 流水线、Kubernetes 准入控制等场景;不适用于需要离线或气隙签名、无法访问公共 Sigstore 基础设施且未部署私有实例,或法规要求特定密钥管理流程的环境。

主要能力:Cosign 支持无密钥签名(Fulcio 颁发约 10 分钟有效期的短期证书,绑定 OIDC 身份)、镜像与 blob 签名、签名验证、附加 in-toto 证明(SLSA 来源、SBOM、漏洞扫描结果)。Rekor 提供防篡改的追加式透明日志,可按身份、制品哈希或公钥检索并验证包含证明。Sigstore Policy Controller 或 Kyverno 可在 Kubernetes 准入时拒绝未签名或签名不符的镜像。

使用方式:安装 Cosign v2.4+,运行 cosign initialize 获取 TUF 信任根。签名镜像使用 cosign sign <IMAGE_DIGEST>,签名文件使用 cosign sign-blob <file> --bundle artifact.sigstore.json。CI 中可设置 SIGSTORE_ID_TOKEN 跳过浏览器认证。验证使用 cosign verify 并指定 --certificate-identity 与 --certificate-oidc-issuer,CI 身份可用 --certificate-identity-regexp。查询日志使用 rekor-cli search、get、verify,或调用 Rekor REST API。

限制与注意:签名应针对镜像摘要而非标签;验证时必须固定 OIDC 颁发者,避免使用过宽的 identity 正则;GitHub Actions 需 id-token: write 权限。验证失败会返回非零退出码,常见原因包括身份不匹配、证书过期且无有效 Rekor 时间戳、缺少 Rekor 条目或摘要不匹配。具体收费、私有部署细节及完整命令示例暂未提供。