(Необязательно) Проверка подписи без ключей
- Если вас интересует проверка подписи без ключей, продолжайте читать следующий материал.
- Содержимое этой главы должно иметь доступ к общедоступной сети.
- Однако, если вы уже развернули частные службы Rekor, вы можете использовать их.
- Этот метод требует, чтобы среда имела доступ к Интернету.
- Если вы развернули частные службы Rekor, вы также можете использовать эти возможности, скорректировав соответствующие настройки.
- Развертывание частных служб Rekor выходит за рамки этого документа, пожалуйста, обратитесь к соответствующей документации.
Хотя ACP (Alauda Container Platform) в настоящее время не предоставляет возможности развертывать частные экземпляры Rekor, она поддерживает интеграцию со службами Rekor.
Здесь мы рассмотрим интеграцию с публичным Rekor в качестве примера и покажем, как использовать эти службы. Если вы уже развернули частные службы Rekor, пожалуйста, обратитесь к соответствующей документации по настройке.
Содержание
Обзор функциональностиСценарии использованияПредварительные требованияОбзор процессаПошаговые инструкцииШаги 1–3: базовая настройкаШаг 4: Повторно запустите pipeline, чтобы создать образШаг 5: Получите индекс журнала rekorШаг 6: Получите подпись rekor с помощью curlШаг 7: Получите подпись rekor с помощью rekor-cliШаг 8: Проверьте rekor в KyvernoОжидаемые результатыСсылкиОбзор функциональности
Этот метод использует журналы прозрачности для повышения безопасности за счет исключения необходимости управления ключами:
- Настройте Tekton Chains для использования подписи без ключей.
- Используйте Tekton Task
buildahдля сборки образа. - Настройте правила Kyverno для проверки подписи без ключей.
- Используйте образ для создания Pod, чтобы проверить подпись без ключей.
Сценарии использования
В следующих сценариях требуется обратиться к руководству в этом документе:
- Реализация подписи и проверки без ключей для образов контейнеров в кластерах Kubernetes
- Применение политик безопасности для проверки подписей образов без управления ключами подписи
- Настройка автоматической проверки журнала прозрачности в CI/CD pipeline
- Обеспечение происхождения и целостности образов с помощью журналов прозрачности Rekor
- Реализация средств контроля безопасности supply chain путем проверки подписей образов через публичные службы Rekor
Предварительные требования
- Кластер Kubernetes, в котором установлены Tekton Pipelines, Tekton Chains и Kyverno
- Registry с включенной возможностью push образов
- Установленный и настроенный
kubectlCLI для доступа к вашему кластеру - Установлен инструмент
cosignCLI - Установлен инструмент
jqCLI - Установлен
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: Повторно запустите pipeline, чтобы создать образ
- Поскольку мы изменили конфигурацию журнала прозрачности, нам нужно запустить новый pipeline в Signed Provenance.
- Это позволит Tekton Chains создать записи журнала прозрачности для нового образа и PipelineRun.
Шаг 5: Получите индекс журнала rekor
Получите индекс журнала rekor из аннотаций PipelineRun.
Шаг 6: Получите подпись rekor с помощью curl
Если вам нужно просмотреть содержимое подписи rekor, выполните следующую команду:
Это содержимое совпадает с аттестацией в образе, что подтверждает подлинность и целостность содержимого образа. Информацию об аттестации можно получить из Rekor без необходимости использовать учетные данные registry образов, что делает проверку более удобной и доступной.
Шаг 7: Получите подпись rekor с помощью rekor-cli
Получить подпись по индексу журнала
Получить подпись по digest образа
Шаг 8: Проверьте rekor в Kyverno
Измените раздел keys в ClusterPolicy, чтобы добавить проверку rekor.
Пояснение полей YAML
rekor: Конфигурация проверки rekor.ignoreTlog: Нужно ли игнорировать журнал прозрачности.- Если
false, сервер rekor будет проверяться.
- Если
url: URL сервера rekor.- Если не задано, будет использоваться сервер rekor по умолчанию
https://rekor.sigstore.dev.
- Если не задано, будет использоваться сервер rekor по умолчанию
pubkey: Публичный ключ подписывающей стороны.- Если не задано, публичный ключ будет получен с сервера rekor.
- Если сервер rekor является частным, необходимо получить публичный ключ с сервера rekor.
curl <https://rekor.sigstore.dev>/api/v1/log/publicKey
Если ваш образ не подписан, Pod будет заблокирован.
Ожидаемые результаты
После завершения этого руководства:
- У вас будет рабочая конфигурация Tekton Chains для подписи без ключей и интеграции с Rekor
- Ваши образы контейнеров будут автоматически подписываться, а их подписи будут сохраняться в журналах прозрачности Rekor
- Подписи образов можно будет проверять без управления ключами подписи
- В указанном namespace можно будет развертывать только те образы, которые имеют действительные подписи в Rekor
- Вы реализуете контроль безопасности supply chain без ключей, проверяя подписи образов через Rekor
Это руководство закладывает основу для реализации подписи и проверки без ключей в ваших CI/CD pipeline. В production-среде рекомендуется:
- Настроить корректную изоляцию namespace и контроль доступа
- Настроить мониторинг и оповещения о сбоях проверки подписей
- Регулярно пересматривать и обновлять политики безопасности
- Рассмотреть возможность развертывания частных экземпляров Rekor для повышения безопасности