Основные концепции
Содержание
Безопасность цепочки поставокПроисхождениеРамки SLSAАртефактыПодсказки типовПодписаниеХранилищаКонтроллерБезопасность цепочки поставок
Безопасность цепочки поставок относится к защите целостности, безопасности и надежности жизненного цикла разработки программного обеспечения от разработки до развертывания. Tekton Chains разработан для решения вопросов безопасности цепочки поставок, предоставляя механизмы для проверки того, что артефакты, произведенные конвейерами CI/CD, не были изменены и могут быть надежными.
Происхождение
Происхождение — это метаданные, содержащие проверяемую информацию об артефактах программного обеспечения, описывающие, как они были созданы, какие источники были использованы и кто их создал. В Tekton Chains происхождение криптографически подписано, чтобы гарантировать его целостность и подлинность.
Существует два типа происхождения в Tekton Chains:
- Происхождение на уровне задачи: Захватывает детали конкретного выполнения TaskRun
- Происхождение на уровне конвейера: Захватывает все выполнение PipelineRun, включая все дочерние TaskRuns
Рамки SLSA
SLSA (Уровни цепочек поставок для артефактов программного обеспечения) — это рамки безопасности, предоставляющие контрольный список стандартов и средств контроля для предотвращения изменения, повышения целостности и защиты пакетов и инфраструктуры. Tekton Chains поддерживает несколько форматов происхождения SLSA:
- SLSA v0.2: Поддерживается через форматировщики
slsa/v1илиin-toto - SLSA v1.0: Поддерживается через форматировщики
slsa/v2alpha3иslsa/v2alpha4
Артефакты
Артефакты в Tekton Chains относятся к входным и выходным данным процесса сборки:
- Входные артефакты: Ресурсы, влияющие на процесс сборки, такие как репозитории исходного кода и зависимости
- Выходные артефакты: Ресурсы, произведенные в процессе сборки, такие как образы контейнеров
Подсказки типов
Подсказки типов — это механизм, используемый Tekton Chains для понимания входных и выходных артефактов TaskRun или PipelineRun. Подсказки типов — это специально названные параметры или результаты, которые следуют определенным форматам:
- Для входов Git:
CHAINS-GIT_URLиCHAINS-GIT_COMMIT - Для общих входов: Параметры или результаты с суффиксом
ARTIFACT_INPUTS - Для выходов изображений:
IMAGESили параметры/результаты с суффиксомIMAGE_URLиIMAGE_DIGEST - Для общих выходов: Параметры или результаты с суффиксом
ARTIFACT_OUTPUTS
Подписание
Подписание — это процесс криптографического подписания происхождения для обеспечения его целостности и подлинности. Tekton Chains поддерживает несколько методов подписи:
- x509: Использует стандартный сертификат x509 и закрытый ключ
- Cosign: Использует инструмент Cosign от Sigstore для подписи
- KMS: Использует службы управления ключами облачного провайдера
- Безключевое: Использует эфемерные ключи с удостоверяющим центром Fulcio
Хранилища
Хранилища — это места, где Tekton Chains хранит сгенерированное происхождение и подписи. Поддерживаемые хранилища включают:
- Tekton: Хранит в качестве аннотаций на TaskRun/PipelineRun
- OCI: Хранит в реестре OCI вместе с контейнерными изображениями
- GCS: Хранит в Google Cloud Storage
- DocDB: Хранит в документной базе данных
- Grafeas: Хранит в Grafeas/Container Analysis
Контроллер
Контроллер Tekton Chains — это основной компонент, который наблюдает за выполнениями TaskRun и PipelineRun, захватывает соответствующую информацию и генерирует, подписывает и хранит происхождение. Он работает как развертывание Kubernetes в пространстве имен tekton-pipelines.