Сервисный аккаунт — это учётная запись, предназначенная для использования в автоматизированных скриптах. Такие аккаунты применяются в CI/CD-пайплайнах и интеграциях. Сервисный аккаунт нельзя использовать для аутентификации в веб-интерфейсе, а также для выполнения действий от его имени через имперсонацию.
Создание сервисного аккаунта
Rails-консоль
Сервисный аккаунт создаётся из Rails-консоли. Откройте консоль для используемого типа установки:
- Пакет для ОС Linux
- Omnibus Docker
- Helm-чарт
- Модуль Deckhouse Kubernetes Platform
sudo gitlab-rails consoledocker exec -it code gitlab-rails consolecode — имя контейнера из команды docker run в разделе «Быстрый старт».
d8 k -n code exec -it deploy/code-toolbox -- gitlab-rails consoleКонсоль входит в набор служебных инструментов Toolbox:
d8 k -n d8-code exec -it -c toolbox deploy/toolbox -- gitlab-rails console -e productionСоздание аккаунта
Используя Rails-консоль, подготовьте параметры с описанием создаваемого аккаунта. Заполните поля
name,username,emailиadminи задайте остальные параметры на основе следующего примера:user_args = { name: 'kaiten_sa', username: 'kaiten_sa', email: 'kaiten_sa@flant.com', admin: false, user_type: :service_account, organization_id: Organizations::Organization.default_organization.id, password_automatically_set: true, force_random_password: true, skip_confirmation: true }Выберите пользователя, от имени которого будет создан сервисный аккаунт, после чего выполните создание пользователя:
user = User.find_by_username('root') Users::CreateService.new(user, user_args).execute
Генерация токена доступа
Чтобы сгенерировать токен доступа, используйте Personal access tokens API от GitLab.