Ролевая модель управления доступом
Ролевая модель реализована на основе шаблона (подробнее — в разделе Шаблоны). Спецификация шаблона ролевой модели — templates.dev-platform.vk.team_casbinaccesscontrolconfigs.yaml.
Роли с правами и атрибутами доступа реализованы с помощью библиотеки Casbin.
Чтобы просмотреть текущую ролевую модель, выполните команду:
$ kubectl get casbinaccesscontrolconfigs.templates.dev-platform.vk.team -o yaml
Возможные права доступа для каждого ресурса VK Dev Platform приведены в таблице 1.
Ресурс VK Dev Platform | Обозначение в шаблоне | Возможные права доступа |
|---|---|---|
Проекты разработки |
|
|
Пользователи |
|
|
Репозитории |
|
|
Окружения |
|
|
Раннеры |
|
|
Хранилища артефактов |
|
|
Анализаторы кода |
|
|
Доски управления |
|
|
Вебхуки |
|
|
Описание прав доступа:
-
read— просмотр. -
write— создание, редактирование. Относительно пользователей — добавление пользователя в проект разработки. -
delete— удаление. Относительно пользователей — удаление пользователя из проекта разработки. -
security_attributes— редактирование атрибутов доступа (подробнее — в Руководстве пользователя VK Dev Platform в разделе Атрибуты доступа). -
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— редактирование репозитория.
-
Получите текущую ролевую модель и сохраните в файл:
$ kubectl get casbinaccesscontrolconfigs.templates.dev-platform.vk.team -o yaml > <РОЛЕВАЯ_МОДЕЛЬ>где
<РОЛЕВАЯ_МОДЕЛЬ>— путь до файла, куда будет сохранена текущая ролевая модель. -
В созданном файле отредактируйте роли:
- Создайте новую роль.
- Измените права и атрибуты доступа у существующей роли.
- Удалите существующую роль.
Используйте синтаксис библиотеки Casbin.
Возможные права доступа на каждый ресурс VK Dev Platform приведены в разделе Ресурсы VK Dev Platform и права доступа.
-
Загрузите файл с новой ролевой моделью в VK Dev Platform:
$ kubectl apply -f <РОЛЕВАЯ_МОДЕЛЬ>где
<РОЛЕВАЯ_МОДЕЛЬ>— путь до шаблона ролевой модели.