agenteye-enterprise; после предоставления доступа вашей организации каждый разработчик или оператор генерирует и обновляет свой собственный токен, что обеспечивает отслеживаемость и возможность отзыва доступа для каждого пользователя.
Установите токен как переменную окружения и учетные данные Docker один раз на машину:
Примечание о пользователе: GHCR игнорирует имя пользователя приdocker loginи выполняет аутентификацию полностью на основе токена, поэтому подойдет любое непустое значение. В этой документации используется-u xдля краткости; манифесты развертывания, создающие Kubernetes image-pull secret, могут использовать более описательное имя пользователя, такое какagenteye-enterprise. Оба варианта приняты.
Вариант A: Классический токен (Рекомендуется)
Классический токен — это наиболее надежный выбор для AgentEye, так как потокdocker login и загрузки образов GHCR имеет наиболее широкую и стабильную поддержку классических токенов. Двух областей действия достаточно для всего необходимого (загрузка образов и скачивание релизных ресурсов), поэтому вы аутентифицируетесь один раз и движетесь дальше без возни с реестром. Одна из них, read:packages, является истинно только для чтения; другая, repo, — единственная классическая область действия, предоставляющая доступ к приватным релизным ресурсам, и она намеренно широка — GitHub определяет ее как полный контроль (чтение и запись) приватных репозиториев.
1. Создайте токен
Перейдите в GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic).| Поле | Значение |
|---|---|
| Note | agenteye-<machine-or-team-name> (например agenteye-prod-server) |
| Expiration | Установите срок действия в соответствии с вашей политикой безопасности; 90 дней — разумное значение по умолчанию |
Примечание о метке: GitHub называет это поле Note для классических токенов и Token name для детализированных токенов. Они служат одной и той же цели: удобочитаемый идентификатор для последующего аудита и отзыва.
2. Выберите области действия
| Область действия | Зачем она нужна |
|---|---|
read:packages | Загружать Docker-образы из ghcr.io/agenteye-enterprise/ и скачивать ресурсы пакетов |
repo | Читать содержимое приватных репозиториев, исходные файлы и релизные ресурсы из agenteye-enterprise/releases. Это широкая область GitHub — полный контроль приватных репозиториев (чтение и запись), а не область только для чтения — это просто единственная классическая область, предоставляющая доступ к приватным релизным ресурсам |
3. Сгенерируйте и скопируйте токен
Нажмите Generate token и сразу скопируйте значение; оно отображается только один раз. Сохраните его в вашем менеджере секретов или окружении.Вариант B: Детализированный токен
Детализированные токены ограничивают доступ к конкретным репозиториям и разрешениям, что делает их наиболее жестким вариантом с принципом наименьших привилегий. Выберите этот путь, если политика безопасности вашей организации требует детализированных токенов.Примечание: Поддержка детализированных токенов в GHCR менее консистентна, чем для классических токенов. Еслиdocker loginилиdocker pullне работает после выполнения этих шагов, вернитесь к классическому токену (Вариант A).
1. Создайте токен
Перейдите в GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.| Поле | Значение |
|---|---|
| Token name | agenteye-<machine-or-team-name> (например agenteye-prod-server) |
| Expiration | Установите срок действия в соответствии с вашей политикой безопасности; 90 дней — разумное значение по умолчанию |
| Resource owner | agenteye-enterprise |
| Repository access | Only select repositories → agenteye-enterprise/releases |
2. Установите разрешения репозитория
В разделе Permissions → Repository permissions установите:| Разрешение | Доступ |
|---|---|
| Contents | Read-only |
| Packages | Read-only |
Примечание: Если образы контейнеров (ghcr.io/agenteye-enterprise/...) опубликованы как пакеты на уровне организации, а не как пакеты, связанные с репозиторием,docker loginможет завершиться ошибкой с разрешениями только на уровне репозитория. В этом случае добавьте разрешение на уровне организации: Permissions → Organization permissions → Packages: Read-only.
3. Что дает каждое разрешение
| Разрешение | Используется для |
|---|---|
| Contents: Read-only | Скачивания docker-compose.yml, релизных бинарников и Python-пакетов из agenteye-enterprise/releases |
| Packages: Read-only | Загрузки Docker-образов из ghcr.io/agenteye-enterprise/ |
4. Сгенерируйте и скопируйте токен
Нажмите Generate token и сразу скопируйте значение; оно отображается только один раз. Сохраните его в вашем менеджере секретов или окружении.Обновление токена
Плановое обновление токенов поддерживает отслеживаемость доступа и ограничивает радиус действия если учетные данные когда-либо утекут. Токены также могут истечь или быть отозваны в любой момент, поэтому обновление — это стандартный способ оставаться аутентифицированным. Чтобы обновить токен:- Сгенерируйте новый токен, используя описанные выше шаги.
- Обновите
AGENTEYE_TOKENв вашем окружении или менеджере секретов. - Заново аутентифицируйте Docker:
echo $AGENTEYE_TOKEN | docker login ghcr.io -u x --password-stdin - Отзовите старый токен в GitHub → Settings → Developer settings → Personal access tokens, затем откройте подраздел Tokens (classic) или Fine-grained tokens, соответствующий типу токена, и удалите его.
Проверьте ваш токен
Убедитесь, что токен работает перед интеграцией в развертывание, чтобы ошибки аутентификации обнаружились здесь, а не во время развертывания. Каждая команда проверяет одну из областей действия выше:docker login подтверждает область действия пакетов; загруженный файл подтверждает область действия содержимого.
Устранение неполадок
| Симптом | Вероятная причина | Решение |
|---|---|---|
docker login возвращает 401 | Токену не хватает Packages: Read-only (детализированный) или read:packages (классический) | Добавьте область действия пакетов и заново сгенерируйте |
curl возвращает 404 на исходные URL GitHub | Токену не хватает области действия Contents: Read-only или repo | Добавьте область действия содержимого и заново сгенерируйте |
gh release download возвращает 403 | Токен не авторизован для agenteye-enterprise/releases | Проверьте, что репозиторий включен в доступ репозитория детализированного токена, или используйте классический токен с областью действия repo |
| Токен принят, но образы не найдены | На детализированном токене отсутствует разрешение пакета на уровне организации | Добавьте разрешение на уровне организации Packages: Read-only |
support@exosphere.host.
