Настройка аутентификации для приватных репозиториев
Это руководство предназначено специально для репозиториев GitLab. Шаги настройки адаптированы под требования аутентификации и API GitLab.
В этом руководстве объясняется, как настроить аутентификацию для приватных репозиториев в PAC. Приватные репозитории требуют учетных данных для аутентификации, чтобы PAC мог получить доступ и клонировать содержимое репозитория.
PAC использует аутентификацию для приватных репозиториев:
- Аутентификация через API Git-провайдера (
git_provider.secret): используется для операций с API, таких как создание вебхуков, обновление статуса PR и доступ к метаданным репозитория. PAC также автоматически создает секрет аутентификации для git clone на основе этого токена для использования в PipelineRuns.
Содержание
Предварительные требованияОбзорШаги настройкиШаг 1: Создайте токен доступа в GitLabШаг 2: Создайте Kubernetes SecretСоздание секрета для вебхука (опционально)Шаг 3: Обновите Repository CRПроверка доступа к приватному репозиториюПроверьте Repository CRПроверьте логи контроллера PACТестовый запуск PipelineУстранение неполадокПроверка ошибок аутентификацииТокен истекРекомендации по безопасности1. Управление токенами2. Управление секретами3. БезопасностьСледующие шагиПредварительные требования
Перед настройкой аутентификации для приватных репозиториев убедитесь, что у вас есть:
- Развернутый и запущенный компонент PAC
- Созданный Repository CR (Custom Resource) для вашего репозитория. Repository CR — это ресурс Kubernetes, который указывает PAC, какой Git-репозиторий отслеживать и как его настраивать
- Административный доступ для создания Kubernetes Secrets
- Токены доступа для вашего Git-провайдера
Repository CR — это пользовательский ресурс Kubernetes, который определяет:
- URL Git-репозитория для отслеживания
- Конфигурацию Git-провайдера (GitHub, GitLab и т.д.)
- Учетные данные для аутентификации
- Настройки вебхуков
- Настройки выполнения Pipeline
PAC отслеживает Repository CR и автоматически создает PipelineRuns при возникновении событий в настроенном Git-репозитории.
Обзор
PAC поддерживает аутентификацию для приватных репозиториев GitLab с использованием Personal Access Tokens (PAT) и HTTPS URL.
Шаги настройки
Выполните следующие шаги для настройки аутентификации для приватных репозиториев.
Шаг 1: Создайте токен доступа в GitLab
- Перейдите в GitLab → User Settings → Access Tokens
- Создайте токен с областью действия
api - Сгенерируйте и скопируйте токен
Шаг 2: Создайте Kubernetes Secret
Создайте секрет, содержащий ваш токен доступа GitLab:
Пример вывода:
Примечание: PAC будет использовать этот токен для операций с API Git-провайдера (управление вебхуками, обновление статуса PR и т.д.) и автоматически создаст секрет аутентификации для git clone на его основе.
Создание секрета для вебхука (опционально)
Если вы планируете настраивать вебхуки, создайте секрет для валидации вебхуков:
Рекомендации по безопасности:
- Храните токены надежно и используйте отдельные секреты для разных репозиториев или окружений
- PAC автоматически создает секреты аутентификации для git clone, поэтому создавать их вручную не нужно
Шаг 3: Обновите Repository CR
Обновите ваш Repository CR, чтобы указать секрет аутентификации:
Примечание: PAC использует git_provider.secret для операций с API и автоматически создает секрет аутентификации для git clone на его основе для использования в PipelineRuns.
Проверка доступа к приватному репозиторию
После настройки аутентификации проверьте, что PAC может получить доступ к вашему приватному репозиторию:
Проверьте Repository CR
Пример вывода (сокращенный):
Проверьте логи контроллера PAC
Ищите ошибки аутентификации или проблемы с подключением к Git-провайдеру.
Тестовый запуск Pipeline
Запустите тестовый pipeline, чтобы проверить доступ:
Пример вывода:
Проверьте, что PipelineRun создан успешно:
Пример вывода:
Устранение неполадок
Проверка ошибок аутентификации
Проблема: PAC не может получить доступ к приватному репозиторию.
Решения:
-
Проверьте права токена: Убедитесь, что токен GitLab имеет область действия
api -
Проверьте наличие секрета: Убедитесь, что секрет GitLab существует в правильном namespace:
Пример вывода:
-
Проверьте ключ секрета: Убедитесь, что секрет содержит ключ token:
Пример вывода (сокращенный, token закодирован в base64):
-
Проверьте Repository CR: Убедитесь, что ссылка на секрет в Repository CR указана корректно:
Пример вывода:
Токен истек
Проблема: Токен доступа истек.
Решения:
-
Сгенерируйте новый токен доступа у вашего Git-провайдера
-
Обновите Kubernetes Secret:
Пример вывода:
-
При необходимости перезапустите поды контроллера PAC:
Пример вывода:
Рекомендации по безопасности
1. Управление токенами
- Используйте отдельные токены: Используйте разные токены для разных репозиториев или окружений
- Устанавливайте срок действия: Задавайте срок действия токенов для повышения безопасности
- Регулярно обновляйте: Периодически меняйте токены доступа
- Ограничивайте области действия: Предоставляйте только минимально необходимые права
2. Управление секретами
- Используйте namespaces: Храните секреты в соответствующих namespaces
- RBAC: Используйте RBAC для контроля доступа к секретам
- Внешние менеджеры секретов: Рассмотрите использование внешних инструментов управления секретами (например, Sealed Secrets, Vault)
3. Безопасность
- Принцип наименьших привилегий: Предоставляйте минимально необходимые права
- Аудит доступа: Регулярно проверяйте, кто имеет доступ к репозиториям
- Мониторинг логов: Следите за логами контроллера PAC на предмет проблем с аутентификацией
Следующие шаги
- Configure Custom Certificates - Настройка пользовательских CA-сертификатов для самоподписанных сертификатов
- Advanced Repository Configuration - Узнайте о расширенных настройках репозитория
- Configure GitLab Repository - Руководство по настройке репозитория GitLab
- Common Issues - Руководство по устранению распространенных проблем