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