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

Команды

В Semaphore UI каждый проект связан с командой. Доступ к проекту имеют только участники команды и администраторы. Каждому участнику команды назначается одна из четырёх встроенных ролей, которые определяют уровень доступа и допустимые действия.

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

подсказка

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

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

Каждый участник команды имеет ровно одну из этих четырёх ролей:

  • Owner
  • Manager
  • Task Runner
  • Guest

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

Owner

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

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

  • Ограничения на самоудаление
    Owner не может удалить себя, если он единственный Owner проекта. Это предотвращает ситуацию, когда проект остаётся без Owner.

  • Управление другими Owner
    Owner может управлять всеми участниками команды (включая удаление и изменение ролей), в том числе другими Owner.

Manager

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

  • Manager не может:

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

Task Runner

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

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

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

Guest

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

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

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


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

к сведению

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

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

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

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

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

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

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

Уровни разрешений

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

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

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

Выберите область действия, прежде чем открывать форму роли.

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

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

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

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

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

Роль проекта

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

  1. Откройте проект и перейдите в Team > Roles.
  2. Выберите New Role.

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

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

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

Диалог New Role с полями и флажками разрешений

ПолеОписание
NameПонятное человеку название роли.
SlugУникальный технический идентификатор, используемый для ссылки на роль. Используйте строчные буквы, цифры, подчёркивания или дефисы, например release_operator.
PermissionsРазрешения на уровне проекта, предоставляемые ролью.

Разрешения на уровне проекта

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

РазрешениеОписание
Can run project tasksЗапуск задач проекта.
Can update projectРедактирование основной информации о проекте в Dashboard > Settings.
Can manage project resourcesУправление ресурсами проекта: шаблонами задач, репозиториями, inventory, окружениями, записями хранилища ключей, расписаниями, интеграциями и runner'ами. Это доступ на уровне всего проекта. Его нельзя ограничить отдельными ресурсами, не являющимися шаблонами.
Can manage project usersУправление составом проекта и назначением ролей.

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

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

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

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

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

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

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

  1. Откройте Шаблоны задач и выберите целевой шаблон.
  2. Откройте вкладку Permissions.

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

Добавьте роль и предоставьте разрешения на шаблон

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

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

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

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

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

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

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

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

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

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

  • Сопоставление групп LDAP / OIDC. Пользовательские роли назначаются каждому пользователю отдельно. Сопоставление групп внешнего каталога с пользовательскими ролями не поддерживается.
  • Детальные разрешения для ресурсов, не являющихся шаблонами. На сегодняшний день пользовательские роли на уровне отдельного ресурса могут управлять только шаблонами.

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

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

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

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

    • Owner может удалить кого угодно (включая других Owner), но не может удалить себя, если он единственный Owner.
    • Manager может удалять Task Runner и Guest, но не других Manager или Owner.

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

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

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

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

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

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

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

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

Нет. Manager может добавлять или удалять только пользователей с ролями Task Runner или Guest. Чтобы управлять Owner или другими Manager, необходимо быть Owner.

4. Что произойдёт, если я случайно удалю всех Owner?

Semaphore UI не позволяет удалить Owner, если после этого в проекте не останется ни одного Owner. В любой момент должен существовать как минимум один Owner.

5. Может ли Guest запускать задачи?

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

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

Нет. Пользовательские роли расширяют встроенные роли дополнительными разрешениями на уровне проекта и шаблонов. Каждый участник команды по-прежнему имеет ровно одну встроенную роль.

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

Нет. Для расширенного RBAC требуется подписка Semaphore Enterprise.