本指南帮助新用户快速设置 Tekton Chains,通过为 Tekton TaskRuns 生成和验证加密签名,保障其 CI/CD 流水线的安全。
Tekton Chains 通过自动为构建产物生成加密签名,帮助您保障软件供应链的安全。本指南演示如何设置 Tekton Chains、生成签名密钥、运行简单任务并验证其签名。
10-15 分钟
tekton-pipelines
命名空间中kubectl
CLIcosign
CLI 工具jq
CLI 工具步骤 | 操作 | 说明 |
---|---|---|
1 | 生成签名密钥 | 创建用于签名产物的密钥对 |
2 | 配置 Tekton Chains | 设置 Chains 使用 Tekton 存储后端 |
3 | 运行示例任务 | 创建并运行一个简单的 TaskRun |
4 | 验证签名 | 提取并验证 TaskRun 的签名 |
更多详情请参考 Signing Key Configuration
Tekton Chains 使用加密密钥对产物进行签名。默认情况下,它会在 Chains 命名空间中查找名为 signing-secrets
的 Secret。
如果尚未安装,请安装 cosign
生成密钥对并以 Kubernetes Secret 形式存储:
该密码将存储在 tekton-pipelines
命名空间中的 Kubernetes Secret signing-secrets
中。
验证 Secret 是否创建成功:
通过应用以下配置,将 Tekton Chains 设置为以 Tekton 格式存储产物:
YAML 字段说明:
artifacts.oci.storage
:OCI 产物的存储类型。设置为空字符串表示跳过存储。artifacts.taskrun.format
:TaskRun 产物的格式。设置为 in-toto
表示使用 in-toto 格式。artifacts.taskrun.storage
:TaskRun 产物的存储类型。设置为 tekton
表示存储在 Tekton TaskRun 注解中。现在创建一个简单的 TaskRun,Chains 会自动为其签名。
创建一个简单的 TaskRun:
请将镜像 <registry>/ops/busybox:latest
替换为您实际想使用的镜像。
等待 TaskRun 完成:
等待状态显示为 Succeeded
。
TaskRun 完成后,Tekton Chains 会自动为其签名。现在验证该签名。
获取 TaskRun 的 UID:
提取签名:
使用 jq 提取负载:
使用 cosign 验证签名:
如果成功,您将看到 Verified OK
。
完成本指南后:
这展示了 Tekton Chains 的基本功能。在实际场景中,您还可以: