Авторизация в сервисах VictoriaMetrics (vmgateway)#
Авторизация в сервисах VictoriaMetrics (vmgateway) - это прокси-сервер для базы данных временных рядов (TSDB) VictoriaMetrics. Он предоставляет функции контроля доступа к токенам.
Контроль доступа#
Контроль доступа к токенам:
поддерживает дополнительный контроль доступа для каждой метки как для одиночной, так и для кластерной версий базы данных VictoriaMetrics;
обеспечивает доступ по
TenantIdв кластерной версии;обеспечивает раздельный доступ для записи/чтения/администрирования данных.
vmgateway поддерживает аутентификацию на основе jwt. С помощью jwt можно настроить полезную нагрузку для предоставления доступа определенным клиентам и меткам, а также для чтения/записи.
Пример конфигурации с информацией ID в файле auth.yml:
<IDexample1>:
labels_list:
- key: "username"
value: "<username1>"
- key: "email"
value: "username1@gmail.com"
permissions:
- read
- write
tenant:
id : <ID-tenant>
<IDexample2>:
labels_list:
- key: "username"
value: "<username2>"
permissions:
- read
Где:
<ID-tenant>- tenant ID определенного node для указанного пользователя (если не прописано - информация отправляется на случайные nodes);<IDexample1>- ID пользователя;<username1>- имя пользователя.
При запуске приложения vmgateway принимает запрос, проверяет файл конфигурации auth.yml, где расписаны все права каждого пользователя, и выдает пользователю необходимые права.
Сценарий проверки настройки аутентификации vmgateway:
Запустите VictoriaMetrics:
./bin/victoria-metrics --selfScrapeInterval=10sЗапустите vmgateway:
./bin/vmgateway -read.url http://localhost:8428 --write.url http://localhost:8428Извлеките информацию из базы данных:
curl 'http://localhost:8431/api/v1/series/count' -H 'Authorization: Bearer <token>>'Где
<token>- только информация об ID пользователя.vmgateway сравнивает информацию об ID пользователя с файлом настроек
auth.ymlи выдает пользователю права в соответствии с конфигурациейauth.yml.Запрос с неправильным токеном или без токена будет отклонен:
curl 'http://localhost:8431/api/v1/series/count' -H 'Authorization: Bearer incorrect-token'