Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 21 октября 2026 г. в 10:46

Проверка целостности

Тarantool Cluster Manager поддерживает механизм проверки целостности, который проверяет цифровую подпись централизованных файлов конфигурации. Он гарантирует, что TCM применяет только конфигурации, подписанные доверенным закрытым ключом.

Механизм проверки целостности обеспечивает:

  • обновление конфигурации с поддержкой проверки целостности;
  • обнаружение несанкционированных изменений в централизованной конфигурации.

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

  • для данных самого TCM (пользователи, роли, права ACL и другие объекты в собственном хранилище TCM) — ключ задается одной настройкой на весь TCM, как и раньше: в конфигурационном файле или переменных окружения (см. Настройка проверки целостности);
  • для централизованной конфигурации каждого подключенного кластера — ключ задается отдельно для каждого кластера, а не один общий ключ на TCM и все кластеры сразу.

Это повышает безопасность: компрометация ключа одного кластера не затрагивает остальные подключенные кластеры и сам TCM. По той же причине к TCM можно подключать кластеры, централизованная конфигурация которых подписана разными ключами, а также кластеры вовсе без проверки целостности — настройки проверки целостности у разных кластеров теперь независимы. До версии TCM 1.11.0 так было нельзя: включение проверки целостности действовало сразу на все кластеры одинаково (подробнее – в описании выпуска TCM 1.11).

Проверка целостности кластера через интерфейс

Проверка целостности для кластера включается флажком Integrity check на шаге Config storage connection мастера добавления или редактирования кластера. Флажок доступен для провайдеров etcd и tarantool; при выборе провайдера from configuration он скрыт, так как у такого кластера нет отдельного централизованного хранилища конфигурации, для которого имеет смысл проверять целостность.

Флажок Integrity check на шаге Config storage connection

Проверка целостности кластера через initial-settings

Проверку целостности и ключ для кластера можно также задать в секции initial-settings.clusters конфигурационного файла TCM — параметрами integrity-check и signature-private-key-file для соответствующего кластера:

# tcm.yamlinitial-settings:  clusters:    - id: 20000000-0000-0000-0000-000000000001      name: Cluster 1      description: Primary cluster      storage-connection:        provider: etcd        etcd-connection:          endpoints:            - http://localhost:2379          prefix: /cluster1          username: ""          password: ""          tls:            enabled: false      tarantool-connection:        username: admin        password: ""        method: password        timeout: 5s        rate-limit: 600      integrity-check: true      signature-private-key-file: path/to/private.pem

Настройка проверки целостности

Описанные в этом разделе параметры задают ключ проверки целостности для данных самого TCM (не кластеров) — это прежняя настройка, которая работает как и раньше.

Конфигурационные параметры

Параметр

Описание

Тип

По умолчанию

security.integrity-check

Включает проверку подписи

bool

false

security.signature-private-key-file

Путь к закрытому ключу для подписи конфигурации

string

""

Пример конфигурации

Проверку целостности можно включить в конфигурационном файле TCM:

# tcm.yamlsecurity:    integrity-check: true    signature-private-key-file: /etc/tcm/private_key.pem

Обнаружение несанкционированных изменений и повторная подпись данных

Если при включенной проверке целостности данные были изменены в обход TCM — например, напрямую в хранилище (etcd или Tarantool-кластере) — подпись данных перестает совпадать с ожидаемой. Последствия зависят от того, какие данные были изменены:

  • Данные самого TCM (пользователи, роли, права ACL и другие объекты в собственном хранилище TCM). При следующем обращении к измененным данным TCM обнаруживает несоответствие подписи и блокирует интерфейс, показывая ошибку вида:

    content integrity check failed: integrity verification failed: signature verification failed for "rsapss":hex verifier: failed to verify: crypto/rsa: verification error
  • Централизованная конфигурация кластера, для которого включена проверка целостности. Ошибка целостности отображается на странице с конфигурацией этого кластера и на странице Stateboard. Интерфейс TCM при этом не блокируется: TCM и остальные подключенные кластеры продолжают работать.

Чтобы устранить ошибку, подпишите данные заново с помощью команды ./tcm resign-data, указав параметры подключения к хранилищу TCM — аналогично тому, как они передаются при запуске TCM (через опцию --config или переменные окружения TCM_STORAGE_TARANTOOL_* / TCM_STORAGE_ETCD_*). Команда переподписывает как данные самого TCM, так и централизованные конфигурации кластеров — каждую ключом, заданным для соответствующего кластера. После выполнения команды обновите страницу в интерфейсе TCM — она должна загрузиться без ошибок целостности.