Skip to content
说明为 Kit 制品签名
用法sbx kit sign REFERENCE [flags]

实验性

此命令为实验性功能。

实验性功能仅用于测试和反馈,其功能或设计可能在不同版本之间无预警地发生变化,也可能在未来的版本中被完全移除。

描述 ​

使用兼容 cosign 的 Sigstore 签名对 Kit 制品进行签名。

对于本地目录,会在 spec.yaml 旁边写入一个独立的签名包 kit.sig.bundle。对于 OCI 引用,签名会作为 OCI referrer 附加到 Kit 清单上。

默认使用无密钥签名(Fulcio + Rekor),这需要一个 OIDC 身份令牌。 在 CI 中,该令牌由检测到的平台自动签发(GitHub Actions、Buildkite、GCP、SPIFFE, 或磁盘上的投射式服务账号令牌)。在其他环境中,请用 --identity-token-file 或 --identity-token 提供一个令牌,或完成一次交互式的浏览器登录。 优先使用文件形式:进程参数可被本机的其他用户读取,并且会记录到 shell 历史中。 令牌绝不会从 SIGSTORE_ID_TOKEN 读取,因此任何能设置环境变量的程序都无法指定它。 如需使用基于密钥的签名,请用 --key 指定一个未加密的 PEM 私钥。

对于签名事件不能泄漏到公共日志的私有 Kit,请传入 --tlog-upload=false 以跳过 Rekor 透明日志。这只影响无密钥签名(基于密钥的签名从不上传到 Rekor), 并且要求签名配置提供时间戳权威,这样在短期证书过期后签名仍然可验证。 如需完全离线的私有签名,请优先使用带 --key 的基于密钥的签名。

选项 ​

选项默认值说明
--identity-token无密钥签名使用的 OIDC 身份令牌;默认使用当前的 CI 提供方,然后是交互式的浏览器登录
--identity-token-file保存 OIDC 身份令牌的文件;让令牌不出现在进程参数中
--key基于密钥的签名所使用的私钥(PEM);省略该选项即为无密钥签名
--tlog-uploadtrue把无密钥签名上传到 Rekor 透明日志;对于私有 Kit,请设为 false

全局选项 ​

选项默认值说明
--cloud改为调用 Docker Cloud Sandboxes API,而不是本地 sandboxd(支持的动词正在逐步增加,运行 sbx --cloud --help 查看当前列表)
-D, --debug启用调试日志
--no-input从不提示;需要应答的命令会直接失败,并给出应当运行的命令

示例 ​

console
# 对本地 Kit 目录进行无密钥签名
sbx kit sign ./my-kit/

# 对 OCI Kit 进行基于密钥的签名
sbx kit sign --key cosign.key ghcr.io/org/my-kit:1.0

# 进行无密钥签名,但不上传到公共透明日志
sbx kit sign --tlog-upload=false ghcr.io/org/private-kit:1.0

参见 ​

  • sbx kit — (实验性)管理 Kit 制品