(Optional) Проверка keyless signing
- Если вас интересует проверка keyless signing, вы можете продолжить чтение следующего материала.
- Для работы с содержимым этой главы требуется доступ к публичной сети.
- Однако вы можете использовать private Rekor services, если уже развернули их.
- Для этого метода требуется, чтобы среда имела доступ к Internet.
- Если вы развернули private Rekor services, вы также можете использовать эти возможности, скорректировав соответствующие настройки.
- Развертывание private Rekor services не входит в область применения этого документа, пожалуйста, обратитесь к соответствующей документации.
Хотя ACP (Alauda Container Platform) в настоящее время не предоставляет возможность развертывания private Rekor instances, она поддерживает интеграцию с Rekor services.
Здесь в качестве примера интеграции с public Rekor мы покажем, как использовать эти services. Если вы уже развернули private Rekor services, обратитесь к соответствующей документации для настройки.
Содержание
Обзор возможностейСценарии использованияПредварительные требованияОбзор процессаПошаговые инструкцииШаги 1-3: Базовая настройкаШаг 4: Повторно запустите pipeline для создания imageШаг 5: Получите rekor log indexШаг 6: Получите rekor signature с помощью curlШаг 7: Получите rekor signature с помощью rekor-cliШаг 8: Проверьте Rekor в KyvernoОжидаемые результатыСсылкиОбзор возможностей
Этот метод использует transparency logs для повышения безопасности, устраняя необходимость в управлении ключами:
- Настроить Tekton Chains для использования keyless signing.
- Использовать Tekton Task
buildahдля сборки image. - Настроить правила Kyverno для проверки keyless signature.
- Использовать image для создания Pod, чтобы проверить keyless signature.
Сценарии использования
В следующих сценариях необходимо обратиться к рекомендациям в этом документе:
- Реализация keyless signing и verification для container images в Kubernetes clusters
- Принудительное применение security policies для проверки image signatures без управления signing keys
- Настройка автоматической проверки transparency log в CI/CD pipelines
- Обеспечение provenance и integrity image через Rekor transparency logs
- Реализация controls безопасности supply chain путем проверки image signatures по public Rekor services
Предварительные требования
- Kubernetes cluster с установленными Tekton Pipelines, Tekton Chains и Kyverno
- Registry с включенной возможностью загрузки image
- Установленный и настроенный
kubectlCLI для доступа к вашему cluster - Установленный
cosignCLI tool - Установленный
jqCLI tool - Установленный
curl - Установленный rekor-cli
- Используется для проверки и взаимодействия с attestations, хранящимися на сервере Rekor transparency log.
Обзор процесса
Пошаговые инструкции
Шаги 1-3: Базовая настройка
Эти шаги идентичны руководству Quick Start: Signed Provenance. Пожалуйста, следуйте инструкциям в этом руководстве для выполнения следующих шагов:
-
Шаг 3: Configure Tekton Chains
Настройка transparency log в Tekton Chains
- Если у вас есть private Rekor services, вы можете установить
transparency.urlв URL вашего Rekor server.transparency.url: "<https://rekor.sigstore.dev>"
Подробнее о настройке см. в Transparency Log
Шаг 4: Повторно запустите pipeline для создания image
- Поскольку мы изменили настройку transparency log, нам нужно запустить новый pipeline run в Signed Provenance.
- Это позволит Tekton Chains создать записи transparency log для нового image и PipelineRun.
Шаг 5: Получите rekor log index
Получите rekor log index из аннотаций PipelineRun.
Шаг 6: Получите rekor signature с помощью curl
Если вам нужно просмотреть содержимое rekor signature, выполните следующую команду:
Это содержимое совпадает с attestation в image, что подтверждает подлинность и целостность содержимого image. Информацию об attestation можно получить из Rekor без необходимости использовать учетные данные registry image, что делает проверку более удобной и доступной.
Шаг 7: Получите rekor signature с помощью rekor-cli
Получите signature по log index
Получите signature по image digest
Шаг 8: Проверьте Rekor в Kyverno
Измените секцию keys в ClusterPolicy, чтобы добавить проверку Rekor.
Пояснение полей YAML
rekor: Конфигурация проверки rekor.ignoreTlog: Следует ли игнорировать transparency log.- Если
false, будет выполняться проверка rekor server.
- Если
url: URL rekor server.- Если не задан, будет использоваться сервер rekor по умолчанию
https://rekor.sigstore.dev.
- Если не задан, будет использоваться сервер rekor по умолчанию
pubkey: Публичный ключ signer.- Если не задан, публичный ключ будет получен с rekor server.
- Если rekor server private, необходимо получить публичный ключ с rekor server.
curl <https://rekor.sigstore.dev>/api/v1/log/publicKey
Если ваш image не подписан, Pod будет заблокирован.
Ожидаемые результаты
После завершения этого руководства:
- У вас будет рабочая конфигурация Tekton Chains для keyless signing и интеграции с Rekor
- Ваши container images будут автоматически подписываться, а их signatures будут сохраняться в Rekor transparency logs
- Подписи image можно будет проверять без управления signing keys
- В указанном namespace можно будет развертывать только images с действительными подписями в Rekor
- Вы реализуете механизм безопасности supply chain без ключей, проверяя image signatures через Rekor
Это руководство закладывает основу для внедрения keyless signing и verification в ваших CI/CD pipelines. В production environment вам следует:
- Настроить корректную изоляцию namespace и контроль доступа
- Настроить monitoring и alerting для сбоев проверки подписей
- Регулярно пересматривать и обновлять security policies
- Рассмотреть возможность развертывания private Rekor instances для повышения безопасности