Валидация объектов ВЦОД
Подпись и валидация объектов используются для обеспечения контроля целостности (КЦ) объектов виртуальной инфраструктуры в Sharx Base.
Механизм работы основан на применении цифровой подписи.
При создании любого ВЦОД Sharx Base автоматически генерирует ключ цифровой подписи ВЦОД, который используется для контроля целостности объектов виртуальной инфраструктуры.
При создании любого пользователя — ключи и сертификат пользователя, которые используются для двухфакторной аутентификации пользователей.
Управление ключами ВЦОД управления
-
Чтобы посмотреть список ключей во ВЦОД управления, введите команду
-
Посмотреть подробную информацию о конкретном ключе можно с помощью команды
гдеkeyid— идентификатор ключа. Обязательный аргумент.
Отправка сертификатов пользователям и включение двухфакторной аутентификации
При создании пользователя внутри ВЦОД ему автоматически генерируется сертификат, который в будущем пользователь сможет использовать для двухфакторной аутентификации.
Важно
Перед включением двухфакторной аутентификации Администратор кластера обязан выслать сертификаты пользователям на почту
Чтобы включить двухфакторную аутентификацию, Администратору необходимо выполнить следующие шаги:
-
Создать маршрут, в котором указать шаблон сообщения (пример signer_template.yaml) и почтовые адреса пользователей.
Для корректной отправки сертификатов почтовые адреса в маршруте должны совпадать с почтовыми адресами пользователей, указанными при их создании. -
Добавить маршрут
где
notif_route— имя маршрута отправки уведомлений о событии. -
Отправить пользователям их сертификаты
где
login— логин пользователя. Обязательный аргумент. -
Включить вход во ВЦОД по сертификату
гдеcert— включение или выключение механизма входа пользователя по сертификату. По умолчанию —no. Возможные значения:yes— механизм входа пользователя по сертификату включен,no— механизм входа пользователя по сертификату выключен;
Примечание
После включения данного параметра при аутентификации пользователя необходимо будет дополнительно указывать параметр
--cert— идентификатор ключа сертификата пользователя, который получен пользователем в письме от Администратора.
Пример
-
Чтобы обновить сертификат пользователя, Администратор должен ввести следующую команду
где
-
login— логин пользователя. Обязательный аргумент. -
cert— включение или выключение механизма обновления сертификата пользователя. По умолчанию —no. Возможные значения:yes— механизм обновления сертификата пользователя включен, старый сертификат будет удален,no— механизм обновления сертификата пользователя выключен, сертификат пользователя не изменится;
Важно
После обновления сертификата пользователя необходимо:
- выполнить повторную отправку сертификата на почту пользователя;
- пользователю обновить на локальной машине свои сертификаты
-
Настройка клиентской машины для входа во ВЦОД с использованием сертификата
Примечание
Действия выполняет Клиент на своем АРМ
Перед началом работы с сертификатами пользователь должен убедиться, что у него установлены следующие пакеты:
-
libksba8_1.6.3;
-
gpgsm_2.2.40;
-
dirmngr_2.2.40.
Письмо от Администратора, полученное на почтовый адрес, содержит идентификатор ключа сертификата пользователя и 3 файла:
-
ns_cert — сертификат ВЦОД;
-
user_cert — сертификат пользователя;
-
secret — закрытый ключ пользователя.
Примечание
Для аутентификации пользователя во ВЦОД можно использовать идентификатор ключа <CERT_KEY>. По данному ключу сверяется сертификат на машине клиента с сертификатом, который есть во ВЦОД. Если они совпадают, то вход разрешается. Если нет, то выдается ошибка
После копирования приведенных выше файлов на свою машину необходимо выполнить следующие действия:
-
Импортировать сертификат ВЦОД
Посмотреть список загруженных сертификатов можно, используя команду
-
Создать файл
~/.gnupg/trustlist.txt, в который занестиfingerprintсертификата ВЦОД. В конце через пробел добавить буквуS.Пример
A5:0D:83:06:4A:E8:8E:D1:C9:EB:27:B4:5C:F6:A0:43:6F:8F:0C:59 S
-
Импортировать сертификат пользователя
-
Импортировать закрытый ключ пользователя
После выполнения вышеперечисленных шагов пользователю можно перейти к авторизации во ВЦОД.
Настройка валидации объектов ВЦОД
Для обеспечения контроля целостности на уровне виртуальной инфраструктуры ВЦОД необходимо настроить и включить валидацию объектов соответствующего ВЦОД.
-
Задайте параметры для настройки валидации ВЦОД
гдеsigner param add [--sign_enable <SIGN_ENABLE>] [--validation_action <VALIDATION_ACTION>] [--sign_models <SIGN_MODELS>] [--sign_objects <SIGN_OBJECTS>] [--sign_objects_exclude <SIGN_OBJECTS_EXCLUDE>]-
sign_enable— включение или выключение механизма валидации для объектов в рамках ВЦОД при обращении к ним. По умолчанию —no. Возможные значения:yes— механизм валидации включен,no— механизм валидации выключен;
-
validation_action— тип действия при обнаружении невалидного объекта. По умолчанию —ERROR. Возможные значения:ERROR— запрет на совершение операции и вывод сообщения об ошибке,WARN— отправка уведомления с возможностью дальнейшей работы;
-
sign_models— набор моделей, с которыми будет работать плагин sdc-plgn-signer; -
sign_objects— набор объектов, которые существуют в рамках ВЦОД и валидацию которых нужно осуществлять; -
sign_objects_exclude— набор объектов, которые нужно исключить из подписываемой модели и валидацию которых осуществлять не нужно.
Примечание
Если ввести команду без дополнительных аргументов —
signer param add, будут созданы пустые параметры со значениями аргументов по умолчанию -
-
Сгенерируйте ключ, которым будет осуществляться подпись объектов внутри ВЦОД. Для этого включите механизм валидации
гдеsign_enable— включение или выключение механизма валидации для объектов в рамках ВЦОД при обращении к ним. По умолчанию —no. Возможные значения:yes— механизм валидации включен,no— механизм валидации выключен.
Важно
В случае необходимости изменения параметров валидации вы можете это сделать с помощью команды
signer param update, указав изменяемые параметры. Эти параметры такие же, как и для командыsigner param add.Например, для выключения валидации, в том числе уже подписанных объектов, необходимо ввести команду
При повторном включении валидации будет сгенерирован новый ключ. После этого повторно добавьте объекты в отслеживаемые для обновления их подписи
-
Добавьте модели в список отслеживаемых
-
Посмотрите список доступных моделей
-
Добавьте модели в список отслеживаемых
где
models— список моделей, которые будут отслеживаться. Обязательный аргумент. Приmodels, равном*, все модели автоматически будут добавлены в отслеживаемые;-
force_sign— принудительная валидация уже существующих и создаваемых позже объектов. По умолчанию —no. Возможные значения:yes— принудительная валидация включена,no— принудительная валидация выключена.
Важно
Если объекты в модели существуют до того, как включается валидация, то дополнительно в команде укажите флаг
force_signсо значениемyes. Это принудительно подпишет уже существующие объекты.
Если внутри модели объектов нет, данный флаг указывать не нужно, все новые объекты будут отслеживаться автоматически.При обновлении ключа подписи (повторном включении механизма валидации) все модели, которые входят в параметры, необходимо повторно добавить с использованием флага
force_sign -
Чтобы удалить модели из отслеживаемых, введите команду
гдеmodels— список моделей, которые больше не будут отслеживаться. Обязательный аргумент. Приmodels, равном*, все модели автоматически не будут отслеживаться.
-
-
Добавьте объекты внутри моделей в список отслеживаемых.
Плагин позволяет добавлять в список не только модели целиком, но и их отдельные части — объекты.-
Посмотрите список всех доступных объектов внутри модели
гдеmodel— имя модели. Обязательный аргумент. -
Добавьте объекты в список отслеживаемых
где
pk— информация об объекте в формате JSON. Обязательный аргумент;-
force_sign— принудительная валидация уже существующих и создаваемых позже объектов. По умолчанию —no. Возможные значения:yes— принудительная валидация включена,no— принудительная валидация выключена.
Пример команды для добавления тома Libvirt в список отслеживаемых
-
Чтобы удалить объект из списка отслеживаемых, введите
гдеpk— информация об объекте в формате JSON. Обязательный аргумент.
-
-
Добавьте объекты в список исключений.
Плагин позволяет внести объект в список исключений для подписи.
Это означает, что все объекты модели при ее добавлении будут подписаны, а указанные в исключении объекты подписаны не будут и не будут отслеживаться.-
Чтобы добавить объект в список исключений, введите команду
гдеpk— информация об объекте в формате JSON. Обязательный аргумент. -
Чтобы удалить объект из списка исключений, введите команду
гдеpk— информация об объекте в формате JSON. Обязательный аргумент.
-
-
Информирование о нарушении валидации.
При нарушении валидации отслеживаемого объекта автоматически в журнал безопасности будет занесено соответствующее событие.Пример
{ "ctx_cluster": "sdcci6569", "ctx_ns": "vdc1", "data": "{\"pk\": {\"classpath\": \"scheduler_request\", \"pk\": {\"ctx_cluster\": \"sdcci6569\", \"ctx_ns\": \"vdc1", \"ctx_path\": \"/\", \"vcluster\": \"vcl1\", \"kind\": \"vm\", \"name\": \"test1\", \"uuid\": \"db8ef9f0-035c-4162-8aba-79026618a0fe\"}}}", "error": "Object was illegally modified. Signature is not valid", "event_time": "2024-09-09T08:52:04.050000+00:00", "group": "default", "level": "INFO", "login": null, "operation": "Object was illegally modified. Signature is not valid", "prop": null, "result": null, "session": null, "uuid": "9063f5ff-1194-4f26-8f40-3f222d70e48a" },Повторная автоматическая проверка произойдет через 24 часа после предыдущего обнаружения ошибки.
Каждое обращение пользователя к объекту будет приводить к дополнительной записи в журнал безопасности с информацией о том, что было обращение к объекту, у которого нарушена валидация. -
Чтобы удалить параметры валидации ВЦОД, введите команду
Важно
При удалении параметров, также как и при отключении валидации, ключ подписи удаляется.
При повторном создании параметров будет сгенерирован новый ключ
Оповещение пользователя о событиях КЦ
Платформа позволяет настроить оповещение Администратора кластера о регистрации заданных типов событий, в том числе о событиях нарушения контроля целостности. Оповещение осуществляется по электронной почте, подробнее настройка оповещений описана в разделе Уведомления Sharx Base.
Рекомендации по действиям Администратора кластера при нарушении контроля целостности
При получении сообщения о нарушении целостности объекта виртуальной инфраструктуры Администратору рекомендуется:
- Перевести контроль целостности на уровне виртуальной инфраструктуры в уведомительный режим (WARN).
- Удалить объект из перечня отслеживаемых.
- Провести анализ причин срабатывания контроля целостности на нарушение целостности объекта.
- В случае необходимости — пересоздать объект. Рекомендуется восстановить объект из резервной копии, если имеется актуальная резервная копия объекта.
Важно
Восстановить виртуальную машину из резервной копии пользователь Sharx Base c соответствующими правами может по инструкции в разделе Восстановить виртуальную машину Руководства пользователя.
Другие объекты можно восстановить из резервных копий, обратившись в Техническую поддержку ООО «Шаркс ДЦ»
Термины и определения содержатся в статьях: