ctk_restapi#
Сервис Cluster Tool Kit Rest API предоставляет унифицированный программный интерфейс (REST API) для управления компонентами системы и контроля доступа. Он выступает в роли безопасного шлюза, абстрагируя пользователя от специфики среды запуска.
Сервис поддерживает два режима работы в зависимости от архитектуры инсталляции:
Cluster Mode (ctk_restapi): Работает внутри Kubernetes. Взаимодействует с Kubernetes API для управления подами и сервисами.
Standalone Mode (scheduler REST API): Работает как системная служба под управлением systemd. Взаимодействует с системными юнитами для управления процессами.
Основные функции и назначение#
Единый интерфейс управления (Abstraction Layer)
Вместо прямого взаимодействия с низкоуровневыми инструментами (kubectl или systemctl), пользователь или внешняя система используют стандартные HTTP-запросы. Это позволяет:
Скрыть сложность инфраструктуры.
Предоставить только необходимый набор операций (например, только перезапуск конкретных сервисов), не открывая доступ ко всей системе.
Ролевой доступ и управление правами (RBAC)
Сервис реализует гибкую модель разграничения прав. Можно настроить разрешения для пользователей на разных уровнях:
Просмотр (service:view): только получение статуса сервисов.
Управление (service:restart): право на перезапуск.
Гранулярный доступ: права на конкретные сервисы (например, service:NAME:all) или группы сервисов.
JWT-аутентификация
Для обеспечения безопасности вместо использования системных сертификатов или ключей доступа применяются JWT-токены:
Разделение прав доступа без передачи системных учетных данных.
Контроль времени жизни сессии (TTL).
Возможность оперативного отзыва доступа.
Аудит и логирование
Все действия, совершаемые через API, фиксируются в журнале. Для каждой операции сохраняется информация:
Кто совершил действие.
Когда и какой запрос был отправлен.
Причина выполнения операции (необязательное поле).
Защита и стабильность (Rate Limiting)
Для предотвращения перегрузки системы и защиты от злоупотреблений реализованы механизмы ограничения запросов:
Лимиты на количество попыток аутентификации.
Общие ограничения на количество API-вызовов в единицу времени.
Безопасность сетевого взаимодействия
CORS: Настройка разрешенных доменов для предотвращения запросов с недоверенных ресурсов.
Контроль заголовков: Строгая проверка состава и содержания HTTP-пакетов.