• Русский
  • Основные концепции

    Безопасность цепочки поставок

    Безопасность цепочки поставок относится к защите целостности, безопасности и надежности жизненного цикла разработки программного обеспечения от разработки до развертывания. 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.