Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

/sys/quotas/rate-limit

Конечная точка /sys/quotas/rate-limit используется для создания, редактирования и удаления квот ограничения частоты запросов.

1. Создание/обновление квоты ограничения частоты запросов

Данная конечная точка используется для создания квоты ограничения частоты запросов с идентификатором name. Квота ограничения частоты запросов должна включать значение rate с необязательным параметром path, который может быть монтированием, а также может дополнительно включать суффикс пути после монтирования для ограничения более конкретных путей API.

Метод

Путь

POST

/sys/quotas/rate-limit/:name

1.1. Параметры

  • name (string: "") - название квоты.

  • path (string: "") - путь к месту применения квоты.

  • rate (float: 0.0) - мксимальное количество запросов в заданном интервале, разрешенное правилом квоты. rate должен быть положительным числом.

  • interval (string: "") - продолжительность действия ограничения частоты запросов (по умолчанию "1s").

  • block_interval (string: "") - если установлено, то при достижении клиентом порогового значения ограничения частоты запросов клиенту будет запрещено выполнять дальнейшие запросы до истечения времени block_interval.

  • role (string: "") - если установлена квота, где path задает монтирование аутентификации с концепцией ролей (например, /auth/approle/), квота ограничит запросы на вход в систему с указанной ролью для этого монтирования. Запрос завершится ошибкой, если монтирование аутентификации не имеет концепции ролей или path не является монтированием аутентификации.

Пример тела запроса:
{
  "path": "",
  "rate": 897.3,
  "interval": "2m",
  "block_interval": "5m"
}
Пример запроса:
curl \
  --request POST \
  --header "X-Vault-Token: ..." \
  --data @payload.json \
  http://127.0.0.1:8200/v1/sys/quotas/rate-limit/global-rate-limiter

2. Удаление квоты ограничения частоты запросов

Квоту ограничения частоты запросов можно удалить с помощью name.

Метод

Путь

DELETE

/sys/quotas/rate-limit/:name

Пример запроса:
curl \
  --request DELETE \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/quotas/rate-limit/global-rate-limiter

3. Получение квоты ограничения частоты запросов

Квоту ограничения частоты запросов можно получить с помощью name.

Метод

Путь

GET

/sys/quotas/rate-limit/:name

Пример запроса:
curl \
  --request GET \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/quotas/rate-limit/global-rate-limiter
Пример ответа:
{
  "request_id": "d0870811-455d-3dfd-459f-aee016e6fb68",
  "lease_id": "",
  "lease_duration": 0,
  "renewable": false,
  "data": {
    "block_interval": 300,
    "interval": 2,
    "name": "global-rate-limiter",
    "path": "",
    "rate": 897.3,
    "role": "",
    "type": "rate-limit"
  },
  "warnings": null
}

4. Список квот ограничения частоты запросов

Данная конечная точка возвращает список всех квот ограничения частоты запросов.

Метод

Путь

LIST

/sys/quotas/rate-limit

Пример запроса:
curl \
  --request LIST \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/quotas/rate-limit
Пример ответа:
{
  "auth": null,
  "data": {
    "keys": ["global-rate-limiter", "kv-rate-limiter"]
  },
  "lease_duration": 0,
  "lease_id": "",
  "renewable": false,
  "request_id": "ab633ee1-a692-ba03-083b-f1bd91c51c28",
  "warnings": null,
  "wrap_info": null
}