Перейти к основному содержимому

Команды

В Semaphore UI каждый проект связан с командой (Team). Доступ к проекту имеют только члены команды и администраторы. У каждого участника команды есть одна или несколько ролей, которые определяют уровень доступа и доступные действия. Участник может делать всё, что разрешает любая из его ролей.

В редакции Enterprise встроенные роли можно расширить пользовательскими ролями, которые дают дополнительные, более точные права на конкретные шаблоны задач.

подсказка

Чтобы не потерять доступ к проекту, рекомендуется иметь как минимум двух участников команды с ролью Owner.

Раздел Team проекта состоит из двух вкладок: Members — пользователи и их роли, и Roles — пользовательские роли (Enterprise).

Участники команды

Встроенные роли​

Четыре встроенные роли:

  • Owner
  • Manager
  • Task Runner
  • Guest

Ниже приведено подробное описание каждой роли и её прав.

Owner​

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

  • Несколько владельцев
    У проекта может быть несколько владельцев, благодаря чему полными правами обладает более одного человека.

  • Последний владелец
    Проект не должен оставаться без владельца. Поэтому никто, кроме администратора, не может удалить последнего владельца из проекта или снять с него роль владельца. Последний владелец также не может сам выйти из проекта.

  • Управление другими владельцами
    Владельцы могут управлять всеми участниками команды (в том числе удалять их и менять их роли), включая других владельцев.

Manager​

  • Широкий контроль над проектом: у менеджеров практически те же права, что и у владельцев, что позволяет им выполнять большинство повседневных задач и управлять окружением проекта.

  • Менеджеры не могут:

    • Удалить проект.
    • Удалять владельцев или менять их роли.
  • Типичный сценарий: назначайте роль Manager опытным участникам команды, которым нужен широкий доступ, но не требуются полномочия удалять проект или управлять владельцами.

Task Runner​

  • Запуск задач: пользователи с ролью Task Runner могут выполнять любой шаблон задачи, существующий в проекте.

  • Доступ только на чтение к прочим ресурсам: запуская задачи, они имеют доступ только на чтение к остальным ресурсам — инвентарю, переменным, репозиториям и так далее.

  • Типичный сценарий: разработчики или инженеры QA, которым нужно запускать задачи и следить за ними, но не требуется изменять настройки проекта или управлять составом команды.

Guest​

  • Доступ только на чтение: гости имеют доступ только на чтение ко всем ресурсам проекта (например, просмотр логов, инвентарей, панелей).

  • Нет прав на запись: они не могут изменять настройки, запускать задачи или менять роли.

  • Типичный сценарий: заинтересованные лица или другие участники, которым нужно только просматривать статус и детали проекта, не внося изменений.


Расширенный RBAC Enterprise​

к сведению

Расширенный RBAC доступен в редакции Semaphore Enterprise, начиная с Semaphore v2.17.

Расширенный RBAC добавляет дополнительные права поверх четырёх встроенных ролей. Сами встроенные роли при этом не меняются. Если вы не создаёте пользовательские роли, проект работает точно так же, как в community-редакции.

С расширенным RBAC пользовательские роли могут давать отдельные права на уровне всего проекта. Кроме того, роли можно дать права на выбранные шаблоны задач. Это позволяет предоставить участнику команды доступ к нужным шаблонам, не повышая его встроенную роль.

Пользовательские роли​

Пользовательская роль — это роль, которую вы создаёте сами, с теми правами, которые выбираете. Вы назначаете её участнику так же, как встроенную роль. У участника может быть пользовательская роль отдельно или вместе со встроенной.

Пользовательские роли существуют на двух уровнях:

  • Глобальные роли определяются на уровне экземпляра и могут использоваться в любом проекте.
  • Роли проекта определяются внутри одного проекта и доступны только в нём.

Уровни прав​

Пользовательские роли дают права на двух уровнях:

  • Права на уровне проекта расширяют доступ пользователя во всём проекте. Вы выбираете их при создании роли.
  • Права на шаблон определяют действия над одним шаблоном задачи. Вы выбираете их на вкладке Permissions этого шаблона после добавления роли к нему.

Создание пользовательской роли​

Перед открытием формы роли выберите её уровень.

Глобальная роль​

Глобальные роли создаются один раз и могут назначаться пользователям в любом проекте. Создавать глобальные роли может только администратор экземпляра.

Откройте меню администратора в левом нижнем углу и выберите Roles.

В общем списке ролей экземпляра нажмите New Role.

Откройте Roles из меню администратора и выберите New Role

Роль проекта​

Роли проекта доступны только в том проекте, где они созданы. Создавать их могут владельцы и менеджеры проекта.

  1. Откройте проект и перейдите в Team > Roles.
  2. Нажмите New Role.

Вкладка Roles пуста, пока не создана первая роль проекта. На ней отображаются все роли проекта и находится кнопка New Role.

Настройка пользовательской роли​

Оба пути открывают одну и ту же форму роли. Настройте роль так, чтобы она соответствовала необходимому участнику команды доступу.

Диалог New Role с полями и флажками прав

ПолеОписание
NameПонятное человеку название роли.
SlugУникальный технический идентификатор, по которому на роль ссылаются. Может содержать латинские буквы, цифры, _ и -, не более 100 символов, например release_operator. Регистр букв не важен: Ops и ops — один и тот же slug. После создания роли slug изменить нельзя.
PermissionsПрава на уровне проекта, которые даёт роль.

Права на уровне проекта​

Выбирайте только те права на уровне проекта, которые действительно нужны роли:

ПравоОписание
Can run project tasksЗапуск задач проекта.
Can update projectИзменение основных сведений о проекте в Dashboard > Settings.
Can manage project resourcesУправление ресурсами проекта: шаблонами задач, репозиториями, инвентарём, окружениями, записями Key Store, расписаниями, интеграциями и раннерами. Это доступ на уровне всего проекта. Его нельзя ограничить отдельными ресурсами, кроме шаблонов.
Can manage project usersУправление составом проекта и назначением ролей.

Права на уровне проекта нельзя ограничить одним инвентарём, репозиторием, окружением или записью Key Store. Шаблоны задач — единственный тип ресурсов, поддерживающий точечное назначение ролей.

Доступ только к шаблонам

Чтобы создать точечную роль, добавляющую доступ только к выбранным шаблонам задач, не отмечайте ни одно право на уровне проекта. Тогда роль не добавляет собственных прав на уровне проекта. Добавьте её к нужным шаблонам и выберите там только те действия, которые роли необходимы.

Когда настройка роли завершена, нажмите Save.

Настройка доступа к конкретным шаблонам задач​

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

Откройте нужный шаблон

  1. Откройте Task Templates и выберите нужный шаблон.
  2. Перейдите на вкладку Permissions.

На вкладке Permissions перечислены роли, уже добавленные к шаблону.

Добавьте роль и выдайте права на шаблон

  1. Нажмите Add Role и выберите пользовательскую роль, которую нужно добавить к этому шаблону.
  2. Отметьте только те права на шаблон, которые нужны роли, например Can run tasks или Can update the template.

В этом примере используется ранее созданная роль без прав на уровне проекта. Вы можете выбрать любую пользовательскую роль, доступную в проекте.

Диалог прав на шаблон с выделенными нужными элементами

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

Существующий доступ к проекту

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

Назначение пользовательской роли в проекте​

После создания и настройки глобальной роли или роли проекта назначьте её нужному участнику команды:

  1. Откройте проект и перейдите в Team.
  2. Выберите поле ролей рядом с нужным участником.
  3. Выберите пользовательскую роль. У участника может быть несколько ролей.

Удаление роли, которая используется​

Если роль ещё назначена участникам или используется в правах шаблонов, Semaphore спросит подтверждение перед удалением и покажет, сколько участников, проектов и прав шаблонов это затронет. Выберите Delete with assignments, чтобы удалить роль и убрать её у всех. Участники, у которых нет другой роли, удаляются из своих проектов.

Если роль используется в сопоставлениях групп, диалог также показывает число этих сопоставлений. Удалить такую роль может только администратор, и её сопоставления групп удаляются вместе с ней.

Пока не поддерживается​

  • Точечные права для ресурсов, кроме шаблонов. На уровне отдельного ресурса пользовательскими ролями сегодня можно управлять только шаблонами.

Роли из сопоставлений групп Enterprise​

к сведению

Сопоставления групп доступны в редакции Semaphore Enterprise.

Администратор может дать роль в проекте всем участникам группы в вашем провайдере идентификации на странице Group mappings. Semaphore обновляет эти роли при каждом входе пользователя через провайдер идентификации. Подробнее см. Роли в проекте по группам.

На странице Team у такой роли есть значок замка. Наведите курсор на роль, чтобы увидеть провайдер и группу, например keycloak: devops.

  • Роль из сопоставления группы нельзя убрать на странице Team. Изменить сопоставления групп может только администратор.
  • Если удалить участника или убрать у него все роли, назначенные вручную, роли из сопоставлений групп сохраняются, и участник остаётся в проекте.

Управление участниками команды​

  • Приглашение новых участников: владельцы и менеджеры могут приглашать новых пользователей в команду и назначать им начальную встроенную роль.

  • Изменение ролей: владельцы всегда могут менять роль любого участника команды. Менеджеры могут менять роли пользователей Task Runner и Guest, но не других менеджеров или владельцев.

  • Удаление участников: владельцы и менеджеры могут удалять участников с более низкими ролями.

    • Владелец может удалить любого (включая других владельцев), кроме последнего владельца.
    • Менеджер может удалять пользователей Task Runner и Guest, но не других менеджеров или владельцев.

Рекомендации​

  1. Обеспечьте резервирование: назначайте роль Owner минимум двум людям, чтобы гарантировать непрерывный доступ и исключить единую точку отказа.
  2. Следуйте принципу наименьших привилегий:
    • Давайте участникам команды минимальную роль, необходимую для их задач.
    • Используйте роли Task Runner или Guest для тех, кому нужны только ограниченные права.
    • В редакции Enterprise предпочитайте пользовательские роли для выдачи доступа к конкретным шаблонам вместо повышения встроенной роли участника.
  3. Регулярно пересматривайте состав:
    • По мере изменения структуры команды заново оценивайте роли.
    • Отзывайте доступ или понижайте роли у пользователей, которым больше не нужны высокие привилегии.
  4. Поручайте повседневное администрирование менеджерам:
    • Оставьте роль Owner за небольшой группой с максимальными полномочиями.
    • Делегируйте рутинное управление проектом менеджерам, чтобы снизить риск случайных серьёзных изменений или удаления проекта.

Часто задаваемые вопросы​

1. Может ли владелец удалить другого владельца?​

Да, владелец может удалить любого другого владельца или изменить его роль, если только тот не является последним владельцем проекта.

2. Кто может удалить проект?​

Удалить проект могут только владельцы.

3. Могут ли менеджеры добавлять или удалять других менеджеров?​

Нет. Менеджеры могут добавлять и удалять только пользователей с ролями Task Runner или Guest. Для управления владельцами и другими менеджерами нужно быть владельцем.

4. Что будет, если я случайно удалю всех владельцев?​

Проект не должен оставаться без владельца. Поэтому никто, кроме администратора, не может удалить последнего владельца из проекта или снять с него роль владельца. Последний владелец также не может сам выйти из проекта. Если администратор удалит последнего владельца, проект продолжит работать, и администратор сможет добавить нового владельца на странице Team.

5. Могут ли гости запускать задачи?​

Нет. Гости имеют доступ только на чтение и не могут запускать задачи или управлять ими. В редакции Enterprise гостю можно выдать право запускать отдельные шаблоны через пользовательскую роль.

6. Заменяют ли пользовательские роли встроенные?​

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

7. Доступен ли расширенный RBAC в community-редакции?​

Нет. Расширенный RBAC требует подписки Semaphore Enterprise.