快速开始
本指南帮助新用户快速设置 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:生成签名密钥
更多详情请参考 Signing Key Configuration
Tekton Chains 使用加密密钥对产物进行签名。默认情况下,它会在 Chains 命名空间中查找名为 signing-secrets 的 Secret。
-
如果尚未安装,请安装 cosign
-
生成密钥对并以 Kubernetes Secret 形式存储:
TIP该密码将存储在
tekton-pipelines命名空间中的 Kubernetes Secretsigning-secrets中。 -
验证 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 并拥有签名密钥
- TaskRuns 完成时会自动被签名
- 您可以验证签名以确保构建的完整性
这展示了 Tekton Chains 的基本功能。在实际场景中,您还可以:
- 配置 Chains 为容器镜像签名并将签名存储在镜像仓库
- 在部署流程中设置验证步骤
- 可能使用云 KMS 以实现更安全的密钥管理