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