快速入门
本指南帮助新用户快速设置 Tekton Chains,通过为 Tekton TaskRuns 生成和验证加密签名,来保护其 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:生成签名密钥
更多详情请参见 签名密钥配置
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 提取 payload:
签名 Payload
-
使用 cosign 验证签名:
如果成功,你将看到
Verified OK。
预期结果
完成本指南后:
- 你已拥有一个可正常工作的 Tekton Chains 环境,并配置了签名密钥
- 当 TaskRuns 完成时,它们会自动签名
- 你可以验证这些签名,以确保构建的完整性
这展示了 Tekton Chains 的基础功能。在真实场景中,你通常会:
- 配置 Chains 为容器镜像签名,并将签名存储在你的镜像仓库中
- 在部署流程中设置一个验证步骤
- 视需要使用云端 KMS 以实现更安全的密钥管理