ctk_restapi#

Сервис Cluster Tool Kit Rest API предоставляет унифицированный программный интерфейс (REST API) для управления компонентами системы и контроля доступа. Он выступает в роли безопасного шлюза, абстрагируя пользователя от специфики среды запуска.

Сервис поддерживает два режима работы в зависимости от архитектуры инсталляции:

  • Cluster Mode (ctk_restapi): Работает внутри Kubernetes. Взаимодействует с Kubernetes API для управления подами и сервисами.

  • Standalone Mode (scheduler REST API): Работает как системная служба под управлением systemd. Взаимодействует с системными юнитами для управления процессами.

Основные функции и назначение#

  1. Единый интерфейс управления (Abstraction Layer)

Вместо прямого взаимодействия с низкоуровневыми инструментами (kubectl или systemctl), пользователь или внешняя система используют стандартные HTTP-запросы. Это позволяет:

  • Скрыть сложность инфраструктуры.

  • Предоставить только необходимый набор операций (например, только перезапуск конкретных сервисов), не открывая доступ ко всей системе.

  1. Ролевой доступ и управление правами (RBAC)

Сервис реализует гибкую модель разграничения прав. Можно настроить разрешения для пользователей на разных уровнях:

  • Просмотр (service:view): только получение статуса сервисов.

  • Управление (service:restart): право на перезапуск.

  • Гранулярный доступ: права на конкретные сервисы (например, service:NAME:all) или группы сервисов.

  1. JWT-аутентификация

Для обеспечения безопасности вместо использования системных сертификатов или ключей доступа применяются JWT-токены:

  • Разделение прав доступа без передачи системных учетных данных.

  • Контроль времени жизни сессии (TTL).

  • Возможность оперативного отзыва доступа.

  1. Аудит и логирование

Все действия, совершаемые через API, фиксируются в журнале. Для каждой операции сохраняется информация:

  • Кто совершил действие.

  • Когда и какой запрос был отправлен.

  • Причина выполнения операции (необязательное поле).

  1. Защита и стабильность (Rate Limiting)

Для предотвращения перегрузки системы и защиты от злоупотреблений реализованы механизмы ограничения запросов:

  • Лимиты на количество попыток аутентификации.

  • Общие ограничения на количество API-вызовов в единицу времени.

  1. Безопасность сетевого взаимодействия

  • CORS: Настройка разрешенных доменов для предотвращения запросов с недоверенных ресурсов.

  • Контроль заголовков: Строгая проверка состава и содержания HTTP-пакетов.