入门
本指南帮助新用户快速设置 Tekton Chains,通过为 Tekton TaskRun 生成和验证加密签名来保护其 CI/CD 流水线。
简介
使用场景
Tekton Chains 可通过自动为构建产物生成加密签名,帮助您保护软件供应链。本指南演示如何设置 Tekton Chains、生成签名密钥、运行简单任务并验证其签名。
预计阅读时间
10-15 分钟
重要说明
- 使用 Alauda Container Platform 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 提取负载:
Signature Payload
-
使用 cosign 验证签名:
如果成功,您将看到
Verified OK。
预期结果
完成本指南后:
- 您将拥有一个配置了 signing key 的可用 Tekton Chains
- 您的 TaskRuns 完成后会自动进行签名
- 您可以验证签名,以确保构建的完整性
这展示了 Tekton Chains 的基本功能。在实际场景中,您可以:
- 配置 Chains,为容器镜像签名,并将签名存储在 registry 中
- 在部署流程中设置验证步骤
- 考虑使用云 KMS,以实现更安全的密钥管理