Авторизация в сервисах 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:

  1. Запустите VictoriaMetrics:

    ./bin/victoria-metrics --selfScrapeInterval=10s
    
  2. Запустите vmgateway:

    ./bin/vmgateway -read.url http://localhost:8428 --write.url http://localhost:8428
    
  3. Извлеките информацию из базы данных:

    curl 'http://localhost:8431/api/v1/series/count' -H 'Authorization: Bearer <token>>'
    

    Где <token> - только информация об ID пользователя.

    vmgateway сравнивает информацию об ID пользователя с файлом настроек auth.yml и выдает пользователю права в соответствии с конфигурацией auth.yml.

  4. Запрос с неправильным токеном или без токена будет отклонен:

    curl 'http://localhost:8431/api/v1/series/count' -H 'Authorization: Bearer incorrect-token'