入门指南
本指南帮助新用户快速设置 Tekton Chains,通过为 Tekton TaskRun 生成和验证密码学签名来保护其 CI/CD 流水线。
简介
用例
Tekton Chains 可通过自动为构建产物生成密码学签名来帮助你保护软件供应链。本指南演示如何设置 Tekton Chains、生成签名密钥、运行一个简单任务,以及验证其签名。
预计阅读时间
10-15 分钟
重要说明
- 使用 Alauda Devops Pipelines Operator 时,Tekton Chains 默认安装在
tekton-pipelines命名空间中 - 签名密钥应妥善管理;在生产环境中,建议使用密钥管理系统(KMS)
- 本指南使用最简单的配置进行演示
前提条件
- 一个已安装 Tekton Pipelines 和 Tekton Chains 的 Kubernetes 集群
- 已安装并配置好用于访问集群的
kubectlCLI - 已安装
cosignCLI 工具 - 已安装
jqCLI 工具
流程概览
分步说明
步骤 1:生成签名密钥
更多详细信息,请参阅 Signing Key Configuration
Tekton Chains 使用密码学密钥对制品进行签名。默认情况下,它会在 Chains 命名空间中查找名为 signing-secrets 的 secret。
-
如果你尚未安装,请先安装 cosign
-
生成密钥对并将其存储为 Kubernetes secret:
TIP此密码将存储在
tekton-pipelines命名空间中名为signing-secrets的 Kubernetes secret 中。 -
验证 secret 是否已创建:
步骤 2:配置 Tekton Chains
通过应用以下配置,将 Tekton Chains 配置为以 Tekton 格式存储制品:
YAML 字段说明:
artifacts.oci.storage:OCI 制品的存储类型。设置为空字符串可跳过存储。artifacts.taskrun.format:taskrun 制品的格式。设置为in-toto以使用 in-toto 格式。artifacts.taskrun.storage:taskrun 制品的存储类型。设置为tekton以将其存储在 Tekton TaskRun 注解中。
步骤 3:运行示例任务
现在让我们创建一个简单的 TaskRun,Chains 会自动为其签名。
-
创建一个简单的 TaskRun:
TIP请将镜像
<registry>/ops/busybox:latest替换为你要使用的实际镜像。 -
等待 TaskRun 完成:
等待状态显示为
Succeeded。
步骤 4:验证签名
TaskRun 完成后,Tekton Chains 会自动为其签名。接下来我们验证该签名。
-
获取 TaskRun UID:
-
提取签名:
-
使用 jq 提取载荷:
签名负载
-
使用 cosign 验证签名:
如果成功,你将看到
Verified OK。
预期结果
完成本指南后:
- 你将拥有一个可正常工作的 Tekton Chains 环境,并配有签名密钥
- 当 TaskRun 完成时,它们会自动获得签名
- 你可以验证这些签名,以确保构建的完整性
这展示了 Tekton Chains 的基本功能。在实际场景中,你通常会:
- 配置 Chains 对容器镜像进行签名,并将签名存储在你的镜像仓库中
- 在部署流程中设置验证步骤
- 可能使用云端 KMS 进行更安全的密钥管理