虽然 ACP(Alauda Container Platform)当前不支持部署私有 Rekor 实例,但提供了与 Rekor 服务的集成能力。
这里以集成公共 Rekor 服务为例介绍如何使用这些服务。 如果您已部署私有 Rekor 服务,请参考相关文档进行配置。
该方法利用透明日志增强安全性,免去了密钥管理的需求:
buildah
Tekton 任务构建镜像。以下场景需要参考本文档指导:
kubectl
CLIcosign
CLI 工具jq
CLI 工具curl
步骤 | 操作 | 说明 |
---|---|---|
1 | 生成签名密钥 | 使用 cosign 创建用于签名工件的密钥对 |
2 | 设置认证 | 配置镜像仓库凭据以支持镜像推送 |
3 | 配置 Tekton Chains | 设置 Chains 使用 OCI 存储并配置签名 |
4 | 重新运行流水线 | 触发新的流水线运行以生成透明日志条目 |
5 | 获取 Rekor 日志索引 | 从 PipelineRun 注解中提取 Rekor 日志索引 |
6 | 使用 curl 验证 Rekor 签名 | 使用 curl 获取并验证 Rekor 签名 |
7 | 使用 Rekor CLI | 使用 rekor-cli 工具获取并验证签名 |
8 | 在 Kyverno 中验证 Rekor | 配置 Kyverno 策略进行 Rekor 验证 |
这些步骤与快速开始:签名溯源指南相同。请按照该指南完成:
配置 Tekton Chains 的透明日志
transparency.url
设置为您的 Rekor 服务器地址。
transparency.url: "<https://rekor.sigstore.dev>"
更多配置详情,请参考 Transparency Log
从 PipelineRun 的注解中获取 Rekor 日志索引。
如果需要查看 Rekor 签名的内容,可以执行以下命令:
该内容与镜像中的证明一致,用于验证镜像内容的真实性和完整性。 证明信息可从 Rekor 获取,无需镜像仓库凭据,方便验证。
通过日志索引获取签名
通过镜像摘要获取签名
修改 ClusterPolicy
的 keys
部分,添加 Rekor 验证配置。
rekor
:Rekor 验证配置。
ignoreTlog
:是否忽略透明日志。
false
,则会验证 rekor 服务器。url
:rekor 服务器的 URL。
https://rekor.sigstore.dev
。pubkey
:签名者的公钥。
curl <https://rekor.sigstore.dev>/api/v1/log/publicKey
如果镜像未签名,Pod 会被阻止创建。
完成本指南后:
本指南为在 CI/CD 流水线中实现零信任签名与验证提供了基础。在生产环境中,您应当: