Подсистема управления Pillars
Термины
- Pillar (также данные Pillar, мн. ч. Pillars) — запись с именем (
name) и значением (value), привязанная к некоторой цели (tgt_type/tgt_id) и окружениюpillarenv. - Аутентифицированный контекст (англ. Additional Authenticated Data, AAD) — это открытые (незашифрованные) данные, передаваемые вместе с зашифрованным сообщением, которые аутентифицируются вместе с ним для обеспечения целостности.
- Конвертное шифрование (англ. Envelope Encryption) — это метод защиты данных, при котором информация шифруется уникальным симметричным ключом данных (DEK), а сам этот ключ затем шифруется другим корневым ключом (KEK или CMK). Это позволяет безопасно хранить зашифрованные данные рядом с зашифрованным ключом, обеспечивая возможность ротации корневого ключа без перешифрования самих данных, высокую производительность шифрования данных и централизованное управление безопасностью.
- Слияние Pillars — это механизм объединения данных Pillar из разных SLS-файлов, окружений и источников в одну итоговую структуру, с применением заданной стратегии разрешения конфликтов ключей.
- Шифрование данных at rest — шифрование данных «в покое» — это метод защиты информации, когда она физически хранится на носителях: дисках, SSD, томах виртуальных машин, объектных или блочных хранилищах. Основная цель — исключить возможность несанкционированного доступа к данным, даже если злоумышленник получит прямой доступ к устройствам хранения.
Общее описание
В Программном комплексе Salt.Box реализована собственная подсистема управления Pillars.
Эта подсистема предоставляет пользователям возможность централизованно создавать, редактировать и применять конфигурационные параметры через графический интерфейс, исключая необходимость ручного редактирования SLS-файлов или прямой работы с мастер-сервером Salt.
Pillar представляет собой конфигурационную запись вида
имя: значение,
привязанную к определённому объекту инфраструктуры и рабочему окружению.
Подсистема управления Pillars обеспечивает автоматическую доставку актуальных параметров целевым узлам при выполнении запросов от мастер-сервера Salt.
Механизм слияния и приоритизация
Типы нацеливания Pillar
В архитектуре Salt.Box предусмотрено несколько типов нацеливания Pillar, различающихся по области применения и способу инициализации:
root— глобальные базовые параметры.
Применяются ко всем клиентам по умолчанию, если для них не заданы индивидуальные Pillars.
Создаются и управляются пользователем вручную.minion— параметры, привязанные к конкретному узлу (клиенту).
Используются для переопределения глобальных настроек под требования отдельного узла.
Создаются и управляются пользователем вручную.task_tpl— технический тип, предназначен хранения параметров по умолчанию для шаблона задачи.- Пользователь не создаёт их напрямую: генерация происходит автоматически при инициализации задачи, если в интерфейсе установлен флажок
Сохранить для шаблона. - Pillar данного типа существует строго в контексте шаблона задачи.
- Ручное управление или модификация этих записей не требуется и не предусмотрена интерфейсом.
- Пользователь не создаёт их напрямую: генерация происходит автоматически при инициализации задачи, если в интерфейсе установлен флажок
task— технический тип, предназначен исключительно для передачи параметров выполнения задачи.- Пользователь не создаёт их напрямую: генерация происходит автоматически при инициализации задачи.
- Pillar данного типа существует строго в контексте соответствующей задачи и сохраняется в системе в течение всего её жизненного цикла.
- Ручное управление или модификация этих записей не требуется и не предусмотрена интерфейсом.
Алгоритм слияния Pillars
При запросе конфигурации клиентом система автоматически собирает все релевантные Pillars и объединяет их в единый словарь.
Процесс слияния подчиняется строгому и предсказуемому правилу приоритетов:
Pillars с типом нацеливания
minionобладают наивысшим приоритетом.При слиянии они добавляются в единый словарь в последнюю очередь, что гарантирует переопределение любых значений в полях с совпадающим именем и положением в ветке, полученных из Pillars глобального уровня (
root).Порядок применения параметров прозрачен и детерминирован: базовые настройки накладываются первыми, после чего применяются специфические параметры клиента.
Защита данных и шифрование
Для работы с конфиденциальной информацией (учётные данные, API-токены, приватные ключи) в Программном комплексе Salt.Box реализован встроенный механизм шифрования.
Активация защиты выполняется установкой флага is_secret при создании Pillar.
Принципы работы
- Хранение: Секретные значения зашифровываются непосредственно перед записью в хранилище (выполняется шифрование данных at rest). В интерфейсах и списочных выборках они отображаются в маскированном виде (
"*******"). - Выдача: При запросе конфигурации мастер-сервером Salt система выполняет автоматическое расшифрование данных и передаёт данные мастер-серверу по защищённому каналу.
- Неизменяемость: В целях обеспечения криптографической целостности обновление значений Pillar, уже сохранённых в зашифрованном виде, через интерфейс не предусмотрено. При необходимости изменения секрета рекомендуется удалить существующую запись и создать новую.
Алгоритм шифрования
Для защиты данных используется стандарт конвертного шифрования (Envelope Encryption) на базе криптоалгоритма AES-256-GCM:
- При создании секрета генерируется уникальный ключ шифрования данных (DEK).
- Исходное значение Pillar зашифровывается с использованием DEK.
- Сам ключ DEK защищается постоянным мастер-ключом приложения (KEK) и сохраняется вместе с зашифрованной полезной нагрузкой (данными Pillar).
- Зашифрованные данные криптографически привязываются к контексту Pillar (тип цели, идентификатор, окружение, имя) с помощью аутентифицированного контекста (AAD).
Любое изменение метаданных или попытка переноса зашифрованного значения в другой контекст приведёт к ошибке проверки целостности и отмене расшифрования.
Данный подход гарантирует, что даже при несанкционированном доступе к хранилищу конфигураций восстановление исходных значений без доступа к мастер-ключу приложения невозможно.
Схема процессов создания, хранения и передачи защищённых Pillar приведена на Рис. 1.
![]() |
|---|
