(Optional) Проверка подписей без ключей
- Если вас интересует проверка подписей без ключей, вы можете продолжить чтение следующего материала.
- Для работы с содержимым этой главы необходим доступ к публичной сети.
- Однако вы можете использовать приватные сервисы Rekor, если они у вас уже развернуты.
- Этот метод требует наличия доступа к Интернету.
- Если вы развернули приватные сервисы Rekor, вы также можете использовать эти возможности, настроив соответствующие параметры.
- Развертывание приватных сервисов Rekor не входит в рамки данного документа, пожалуйста, обратитесь к соответствующей документации.
Хотя ACP (Alauda Container Platform) в настоящее время не предоставляет возможности развертывания приватных экземпляров Rekor, он предлагает возможности интеграции с сервисами Rekor.
Здесь мы рассматриваем интеграцию с публичным Rekor в качестве примера, чтобы показать, как использовать эти сервисы. Если вы уже развернули приватные сервисы Rekor, пожалуйста, обратитесь к соответствующей документации для настройки.
Содержание
Обзор функцииСценарии использованияТребованияОбзор процессаПошаговые инструкцииШаги 1-3: Базовая настройкаШаг 4: Повторный запуск пайплайна для генерации образаШаг 5: Получение индекса журнала rekorШаг 6: Получение подписи rekor через curlШаг 7: Получение подписи rekor через rekor-cliШаг 8: Проверка rekor в KyvernoОжидаемые результатыСсылкиОбзор функции
Этот метод использует журналы прозрачности для повышения безопасности, устраняя необходимость управления ключами:
- Настроить Tekton Chains для использования подписей без ключей.
- Использовать задачу
buildahTekton для сборки образа. - Настроить правила Kyverno для проверки подписей без ключей.
- Использовать образ для создания Pod и проверки подписей без ключей.
Сценарии использования
Следующие сценарии требуют обращения к рекомендациям из этого документа:
- Реализация подписей без ключей и их проверки для контейнерных образов в Kubernetes кластерах
- Применение политик безопасности для проверки подписей образов без управления ключами подписи
- Настройка автоматической проверки журналов прозрачности в CI/CD пайплайнах
- Обеспечение происхождения и целостности образов через журналы прозрачности Rekor
- Внедрение контроля безопасности цепочки поставок путем проверки подписей образов с использованием публичных сервисов Rekor
Требования
- Kubernetes кластер с установленными Tekton Pipelines, Tekton Chains и Kyverno
- Реестр с разрешением на пуш образов
- Установленный и настроенный CLI
kubectlдля доступа к кластеру - Установленный CLI инструмент
cosign - Установленный CLI инструмент
jq - Установленный
curl - Установленный rekor-cli
- Используется для проверки и взаимодействия с аттестациями, хранящимися в сервере журналов прозрачности Rekor.
Обзор процесса
Пошаговые инструкции
Шаги 1-3: Базовая настройка
Эти шаги идентичны руководству Quick Start: Signed Provenance. Пожалуйста, следуйте инструкциям из этого руководства для:
-
Шаг 3: Настройка Tekton Chains
Настройка журнала прозрачности Tekton Chains
- Если у вас есть приватные сервисы Rekor, вы можете установить
transparency.urlв URL вашего сервера Rekor.transparency.url: "<https://rekor.sigstore.dev>"
Более подробную информацию о настройке смотрите в разделе Transparency Log
Шаг 4: Повторный запуск пайплайна для генерации образа
- Поскольку мы изменили конфигурацию журнала прозрачности, необходимо запустить новый пайплайн в Signed Provenance.
- Это позволит Tekton Chains создать записи журнала прозрачности для нового образа и PipelineRun.
Шаг 5: Получение индекса журнала rekor
Получите индекс журнала rekor из аннотаций PipelineRun.
Шаг 6: Получение подписи rekor через curl
Если нужно просмотреть содержимое подписи rekor, выполните следующую команду:
Это содержимое совпадает с аттестацией в образе, которая подтверждает подлинность и целостность содержимого образа. Информацию об аттестации можно получить из Rekor без необходимости иметь учетные данные реестра образов, что делает проверку более удобной и доступной.
Шаг 7: Получение подписи rekor через rekor-cli
Получить подпись по индексу журнала
Получить подпись по дайджесту образа
Шаг 8: Проверка rekor в Kyverno
Измените раздел keys в ClusterPolicy, чтобы добавить проверку rekor.
Объяснение полей YAML
rekor: Конфигурация проверки rekor.ignoreTlog: Игнорировать ли журнал прозрачности.- Если
false, будет проверяться сервер rekor.
- Если
url: URL сервера rekor.- Если не указан, используется сервер по умолчанию
https://rekor.sigstore.dev.
- Если не указан, используется сервер по умолчанию
pubkey: Публичный ключ подписанта.- Если не указан, ключ будет получен с сервера rekor.
- Если сервер rekor приватный, необходимо получить публичный ключ с сервера rekor.
curl <https://rekor.sigstore.dev>/api/v1/log/publicKey
Если ваш образ не подписан, Pod будет заблокирован.
Ожидаемые результаты
После выполнения данного руководства:
- У вас настроена работа Tekton Chains для подписей без ключей и интеграции с Rekor
- Ваши контейнерные образы автоматически подписываются, а подписи сохраняются в журналах прозрачности Rekor
- Подписи образов можно проверять без управления ключами подписи
- В указанном пространстве имён можно развертывать только образы с действительными подписями в Rekor
- Вы реализовали контроль безопасности цепочки поставок без ключей, проверяя подписи образов через Rekor
Это руководство предоставляет основу для внедрения подписей без ключей и их проверки в ваших CI/CD пайплайнах. В производственной среде рекомендуется:
- Настроить правильную изоляцию пространств имён и контроль доступа
- Организовать мониторинг и оповещения о сбоях проверки подписей
- Регулярно пересматривать и обновлять политики безопасности
- Рассмотреть возможность развертывания приватных экземпляров Rekor для повышения безопасности