Аутентификация для Chains
Содержание
ОбзорАутентификация в OCI registryСоздание учетных данных registryСоздайте Secret на основе существующих учетных данныхСоздайте Secret, указав учетные данные в командной строкеНастройка учетных данных с использованием podИспользование шаблона PodИспользование ServiceAccountАутентификация Fulcio для Keyless signingБазовая конфигурацияПользовательская конечная точка FulcioСсылкиОбзор
Аутентификация должна быть настроена, чтобы можно было воспользоваться следующими возможностями Chains:
- Отправка подписей в OCI registry после подписания образа
- Использование Fulcio для получения сертификатов подписи при использовании Keyless signing
Аутентификация в OCI registry
Чтобы отправлять данные в OCI registry, контроллер Chains будет искать учетные данные в двух местах:
- В pod, выполняющем вашу Task
- В service account, настроенной для запуска вашей Task
Создание учетных данных registry
Создайте Secret на основе существующих учетных данных
Если вы уже выполнили podman login, вы можете скопировать учетные данные, сохраненные в config.json, в Kubernetes.
Убедитесь, что для хранения учетных данных не используется внешний хранилище учетных данных, например встроенная связка ключей операционной системы, и что config.json имеет следующий формат:
Создайте Secret с config.json:
Создайте Secret, указав учетные данные в командной строке
Сначала вам потребуется доступ к учетным данным для вашего registry (в этом примере они находятся в файле credentials.json). Затем создайте Kubernetes secret типа kubernetes.io/dockerconfigjson:
Задайте ключ config.json
Настройка учетных данных с использованием pod
Использование шаблона Pod
Tekton поддерживает указание шаблона Pod для настройки Pod, в котором выполняется ваша Task. Вы должны передать шаблон Pod при запуске Task с помощью cli или встроить его в TaskRun.
Пример TaskRun, настроенного с использованием Secret registry-credentials:
Использование ServiceAccount
Предоставьте service account доступ к Secret:
Теперь Chains имеет права на push для любых TaskRun, выполняющихся под service account $SERVICE_ACCOUNT_NAME.
Secrets в атрибуте imagePullSecrets у ServiceAccount также принимаются во внимание. Однако другие компоненты Tekton могут этого не делать. Рекомендуемым подходом является атрибут secrets.
Аутентификация Fulcio для Keyless signing
- Для этого метода среде требуется доступ в Internet.
- Если вы развернули частные службы Fulcio, вы также можете использовать эти возможности, соответствующим образом настроив связанные параметры.
- Развертывание частных служб Fulcio не входит в область применения этого документа; обратитесь к соответствующей документации.
Базовая конфигурация
Стандартное развертывание будет работать с public Fulcio, если он установлен в кластере EKS или GKE. Вам нужно будет добавить следующее в раздел данных ConfigMap chains-config в namespace tekton-chains:
Пользовательская конечная точка Fulcio
Если вы используете собственный экземпляр Fulcio, его необходимо соответствующим образом настроить. Кроме того, нужно указать Chains на ваш экземпляр fulcio, добавив в chains-config следующее: