(可选)零信任签名验证
TIP
- 如果您对零信任签名验证感兴趣,可以继续阅读以下内容。
- 本章节内容需要能够访问公网。
- 如果您已经部署了私有的 Rekor 服务,也可以使用私有服务。
虽然 ACP(Alauda Container Platform)当前不支持部署私有 Rekor 实例,但提供了与 Rekor 服务的集成能力。
这里以集成公共 Rekor 服务为例介绍如何使用这些服务。 如果您已部署私有 Rekor 服务,请参考相关文档进行配置。
目录
功能概述使用场景前提条件流程概览逐步操作指南步骤 1-3:基础设置步骤 4:重新运行流水线生成镜像步骤 5:获取 Rekor 日志索引步骤 6:使用 curl 获取 Rekor 签名步骤 7:使用 rekor-cli 获取 Rekor 签名步骤 8:在 Kyverno 中验证 Rekor预期结果参考资料功能概述
该方法利用透明日志增强安全性,免去了密钥管理的需求:
- 配置 Tekton Chains 使用零信任签名。
- 使用
buildahTekton 任务构建镜像。 - 配置 Kyverno 规则验证零信任签名。
- 使用镜像创建 Pod 以验证零信任签名。
使用场景
以下场景需要参考本文档指导:
- 在 Kubernetes 集群中实现容器镜像的零信任签名与验证
- 强制执行安全策略以验证镜像签名,无需管理签名密钥
- 在 CI/CD 流水线中设置自动透明日志验证
- 通过 Rekor 透明日志确保镜像来源和完整性
- 通过验证镜像签名与公共 Rekor 服务对接,实现供应链安全控制
前提条件
- 已安装 Tekton Pipelines、Tekton Chains 和 Kyverno 的 Kubernetes 集群
- 支持镜像推送的镜像仓库
- 已安装并配置好访问集群的
kubectlCLI - 已安装
cosignCLI 工具 - 已安装
jqCLI 工具 - 已安装
curl - 已安装 rekor-cli
- 用于验证和交互存储在 Rekor 透明日志服务器中的证明。
流程概览
逐步操作指南
步骤 1-3:基础设置
这些步骤与快速开始:签名溯源指南相同。请按照该指南完成:
-
配置 Tekton Chains 的透明日志
TIP
- 如果您有私有 Rekor 服务,可以将
transparency.url设置为您的 Rekor 服务器地址。transparency.url: "<https://rekor.sigstore.dev>"
更多配置详情,请参考 Transparency Log
步骤 4:重新运行流水线生成镜像
TIP
- 由于修改了透明日志配置,需要在签名溯源中触发新的流水线运行。
- 这样 Tekton Chains 才能为新的镜像和 PipelineRun 生成透明日志条目。
步骤 5:获取 Rekor 日志索引
从 PipelineRun 的注解中获取 Rekor 日志索引。
步骤 6:使用 curl 获取 Rekor 签名
如果需要查看 Rekor 签名的内容,可以执行以下命令:
该内容与镜像中的证明一致,用于验证镜像内容的真实性和完整性。 证明信息可从 Rekor 获取,无需镜像仓库凭据,方便验证。
步骤 7:使用 rekor-cli 获取 Rekor 签名
通过日志索引获取签名
通过镜像摘要获取签名
步骤 8:在 Kyverno 中验证 Rekor
修改 ClusterPolicy 的 keys 部分,添加 Rekor 验证配置。
YAML 字段说明
rekor:Rekor 验证配置。ignoreTlog:是否忽略透明日志。- 若为
false,则会验证 rekor 服务器。
- 若为
url:rekor 服务器的 URL。- 若未设置,默认使用
https://rekor.sigstore.dev。
- 若未设置,默认使用
pubkey:签名者的公钥。- 若未设置,将从 rekor 服务器获取公钥。
- 如果 rekor 服务器是私有的,需要从服务器获取公钥。
curl <https://rekor.sigstore.dev>/api/v1/log/publicKey
如果镜像未签名,Pod 会被阻止创建。
预期结果
完成本指南后:
- 您已成功搭建了支持零信任签名和 Rekor 集成的 Tekton Chains 环境
- 容器镜像会自动签名,签名存储于 Rekor 透明日志中
- 可以无需管理签名密钥验证镜像签名
- 只有在 Rekor 中具有有效签名的镜像才能在指定命名空间中部署
- 通过 Rekor 验证镜像签名,实现了零信任供应链安全控制
本指南为在 CI/CD 流水线中实现零信任签名与验证提供了基础。在生产环境中,您应当:
- 配置合适的命名空间隔离和访问控制
- 设置签名验证失败的监控和告警
- 定期审查和更新安全策略
- 考虑部署私有 Rekor 实例以增强安全性