ConnectorsProxy

ConnectorsProxy — это ключевой компонент системы Connectors, который обеспечивает безопасный доступ к интегрированным инструментам внутри кластера Kubernetes без необходимости использования секретов. Он выступает в роли прокси-сервера, который обрабатывает аутентификацию и маршрутизацию запросов к реальным конечным точкам инструментов.

Содержание

Особенности

Доступ без секретов

ConnectorsProxy позволяет клиентам получать доступ к ресурсам инструментов без необходимости напрямую работать с учетными данными для аутентификации. Это значительно повышает безопасность за счет:

  • Исключения необходимости распространять учетные данные инструментов напрямую клиентам, используя краткоживущие токены, выдаваемые ServiceAccount.
  • Предотвращения утечки учетных данных в логах или переменных окружения.
  • Централизации управления учетными данными.

Автоматическое создание сервиса

При создании Connector ConnectorsProxy автоматически:

  1. Создает Kubernetes Service для целей проксирования.
  2. Назначает прокси-адрес в формате:
    • разрешение по хосту: http://c-{connector-name}.{namespace}.svc.cluster.local
    • разрешение по пути: http://c-{connector-name}.{namespace}.svc.cluster.local/namespaces/{namespace}/connectors/{connector-name}
  3. Записывает прокси-адрес в поле status.proxy.httpAddress объекта Connector.

Поддержка протоколов

ConnectorsProxy поддерживает различные протоколы и может обрабатывать разные типы интеграций инструментов:

  • HTTP/HTTPS протоколы для REST API
  • Git протокол с HTTP Authorization для репозиториев кода
  • OCI протокол с Bearer Token Authorization для реестров контейнеров

Использование

Доступ к ресурсам инструментов

Для использования ConnectorsProxy клиентам следует:

  1. Использовать прокси-адрес вместо оригинального адреса инструмента.
  2. При необходимости настроить клиентов для работы через прокси.
  3. Получать доступ к ресурсам через прокси-конечную точку.

Пример для OCI Registry:

# Оригинальный адрес образа
harbor.example.com/test/abc:v1

# Прокси-адрес (разрешение по хосту)
c-harbor-connector.default.svc.cluster.local/test/abc:v1

# Прокси-адрес (разрешение по пути)
c-harbor-connector.default.svc.cluster.local/namespaces/default/connectors/harbor/test/abc:v1

Конфигурация

ConnectorsProxy можно настроить через определение ConnectorClass:

apiVersion: connectors.alauda.io/v1alpha1
kind: ConnectorClass
metadata:
  name: example
spec:
  proxy:
    ref:
      kind: Service
      name: connectors-proxy-service
      namespace: connectors-system

Интеграция с CSI Driver

ConnectorsProxy бесшовно работает с Connectors CSI Driver, обеспечивая полноценное решение для доступа без секретов:

  1. CSI Driver монтирует необходимые конфигурационные файлы.
  2. ConnectorsProxy обрабатывает фактическое проксирование запросов.
  3. Клиенты получают доступ к ресурсам без управления учетными данными.

Эта интеграция особенно полезна в сценариях, таких как:

  • Операции git clone в Kubernetes Jobs
  • Операции push/pull образов в Tekton Pipelines
  • Доступ к API в пользовательских нагрузках

Вопросы безопасности

ConnectorsProxy повышает безопасность за счет:

  1. Централизации управления учетными данными.
  2. Предотвращения утечки учетных данных в нагрузках.
  3. Поддержки TLS-шифрования для прокси-соединений.
  4. Реализации корректной аутентификации и авторизации.