ConnectorsProxy
ConnectorsProxy — это ключевой компонент системы Connectors, который обеспечивает безопасный доступ к интегрированным инструментам внутри кластера Kubernetes без необходимости использования секретов. Он выступает в роли прокси-сервера, который обрабатывает аутентификацию и маршрутизацию запросов к реальным конечным точкам инструментов.
Содержание
Особенности
Доступ без секретов
ConnectorsProxy
позволяет клиентам получать доступ к ресурсам инструментов без необходимости напрямую работать с учетными данными для аутентификации. Это значительно повышает безопасность за счет:
- Исключения необходимости распространять учетные данные инструментов напрямую клиентам, используя краткоживущие токены, выдаваемые ServiceAccount.
- Предотвращения утечки учетных данных в логах или переменных окружения.
- Централизации управления учетными данными.
Автоматическое создание сервиса
При создании Connector ConnectorsProxy автоматически:
- Создает Kubernetes Service для целей проксирования.
- Назначает прокси-адрес в формате:
- разрешение по хосту:
http://c-{connector-name}.{namespace}.svc.cluster.local
- разрешение по пути:
http://c-{connector-name}.{namespace}.svc.cluster.local/namespaces/{namespace}/connectors/{connector-name}
- Записывает прокси-адрес в поле
status.proxy.httpAddress
объекта Connector.
Поддержка протоколов
ConnectorsProxy поддерживает различные протоколы и может обрабатывать разные типы интеграций инструментов:
- HTTP/HTTPS протоколы для REST API
- Git протокол с HTTP Authorization для репозиториев кода
- OCI протокол с Bearer Token Authorization для реестров контейнеров
Использование
Доступ к ресурсам инструментов
Для использования ConnectorsProxy клиентам следует:
- Использовать прокси-адрес вместо оригинального адреса инструмента.
- При необходимости настроить клиентов для работы через прокси.
- Получать доступ к ресурсам через прокси-конечную точку.
Пример для 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, обеспечивая полноценное решение для доступа без секретов:
- CSI Driver монтирует необходимые конфигурационные файлы.
- ConnectorsProxy обрабатывает фактическое проксирование запросов.
- Клиенты получают доступ к ресурсам без управления учетными данными.
Эта интеграция особенно полезна в сценариях, таких как:
- Операции git clone в Kubernetes Jobs
- Операции push/pull образов в Tekton Pipelines
- Доступ к API в пользовательских нагрузках
Вопросы безопасности
ConnectorsProxy повышает безопасность за счет:
- Централизации управления учетными данными.
- Предотвращения утечки учетных данных в нагрузках.
- Поддержки TLS-шифрования для прокси-соединений.
- Реализации корректной аутентификации и авторизации.