用途:Cosign 是 Sigstore 用于对容器镜像和 OCI 工件进行签名、验证及附加元数据的工具,支持基于密钥和基于无密钥(OIDC)两种签名方式,可与 Fulcio 证书颁发机构、Rekor 透明日志集成,用于构建容器供应链安全。
主要能力:生成并管理密钥对(可用 KMS);对镜像签名并附加注解;验证签名及注解;无密钥签名(交互式或 CI/CD 非交互式);按签名者身份(邮箱、GitHub Actions 工作流、正则)验证无密钥签名;附加并验证 SBOM、漏洞扫描和 SLSA 溯源证明;查询 Rekor 透明日志;通过 policy-controller 或 Kyverno 在 Kubernetes 准入阶段强制校验已签名镜像。
安装:go install github.com/sigstore/cosign/v2/cmd/cosign@latest;brew install cosign;或下载二进制并 chmod +x /usr/local/bin/cosign,最后用 cosign version 确认。
常用方式:基于密钥时先 cosign generate-key-pair,再 cosign sign --key cosign.key 镜像,验证用 cosign verify --key cosign.pub 镜像;无密钥时直接 cosign sign 镜像(需 OIDC),验证时指定 --certificate-identity 与 --certificate-oidc-issuer;证明用 cosign attest --type cyclonedx|vuln|slsaprovenance 附加,cosign verify-attestation 验证。
适用场景:CI/CD 流水线(如 GitHub Actions 配合 id-token: write 权限)签名镜像、生成并附加 SBOM、收集构建元数据、在 Kubernetes 集群中用准入策略限制仅允许可信镜像运行。
限制:资料未提供 Cosign 的具体版本要求、性能指标、收费或价格信息;需具备 Cosign CLI、Docker 或 Podman、OCI 兼容镜像仓库,以及用于无密钥签名的 OIDC 提供方账号。密钥保管、透明日志可用性等运行约束资料未展开说明。