快速入门
本指南帮助新用户快速设置 Tekton Chains,以通过生成和验证加密签名来保护他们的 CI/CD 管道。
介绍
使用场景
Tekton Chains 通过自动生成构建产物的加密签名,帮助您保护软件供应链。本快速入门示例演示如何设置 Tekton Chains、生成签名密钥、运行简单任务及验证其签名。
预计阅读时间
10-15 分钟
重要说明
- 使用 Alauda Devops Pipelines Operator 时,Tekton Chains 默认安装在
tekton-pipelines命名空间中 - 签名密钥应安全管理;在生产环境中,建议使用密钥管理系统 (KMS)
- 本指南使用最简单的配置以便于演示
先决条件
- 一个通过 Alauda Devops Pipelines Operator 安装了 Tekton Pipelines 和 Tekton Chains 的 Kubernetes 集群
- 已安装并配置好访问您的集群的
kubectlCLI - 已安装
tkn(Tekton CLI) - 已安装
cosignCLI(用于密钥生成和签名验证)
流程概述
逐步说明
第 1 步:生成签名密钥
Tekton Chains 使用加密密钥签名产物。默认情况下,它在 Chains 命名空间中查找名为 signing-secrets 的秘密。
-
如果尚未安装 cosign,请进行安装。
-
生成一对密钥并将其存储为 Kubernetes 秘密:
系统会提示您输入一个密码,此密码将存储在秘密中。该命令还会在当前文件夹中生成一个公钥
cosign.pub,稍后在验证过程中将使用该公钥。 -
验证秘密是否已创建:
第 2 步:配置 Tekton Chains
默认情况下,Tekton Chains 配置为在 OCI 注册表中存储签名。为便于本快速入门,我们将其配置为将签名存储为 TaskRun 本身的注释。
-
配置 Chains 使用 Tekton 存储后端:
-
将格式设置为 in-toto(SLSA v0.2):
-
重新启动 Chains 控制器以应用更改:
第 3 步:运行示例任务
现在,让我们创建一个简单的 TaskRun,Chains 将自动对此进行签名。
-
创建一个简单的 Task 和 TaskRun:
TIP如果您在隔离环境中工作,请将镜像修改为包含
sh的本地镜像。 -
等待 TaskRun 完成:
等待状态显示为
Succeeded。
第 4 步:验证签名
TaskRun 完成后,Tekton Chains 将自动对此进行签名。让我们验证签名。
-
获取 TaskRun UID:
-
提取签名:
-
使用 cosign 验证签名:
如果成功,您将看到
Verified OK。 -
清理工作:
预期结果
完成此快速入门后:
- 您已拥有一个设置完好的 Tekton Chains 环境和签名密钥
- 您的 TaskRuns 在完成时会自动签名
- 您可以验证签名以确保构建的完整性
这展示了 Tekton Chains 的基本功能。在实际场景中,您会:
- 配置 Chains 签名容器镜像并在注册表中存储签名
- 在部署过程中设置验证步骤
- 可能使用云 KMS 进行更安全的密钥管理
有关更高级的配置,请参考 Tekton Chains 文档。