Как создавать/добавлять пользователей в Jenkins Управление правами доступа

⚡ Умное резюме

Создание пользователей в Jenkins Это занимает четыре клика, но для назначения разных разрешений каждому из них требуется плагин «Стратегия авторизации на основе ролей», который заменяет единую глобальную роль, используемую во всех встроенных системах. Jenkins В противном случае, на счету находятся другие пользователи.

  • 🔘 Встроенное ограничение: Jenkins Можно создать множество пользователей сразу, но каждый из них получит одинаковые глобальные привилегии.
  • ☑️ Сначала плагин: Установите стратегию авторизации на основе ролей, затем перед появлением любого экрана выбора ролей переключитесь на стратегию авторизации на основе ролей.
  • Три типа ролей: Глобальные роли охватывают весь контроллер, роли элементов нацелены на задания и папки, а роли агентов — на машины сборки.
  • 🧪 Реализованный пример: На экране «Назначение ролей» создается роль разработчика, ей присваиваются права доступа, и она назначается пользователю guru99.
  • 🇧🇷 Сопоставление с образцом: Для обозначения роли элемента используется регулярное выражение, например, tester.*, поэтому каждое соответствующее задание или пользователь автоматически получает эту роль.
  • ⚙️ Правило безопасности: Всегда держите одну учетную запись в режиме "Общий/Администратор", иначе сохранение изменения роли может заблокировать доступ всем остальным пользователям.

Как создавать и добавлять пользователей в Jenkins и Управление разрешениями

Как правило, в крупной организации существует несколько отдельных команд, которые управляют и выполняют различные задачи. JenkinsОднако управление таким количеством пользователей и назначение им ролей может оказаться непростой задачей.

По умолчанию Jenkins Включает в себя очень простые параметры создания пользователей. Вы можете создать несколько пользователей, но назначить им только одинаковые глобальные роли и привилегии. Это не идеально, особенно для крупной организации.

Плагин ролевой стратегии Позволяет назначать разные роли и привилегии разным пользователям. Сначала вам потребуется установить плагин в вашей системе. Jenkins В данном пошаговом руководстве сначала рассматривается создание пользователя, затем плагин, а затем экраны ролей, которые он открывает.

Как создать/добавить пользователя в Jenkins

Ниже описаны шаги по созданию нового пользователя. Jenkins:

Шаг 1) Войдите в систему Jenkins Главная

Вход в свой файл Jenkins панель управления, посетив http://localhost:8080/

Если вы не установили Jenkins На локальном сервере перейдите в соответствующую папку. URL и получите доступ к своей панели управления, используя свои учетные данные. Панель управления, на которую вы попадете, показана ниже.

Jenkins Панель управления открылась в браузере по адресу Jenkins путь установки

Шаг 2) Выберите вариант

Теперь вы увидите параметры для создания и добавления пользователя. Jenkins а также управлять текущими пользователями.

Управление Jenkins Экран с отображением параметров создания и управления пользователями.

Шаг 3) Создайте нового пользователя

  • Под управлением JenkinsНажмите «Создать пользователя».
  • Enter Jenkins Добавить данные пользователя, такие как пароль, имя, адрес электронной почты и т. д.
  • Нажмите Создать пользователя.

Шаг 4) Пользователь создан.

На панели управления вы увидите новый Jenkins Пользователь создан в соответствии с введенными данными, как показано в списке пользователей ниже.

Список пользователей на Jenkins Панель управления после создания нового пользователя

⚠️ Примечание к версии: текущий Jenkins В списке релизов этот экран указан как Управление Jenkins > Пользователи , а не Управление пользователями, Создать пользователя Кнопка и поля на ней остаются неизменными, а экран существует только в течение определенного времени. Jenkins«Собственная база данных пользователей — это сфера безопасности, а управление учетными записями осуществляется извне с помощью LDAP или системы единого входа».

Как установить плагин «Стратегия ролей» Jenkins

Встроенный экран создания пользователей позволяет создавать учетные записи, но не предоставляет им различных прав доступа. Эта возможность появляется с плагином «Стратегия авторизации на основе ролей», который устанавливается следующим образом.

Существует два способа установки плагинов. Jenkins:

  1. Установка через ваш Jenkins приборная панель
  2. Загрузка плагина из Jenkins веб-сайт и его ручная установка.

Шаг 1)

  1. Перейдите на Управление Jenkins
  2. Нажмите на опцию «Управление плагинами».

Управление Jenkins страница с выделенной опцией управления плагинами

Шаг 2)

  1. На экране раздела «Доступные параметры» найдите «роль».
  2. Выберите рольСтратегия авторизации на основе плагин
  3. Нажмите на "Установить без перезагрузки» (убедитесь, что у вас есть активное подключение к Интернету)

В результатах поиска менеджера плагинов отображается плагин «Стратегия авторизации на основе ролей».

⚠️ Примечание к версии: путь теперь Управление Jenkins > Плагины и вкладка имеет название Доступные плагиныПоле поиска и название плагина одинаковы, поэтому описанные выше два шага по-прежнему актуальны.

Шаг 3)

После установки плагина отобразится статус «успешно», как показано на скриншоте установки ниже.

Экран установки плагина, отображающий статус успешного завершения установки плагина стратегии ролей.

Нажмите на Вернитесь на верхнюю страницу.

Шаг 4) Перейдите на Управление Jenkins -> Настроить глобальную безопасность -> В разделе Авторизация, выберите Ролевая стратегия. Нажмите СохраненоРаздел «Авторизация» выглядит следующим образом.

Раздел «Авторизация» на экране глобальной безопасности с выбранной «Стратегией на основе ролей».

В течении Jenkins Ссылка на эту страницу: Управление Jenkins > Безопасностьи сама страница по-прежнему озаглавлена Настройка глобальной безопасности с тем же выпадающим списком «Авторизация».

Типы ролей в плагине «Стратегия ролей»

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

Тип роли Объем Типичное использование
Глобальные роли Целый Jenkins контроллер, и они переопределяют все, что установлено в ролях элементов. администратор, авторизованная роль только для чтения, анонимный
Роли предметов Задания, конвейеры и папки, полное имя которых соответствует шаблону регулярного выражения. Предоставление одной команде прав на сборку и настройку только для своих собственных заданий.
Роли агента Создавайте агентов, соответствующих определенному шаблону. Предоставление команде возможности подключать или отключать собственных агентов.

В приведенном ниже руководстве используется глобальная роль для разработчик и роль предмета для тестерОбратите внимание на название: теперь плагин вызывает вторую область видимости. Роли предметов, потому что она охватывает папки и конвейеры, а также обычные задания. В более старых версиях — и на скриншотах ниже на этой странице — та же таблица обозначена соответствующим образом. Роли в проекте.

Как управлять пользователями и ролями в Jenkins

Ниже описаны шаги по управлению ролями и их назначению в Jenkins:

Шаг 1)

  1. Перейдите на Управление Jenkins
  2. Выбрать Управление и назначение ролей

Управление Jenkins Страница, отображающая раздел «Управление и назначение ролей», добавленный плагином.

Примечание: , что Управление и назначение ролей Эта опция будет видна только в том случае, если вы установили плагин стратегии ролей и переключили авторизацию на стратегию на основе ролей.

Шаг 2) Нажмите на Управление ролями для добавления новых ролей в зависимости от вашей организации.

Экран «Управление и назначение ролей» с опцией «Управление ролями».

Шаг 3) Чтобы создать новую роль под названием «разработчик»,

  1. Введите «разработчик» в поле «роль».
  2. Нажмите «Добавить», чтобы создать новую роль.
  3. Теперь выберите Jenkins Права доступа пользователя, которые вы хотите назначить роли «Разработчик».
  4. Нажмите кнопку Сохранить

Ниже представлена ​​сетка с флажками, которая отображается.

Экран «Управление ролями» с добавленной ролью разработчика и отмеченными для неё разрешениями.

Jenkins Группы разрешений, которые можно назначить роли

Флажки на экране «Управление ролями» сгруппированы по объекту, к которому применяется каждое разрешение. В таблице ниже объясняется, что контролирует каждая группа, что значительно упрощает предоставление минимально необходимых команде прав.

Группа разрешений Что оно предоставляет
В общем Права администратора, права на чтение и другие права, действующие в рамках всего контроллера. Администрирование Это полный контроль, поэтому предоставляйте его с осторожностью.
Полномочия Просмотр, создание и обновление сохраненных учетных данных.
Агент Настройка, подключение, отключение и удаление агентов сборки.
работа Создание, отмена, настройка, создание, удаление, чтение, рабочая область и перемещение заданий.
Run Удаление, повторное воспроизведение и обновление отдельной записи о сборке.
Детали Создание, настройка, удаление и чтение представлений панели мониторинга.
SCM Запуск сборки из хука системы контроля версий

Начинайте каждую новую должность с Общий/Прочитано плюс Работа/ЧтениеБез этих двух параметров авторизованный пользователь видит пустую панель управления, даже если отмечены другие разрешения, что является наиболее часто встречающейся причиной путаницы с этим плагином.

Как назначать роли в Jenkins

Шаг 1) Теперь, когда вы создали роли, давайте назначим их конкретным пользователям.

  1. Перейдите на Управление Jenkins
  2. Выберите «Управление и назначение ролей».

Открывается экран «Управление и назначение ролей», после чего появляется опция «Назначить роли».

Шаг 2) Добавим новую роль «разработчик» пользователю «guru99

  1. Установите флажок «Роль разработчика».
  2. Нажмите кнопку Сохранить

Экран «Назначение ролей» с отмеченным флажком «Роль разработчика» для пользователя guru99.

Вы можете назначить любую роль любому пользователю в соответствии с вашими потребностями.

Как создавать роли в проекте Jenkins

Глобальные роли применяются повсюду. Если разрешение должно применяться только к одному набору заданий, создайте вместо этого роль проекта — область действия, которую плагин теперь называет ролью элемента.

Вы можете создать роли для конкретного проекта в разделе Роли проекта.

Шаг 1) In Jenkins«Управление и назначение ролей»

  1. Введите роль «тестировщик»
  2. Добавьте к этому узор, добавив тестер.*, чтобы любому имени пользователя, начинающемуся с «тестировщика», была назначена указанная вами роль проекта.
  3. Нажмите кнопку Добавить
  4. Выберите привилегии
  5. Нажмите кнопку Сохранить

Заполненная таблица ролей проекта представлена ​​ниже.

В таблице «Роли проекта» указана роль тестировщика, а также введен шаблон «точка-звездочка» для тестировщика.

Шаблон представляет собой регулярное выражение, сопоставляемое с полным названием элемента, поэтому tester.* также соответствует папке с именем набор тестировщиков и всё, что находится внутри него. Протестируйте новый шаблон на тестовом проекте, прежде чем применять его к рабочему. проект фристайла или работа по прокладке трубопровода.

Матричная система безопасности против ролевой стратегии.

Стратегия на основе ролей — не единственный вариант авторизации в этом выпадающем списке. Jenkins Суда оснащены встроенной матричной системой безопасности, и для небольшой установки этого может быть вполне достаточно.

Точка сравнения Безопасность на основе матрицы Стратегия, основанная на ролях
Установка Встроенный Jenkins Требуется плагин «Стратегия авторизации на основе ролей».
Подразделение, в котором осуществляется работа Каждому пользователю или группе предоставляются права доступа напрямую. Права доступа принадлежат именованной роли, и пользователи привязаны к этой роли.
Добавление десятого пользователя Вся строка с разрешениями повторяется вручную. Отметьте один из пунктов в поле "Роль".
Контроль по каждому заданию Проектная матричная авторизация, настраиваемая для каждого задания отдельно. Один комплект одежды с заданным рисунком покрывает все задачи по подбору подходящего изделия.
Лучший вариант посадки Несколько пользователей с практически идентичным доступом Несколько команд, множество рабочих мест, доступ к ресурсам, который меняется в зависимости от перемещения людей.

Общее правило — количество повторений разрешения. Если один и тот же шаблон ввода используется для третьего пользователя, поддерживать роль становится дешевле — тот же аргумент, который подталкивает команды от выполнения разовых задач к регулярной проверке. Конвейер CI / CD.

Часто задаваемые вопросы (FAQ)

Необходимо соблюдение двух условий. Плагин «Стратегия авторизации на основе ролей» должен быть установлен, а в настройках авторизации на экране безопасности должен быть установлен режим «Стратегия на основе ролей». Запись остаётся скрытой до тех пор, пока не будет сохранён второй шаг.

Stop Jenkins, откройте config.xml в JENKINS_HOME и замените authorizationStrategy элемент с <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>Затем перезапустите систему. Всегда оставляйте одну учетную запись с правами «Общий/Администратор», чтобы избежать необходимости в этом.

Да. На экране «Назначение ролей» принимаются как имена групп, так и имена пользователей, поэтому группу LDAP или Active Directory можно привязать к роли один раз, а управление членством будет осуществляться исключительно в каталоге.

Инструменты машинного обучения сравнивают предоставленные разрешения с тем, что фактически использует каждая учетная запись, и отмечают неиспользуемые, что позволяет выявлять роли с избыточными привилегиями гораздо быстрее, чем при ручном чтении матрицы разрешений.

Второй пилот GitHub пишет Groovy или REST-запросы, которые создают роли массово и разрабатывают выражения шаблонов для ролей элементов. RevПеред запуском программа просматривает все созданные ею данные, поскольку неправильный шаблон незаметно расширяет доступ.

Счета находятся под JENKINS_HOME/usersодна папка на пользователя с config.xml Внутри. Роли и их права доступа находятся в основном файле. JENKINS_HOME/config.xmlТаким образом, резервное копирование этой папки сохранит обе папки.

Удалите учетную запись из списка пользователей, это удалит данные для входа, но не историю сборок. Чтобы отозвать доступ без удаления чего-либо, снимите флажок с роли для этого пользователя на экране «Назначение ролей» и сохраните изменения.

Да. Группа разрешений «Учетные данные» на экране «Управление ролями» включает в себя просмотр, создание и обновление сохраненных секретов, поэтому роли может быть разрешено запускать задание, но при этом ей может быть запрещено читать используемые ею учетные данные.

Подведем итог этой публикации следующим образом: