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