供应链安全是指保护软件开发生命周期从开发到部署的完整性、安全性和可靠性。Tekton Chains 旨在解决供应链安全问题,通过提供机制来验证 CI/CD 管道生成的工件是否未被篡改并且可以信任。
源头是包含关于软件工件的可验证信息的元数据,描述了它们的构建方式、所使用的源以及构建者。在 Tekton Chains 中,源头经过加密签名,以确保其完整性和真实性。
在 Tekton Chains 中有两种类型的源头:
SLSA(Supply-chain Levels for Software Artifacts)是一个安全框架,提供了一份标准和控制的清单,以防止篡改、提高完整性并保护包和基础设施。Tekton Chains 支持多种 SLSA 源头格式:
slsa/v1
或 in-toto
格式处理slsa/v2alpha3
和 slsa/v2alpha4
格式处理在 Tekton Chains 中,工件指的是构建过程中的输入和输出:
类型提示是 Tekton Chains 用于了解 TaskRun 或 PipelineRun 的输入和输出工件的机制。类型提示是遵循特定格式的特殊命名参数或结果:
CHAINS-GIT_URL
和 CHAINS-GIT_COMMIT
ARTIFACT_INPUTS
的参数或结果IMAGES
或后缀为 IMAGE_URL
和 IMAGE_DIGEST
的参数/结果ARTIFACT_OUTPUTS
的参数或结果签名是加密签署源头以确保其完整性和真实性的过程。Tekton Chains 支持多种签名方法:
存储后端是 Tekton Chains 存储生成的源头和签名的地方。支持的后端包括:
Tekton Chains 控制器是核心组件,观察 TaskRun 和 PipelineRun 的执行,捕获相关信息,并生成、签署和存储源头。它作为 Kubernetes 部署在 tekton-pipelines
命名空间中运行。