Як створити/додати користувачів у Jenkins & Керування дозволами

⚡ Розумний підсумок

Створення користувачів у Jenkins займає чотири кліки, але для призначення різних дозволів кожному з них потрібен плагін Role-based Authorization Strategy, який замінює єдину глобальну роль, що використовується кожною вбудованою 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 або єдиного входу керує обліковими записами зовні.

Як встановити плагін Role Strategy у Jenkins

Вбудований екран користувача створює облікові записи, але не може надавати їм різні дозволи. Ця можливість постачається з плагіном Role-based Authorization Strategy, який встановлюється наступним чином.

Існує два способи встановлення плагінів у Jenkins:

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

Крок 1)

  1. Перейдіть до керувати Jenkins
  2. Натисніть на опцію «Керування плагінами»

керувати Jenkins сторінка з виділеною опцією керування плагінами

Крок 2)

  1. На екрані доступних розділів знайдіть «роль».
  2. Виберіть рольстратегія авторизації підключати
  3. Натисніть на "Встановити без перезавантаження” (переконайтеся, що у вас активне підключення до Інтернету)

Результати пошуку менеджера плагінів, що містять плагін Role-based Authorization Strategy

⚠️ Примітка до версії: шлях зараз керувати Jenkins > Плагіни а вкладка має назву Доступні плагіниПоле пошуку та назва плагіна однакові, тому два вищезазначені кроки все ще застосовуються.

Крок 3)

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

Екран встановлення плагіна, що показує статус успішного встановлення плагіна стратегії ролей

Натисніть Повернутися на першу сторінку.

Крок 4) Перейдіть до керувати Jenkins -> Налаштувати глобальну безпеку -> під авторизація, вибрати Рольова стратегія. Натисніть на ЗберегтиРозділ «Авторизація» виглядає так.

Розділ авторизації на екрані глобальної безпеки з вибраною стратегією на основі ролей

В нинішній Jenkins посилання на цю сторінку є керувати Jenkins > Безпека, а сама сторінка все ще має заголовок Налаштування глобальної безпеки з тим самим випадаючим списком «Авторизація».

Типи ролей у плагіні Role Strategy

Після активації стратегії на основі ролей плагін пропонує три окремі області дії ролей. Вибір неправильної області дії є найпоширенішою причиною, чому дозвіл не має ефекту, тому варто знати, що охоплює кожна з них, перш ніж щось створювати.

Тип ролі Сфера Типове використання
Глобальні ролі Цілий Jenkins контролер, і вони перевизначають будь-що, встановлене в ролях елементів адміністратор, автентифікована роль лише для читання, анонімний
Ролі елементів Завдання, конвеєри та папки, повне ім'я яких відповідає шаблону регулярного виразу Надання одній команді прав на створення та налаштування лише для власних завдань
Ролі агентів Створення агентів, що відповідають шаблону Дозвіл команді підключати або відключати власних агентів

У наведеному нижче посібнику використовується глобальна роль для розробник та роль елемента для тестерЗверніть увагу на назву: плагін тепер викликає другу область видимості. Ролі елементів, оскільки він охоплює як папки та конвеєри, так і звичайні завдання. Старіші випуски — і знімки екрана далі на цій сторінці — позначають ту саму таблицю Ролі в проєкті.

Як керувати користувачами та ролями в Jenkins

Нижче наведено кроки щодо керування ролями та їх призначення в Jenkins:

Крок 1)

  1. Перейдіть до керувати Jenkins
  2. Виберіть Керування та призначення ролей

керувати Jenkins сторінка, на якій показано запис «Керування та призначення ролей», доданий плагіном

Примітка: який Керування та призначення ролей Опція буде видимою, лише якщо ви встановили плагін стратегії ролей та переключили «Авторизація» на «Стратегія на основі ролей».

Крок 2) Натисніть Управління ролями щоб додати нові ролі на основі вашої організації.

Екран «Керування та призначення ролей» з опцією «Керування ролями»

Крок 3) Щоб створити нову роль під назвою «розробник»,

  1. У полі «роль» введіть «розробник».
  2. Натисніть «Додати», щоб створити нову роль.
  3. Тепер виберіть Jenkins дозволи користувача, які ви хочете призначити ролі «Розробник».
  4. Натисніть "Зберегти"

Сітка з позначками, що з’явиться, показана нижче.

Екран керування ролями з доданою роллю розробника та позначеними її дозволами

Jenkins Групи дозволів, які можна призначити ролі

Прапорці на екрані «Керування ролями» згруповані за об’єктом, на який діє кожен дозвіл. У таблиці нижче пояснюється, що контролює кожна група, що значно спрощує надання мінімальних дозволів, необхідних команді.

Група дозволів Що це надає
Загальний Адміністрування, читання та інші права для всього контролера. Адміністратор має повний контроль, тому надавайте його обережно.
Повноваження Перегляд, створення та оновлення збережених облікових даних
Агент Налаштування, підключення, відключення та видалення агентів збірки
робота Збірка, скасування, налаштування, створення, видалення, читання, робочий простір та переміщення завдань
прогін Видалення, відтворення та оновлення окремого запису збірки
вид Створення, налаштування, видалення та читання подань панелі інструментів
SCM Запуск збірки з перехоплювача системи керування версіями

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

Як розподілити ролі в Jenkins

Крок 1) Тепер, коли ви створили ролі, давайте призначимо їх конкретним користувачам.

  1. Перейдіть до керувати Jenkins
  2. Виберіть «Керувати та призначати ролі».

Відкрито екран «Керування та призначення ролей», щоб перейти до опції «Призначити ролі».

Крок 2) Ми додамо нову роль «розробник» для користувача «гуру99"

  1. Установіть прапорець для ролі розробника
  2. Натисніть "Зберегти"

Екран призначення ролей з позначеним прапорцем ролі розробника для користувача guru99

Ви можете призначити будь-яку роль будь-якому користувачеві відповідно до ваших потреб.

Як створити ролі проекту в Jenkins

Глобальні ролі застосовуються всюди. Якщо дозвіл має застосовуватися лише до одного набору завдань, створіть замість нього роль проекту — область дії, яку плагін тепер називає роллю елемента.

Ви можете створити ролі для конкретного проекту Ролі в проекті.

Крок 1) In JenkinsКерування та призначення ролей

  1. Введіть роль «тестер»
  2. Додайте до цього візерунок, додаючи тестер.*, тож будь-яке ім’я користувача, що починається з «тестер», буде призначено вказану вами проектну роль.
  3. Натисніть кнопку Додати
  4. Виберіть привілеї
  5. Натисніть "Зберегти"

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

Таблиця ролей проекту з роллю тестувальника та введеним шаблоном крапка-зірка тестувальника

Шаблон — це регулярний вираз, який зіставляється з повною назвою елемента, тому tester.* також відповідає папці з назвою набір тестувальників і все, що в ньому. Випробуйте новий візерунок на одноразовому завданні, перш ніж застосовувати його до реального проєкт у фрістайлі або робота з трубопроводу.

Матрична безпека проти рольової стратегії

Стратегія на основі ролей – не єдиний варіант авторизації в цьому випадаючому списку. Jenkins постачається з вбудованою матричною системою безпеки, і для невеликої установки цього може бути достатньо.

Точка порівняння Матрична безпека Рольова стратегія
Встановлення Вбудований Jenkins Потрібен плагін Role-based Authorization Strategy
Одиниця призначення Кожному користувачеві або групі надаються дозволи безпосередньо Дозволи належать до іменованої ролі, а користувачі прив'язані до цієї ролі
Додавання десятого користувача Весь рядок дозволів повторюється вручну Поставте позначку в одному полі для ролі
Контроль кожного завдання Матрична авторизація на основі проекту, налаштована для кожного завдання окремо Одна роль елемента зі шаблоном охоплює кожне відповідне завдання
Найкраще підходить Кілька користувачів з майже однаковим доступом Кілька команд, багато робочих місць, доступ, який змінюється в міру переміщення людей

Емпіричне правило — це кількість разів, коли дозвіл повторюється. Після того, як той самий шаблон галочок вводиться для третього користувача, роль дешевше підтримувати — той самий аргумент, який підштовхує команди від спеціальних завдань до перевірених. Конвеєр CI/CD.

Поширені запитання

Повинні бути виконані дві умови. Повинен бути встановлений плагін Role-based Authorization Strategy, а для параметра Authorization (Авторизація на основі ролей) на екрані безпеки має бути встановлено значення Role-based Strategy (Стратегія на основі ролей). Запис залишається прихованим, доки не буде збережено другий крок.

Стоп 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, тому резервне копіювання цієї папки зберігає обидва.

Видаліть обліковий запис зі списку користувачів, що призведе до видалення імені користувача, але не історії його створення. Щоб скасувати доступ, не видаляючи нічого, зніміть прапорець ролі для цього користувача на екрані «Призначити ролі» та збережіть зміни.

Так. Група дозволів «Облікові дані» на екрані «Керування ролями» охоплює перегляд, створення та оновлення збережених секретів, тому ролі можна дозволити виконувати завдання, але при цьому заборонити читання облікових даних, які вона використовує.

Підсумуйте цей пост за допомогою: