Настройка доступа до NeuVector c использованием LDAP
В данной статье описывается процедура использования провайдера идентификации в StarVault по протоколу LDAP для доступа к OAuth приложениям на примере NeuVector.
1. Необходимые условия
-
У вас есть токен доступа к хранилищу секретов StarVault с привилегиями
root. -
У вас есть доступ к кластеру с учетной записью, имеющей роль
cluster-adminв Kubernetes. -
Модуль NeuVector установлен в вашем кластере.
-
Провайдер идентификации LDAP подключен в StarVault.
-
Ознакомьтесь со статьей Управление дополнительной конфигурацией приложения
2. Настройка доступа в StarVault
-
В веб-интерфейсе StarVault выберите вкладку Access, далее Groups.
-
Создайте группу и алиас.
-
Нажмите Create group.
-
В поле Name укажите имя группы так же, как группа названа в каталоге LDAP-сервера.
-
В поле Type укажите External.
-
Нажмите Create, чтобы создать группу. Откроется страница с параметрами созданной группы.
-
-
Нажмите Add alias.
-
В поле Name укажите имя алиаса так же, как группа названа в каталоге LDAP-сервера.
-
В поле Auth Backend выберете имя метода аутентификации LDAP.
-
Нажмите Create, чтобы создать алиас.
-
Для удобства и простоты администрирования рекомендуется использовать один алиас на одну сущность StarVault.
-
-
В веб-интерфейсе StarVault перейдите на вкладку Access → OIDC Provider → Assignments.
-
Нажмите Create assignment
-
В поле Name укажите любое имя, например название приложения к которому предоставляется доступ.
-
В поле Groups выберите группу созданную ранее.
-
Нажмите Create.
-
-
Перейдите на вкладку Access → OIDC Provider → Applications.
-
Выберите нужное приложение. В нашем случае
oidc-auth-neuvector. -
Нажмите Edit application
-
В поле Assignment name выберите ранее созданный Assignment.
-
Нажмите Update.
-
-
Перейдите на вкладку Access → OIDC Provider → Scopes.
-
Нажмите на Edit у параметра
email. -
Измените значение на
{ "email": {{identity.entity.name}} } -
Нажмите Update
-
3. Настройка доступа в NeuVector
-
В веб-интерфейсе Nova Container Platform выберите вкладку Ресурсы, далее Secrets.
-
Скопируйте значение
oidcinitcfg.ctmplиз секретаneuvector-init-template. -
Перейдите на вкладку Администрирование → CustomResourceDefinitions и выберите NeuvectorCluster.
-
Перейдите на вкладку Инстансы и выберите нужный вам NeuVector кластер.
-
На вкладке YAML добавьте патч в блок spec. Значение файла
oidcinitcfg.ctmplдолжно быть аналогичным значению из пункта 2.В блок group_mapped_roles добавьте соответствие нужной группы и роли.
Всего в NeuVector есть 3 группы по умолчанию.
-
admin
-
reader
-
ciops
При использовании примера ниже убедитесь, что в конце строк отсутствуют пробелы!
Пример
customPatches: - kustomizationName: nova-release-neuvector-main patches: - patch: |- kind: Secret apiVersion: v1 metadata: name: neuvector-init-template namespace: nova-neuvector stringData: oidcinitcfg.ctmpl: | {{- with secret "identity/oidc/provider/nova" }} always_reload: false Issuer: {{ .Data.issuer }} {{- end -}} {{ with secret "identity/oidc/client/oidc-auth-neuvector" }} Client_ID: {{ .Data.client_id }} Client_Secret: {{ .Data.client_secret }} {{ end -}} GroupClaim: groups Scopes: - openid - profile - email - groups Enable: true Default_Role: group_mapped_roles: - group: kubeadmins (1) global_role: admin - group: global-admins (2) global_role: admin group_claim: groups target: kind: Secret name: neuvector-init-template namespace: nova-neuvector1 Настройка доступа для kubeadmins. Изменять не нужно. 2 Пример добавления группы с определенной ролью. -