Права и учетные записи пользователей
Типы учетных записей пользователя VK Dev Platform приведены в таблице 1.
Тип | Описание |
|---|---|
Администратор VK Dev Platform | Первый пользователь VK Dev Platform, создается при развертывании VK Dev Platform. Имя учетной записи по умолчанию — Администрирует VK Dev Platform. Обладает доступом ко всем ресурсам VK Dev Platform во всех проектах разработки. Управляет:
|
Пользователи Портала управления разработкой | Создаются администратором VK Dev Platform. В рамках проекта разработки к ним применяется ролевая модель управления доступом |
Сервисный пользователь | Служебный пользователь, создается автоматически в каждом проекте разработки. Имя учетной записи генерируется автоматически в формате: Используется для взаимодействия внешних сервисов (инструментов автоматизации) с API VK Dev Platform |
Разграничение доступа пользователей к ресурсам VK Dev Platform обеспечивается ролевой моделью. В VK Dev Platform предусмотрены проектные роли. Назначаются в рамках проекта разработки через Портал управления разработкой. У каждой роли есть набор прав доступа, определяющий возможные действия над ресурсами VK Dev Platform.
Проектные роли в VK Dev Platform по умолчанию:
Teamlead— руководитель группы.Deplead— руководитель департамента.Project_manager— руководитель проекта.Developer— разработчик.Devops— DevOps.Qa— QA-инженер.Devsec— специалист ИБ.Techwriter— технический писатель.Product_manager— менеджер продукта.Analyst— аналитик.Architect— архитектор.Readonly— роль с правами на просмотр всех ресурсов VK Dev Platform и ресурсов интегрированных сервисов.Service-Account— сервисный пользователь.Admin— администратор проекта разработки.
Права доступа в VK Dev Platform:
-
read— просмотр. -
write— создание, редактирование. Относительно пользователей — добавление пользователя в проект разработки. -
delete— удаление ресурса VK Dev Platform. Относительно пользователей — удаление пользователя из проекта разработки. -
security_attributes— редактирование атрибутов доступа (подробнее — в разделе Атрибуты доступа Gitlab CE). -
deploy— развертывание инфраструктуры в окружении. -
undeploy— удаление инфраструктуры в окружении. -
gitlab:<РОЛЬ_В_GITLAB>— роль в проекте GitLab CE: Owner, Developer, Reporter, Maintainer (подробнее — в официальной документации GitLab). -
nexus:<РОЛЬ_В_NEXUS>— роль в репозитории Sonatype Nexus Repository Manager OSS:-
nexus:repository-viewer— роль с привилегиямиbrowseиread. -
nexus:repository-editor— роль с привилегиямиbrowse,read,edit,addиdelete.Подробнее о привилегиях — в официальной документации Sonatype Nexus Repository.
-
-
create_from_template— создание репозитория из шаблона. -
create_empty— создание пустого репозитория. -
update— редактирование репозитория.
В таблице 2 и таблице 3 приведена матрица прав доступа к ресурсам VK Dev Platform по умолчанию.
Проектная роль | Ресурс VK Dev Platform | ||||
Проекты разработки | Пользователи | Репозитории | Окружения | Раннеры | |
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
| |
|
|
|
| ||
|
|
|
| ||
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
Проектная роль | Ресурс VK Dev Platform | |||
Хранилища артефактов | Анализаторы кода | ALM-проекты | Интеграции | |
|
|
|
| |
|
|
|
| |
|
|
|
| |
|
|
|
| |
|
|
| ||
|
|
| ||
|
|
|
| |
|
| |||
|
| |||
|
|
| ||
|
|
| ||
|
|
|
| |
|
|
|
|
|
|
|
|
| |
Атрибуты доступа назначаются на репозиторий. Предоставляют пользователям, наделенным проектными ролями из таблицы 4, расширенные права доступа к проектам в Gitlab CE:
-
gitlab:developer— роль Developer в Gitlab CE. -
gitlab:maintainer— роль Maintainer в Gitlab CE.Описание ролей Gitlab CE приведено в официальной документации.
Роль | Атрибут | ||||
shared | docs | devops | qa | devsec | |
|
|
| |||
|
|
| |||
|
|
| |||
|
|
| |||
|
|
| |||
|
|
| |||
|
|
| |||
Без атрибутов доступа проектные роли имеют права на проекты в Gitlab CE, приведенные в разделе Матрица прав доступа.
Ролевая модель реализована на основе шаблона (подробнее — в разделе Управление шаблонами). Спецификация шаблона ролевой модели — templates.dev-platform.vk.team_casbinaccesscontrolconfigs.yaml.
Роли с правами и атрибутами доступа реализованы с помощью библиотеки Casbin (подробнее — в официальной документации).
Чтобы просмотреть текущую ролевую модель, выполните команду:
$ kubectl get casbinaccesscontrolconfigs.templates.dev-platform.vk.team -o yaml
-
Получите текущую ролевую модель и сохраните в файл:
$ kubectl get casbinaccesscontrolconfigs.templates.dev-platform.vk.team -o yaml > <РОЛЕВАЯ_МОДЕЛЬ>Здесь
<РОЛЕВАЯ_МОДЕЛЬ>— путь до файла, куда будет сохранена текущая ролевая модель. -
В созданном файле отредактируйте роли:
- Создайте новую роль.
- Измените права и атрибуты доступа у существующей роли.
- Удалите существующую роль.
Используйте синтаксис библиотеки Casbin.
Возможные права доступа на каждый ресурс VK Dev Platform приведены в разделе Возможные права доступа для ресурсов VK Dev Platform.
-
Загрузите файл с новой ролевой моделью в VK Dev Platform:
$ kubectl apply -f <РОЛЕВАЯ_МОДЕЛЬ>Здесь
<РОЛЕВАЯ_МОДЕЛЬ>— путь до шаблона ролевой модели.
Возможные права доступа для каждого ресурса VK Dev Platform приведены в таблице 5.
Ресурс VK Dev Platform | Обозначение в шаблоне | Возможные права доступа |
|---|---|---|
Проекты разработки |
|
|
Пользователи |
|
|
Репозитории |
|
|
Окружения |
|
|
Раннеры |
|
|
Хранилища артефактов |
|
|
Анализаторы кода |
|
|
ALM-проекты |
|
|
Вебхуки |
|
|