Начало работы
Это руководство поможет новым пользователям быстро настроить Tekton Chains для защиты их CI/CD конвейеров путем генерации и проверки криптографических подписей для Tekton TaskRuns.
Содержание
ВведениеСценарии использованияОценочное время чтенияВажные замечанияТребованияОбзор процессаПошаговые инструкцииШаг 1: Генерация ключей подписиШаг 2: Настройка Tekton ChainsШаг 3: Запуск примерной задачиШаг 4: Проверка подписиОжидаемые результатыСсылкиВведение
Сценарии использования
Tekton Chains помогает защитить вашу цепочку поставок программного обеспечения, автоматически создавая криптографические подписи для артефактов сборки. В этом руководстве показано, как настроить Tekton Chains, сгенерировать ключ для подписи, запустить простую задачу и проверить её подпись.
Оценочное время чтения
10-15 минут
Важные замечания
- Tekton Chains устанавливается по умолчанию в пространстве имён
tekton-pipelinesпри использовании Alauda Devops Pipelines Operator - Ключи для подписи должны храниться в безопасности; в продуктивных средах рекомендуется использовать систему управления ключами (KMS)
- В этом руководстве используется самая простая конфигурация для демонстрационных целей
Требования
- Kubernetes кластер с установленными Tekton Pipelines и Tekton Chains
- Установленный и настроенный CLI
kubectlдля доступа к вашему кластеру - Установленный CLI инструмент
cosign - Установленный CLI инструмент
jq
Обзор процесса
Пошаговые инструкции
Шаг 1: Генерация ключей подписи
Для подробностей смотрите Signing Key Configuration
Tekton Chains использует криптографические ключи для подписи артефактов. По умолчанию он ищет секрет с именем signing-secrets в пространстве имён Chains.
-
Установите cosign, если он ещё не установлен
-
Сгенерируйте пару ключей и сохраните её как секрет Kubernetes:
TIPЭтот пароль будет сохранён в Kubernetes секрете с именем
signing-secretsв пространстве имёнtekton-pipelines. -
Проверьте, что секрет создан:
Шаг 2: Настройка Tekton Chains
Настройте Tekton Chains для хранения артефактов в формате Tekton, применив следующую конфигурацию:
Объяснение полей YAML:
artifacts.oci.storage: Тип хранилища для OCI артефактов. Пустая строка означает пропуск хранения.artifacts.taskrun.format: Формат артефакта taskrun. Установлен вin-totoдля использования формата in-toto.artifacts.taskrun.storage: Тип хранилища для артефактов taskrun. Установлен вtektonдля хранения в аннотациях Tekton TaskRun.
Шаг 3: Запуск примерной задачи
Теперь создадим простой TaskRun, который Chains автоматически подпишет.
-
Создайте простой TaskRun:
TIPПожалуйста, замените образ
<registry>/ops/busybox:latestна фактический образ, который вы хотите использовать. -
Дождитесь завершения TaskRun:
Ожидайте, пока статус не станет
Succeeded.
Шаг 4: Проверка подписи
После завершения TaskRun Tekton Chains автоматически подпишет его. Давайте проверим подпись.
-
Получите UID TaskRun:
-
Извлеките подпись:
-
Извлеките полезную нагрузку с помощью jq:
Полезная нагрузка подписи
-
Проверьте подпись с помощью cosign:
Если проверка успешна, вы увидите
Verified OK.
Ожидаемые результаты
После выполнения этого руководства:
- У вас настроен рабочий Tekton Chains с ключом для подписи
- Ваши TaskRuns автоматически подписываются после завершения
- Вы можете проверять подписи для обеспечения целостности сборок
Это демонстрирует базовый функционал Tekton Chains. В реальном сценарии вы бы:
- Настроили Chains для подписи контейнерных образов и хранения подписей в вашем реестре
- Добавили этап проверки в процесс деплоя
- Возможно, использовали облачный KMS для более безопасного управления ключами