Deckhouse Data Platform (DDP) позволяет безопасно сменить ключ шифрования (security.secretKey) без потери учётных данных и других зашифрованных значений. Операция выполняется из веб-интерфейса и перешифровывает все данные, которые хранятся с использованием текущего ключа.

Основания для ротации ключа

Выполните ротацию ключа шифрования, если необходимо заменить security.secretKey в конфигурации DDP Backend — например, по политике безопасности или после компрометации ключа.

Не меняйте security.secretKey в конфигурации и не перезапускайте бэкенд до завершения перешифрования в веб-интерфейсе, иначе сохранённые значения станут недоступны.

Права доступа

Для запуска ротации требуется глобальное разрешение rotate:encryption-key.

Перешифровываемые данные

Операция затрагивает следующие категории данных:

  • «Учётные данные пользователей» — значения в PostgreSQL для типов с хранилищем «База данных».
  • «Учётные данные AI-провайдеров» — персональные реквизиты для AI-интеграций.
  • «Временные ответы действий» — зашифрованные временные ответы в записях выполнения действий.
  • «Секреты Vault» — значения учётных данных, хранящихся в HashiCorp Vault или Deckhouse Stronghold.
  • «Конфигурация Vault» — AppRole Role ID и AppRole Secret ID в настройках интеграции с Vault.

Порядок выполнения

  1. Перейдите в раздел «Администрирование» → «Учётные данные».
  2. Нажмите «Ротация ключа шифрования».
  3. В поле «Старый ключ шифрования» введите текущий ключ из конфигурации DDP (security.secretKey).
  4. В поле «Новый ключ шифрования» введите новый ключ. Требования к ключу те же, что при первоначальной настройке:
    • длина — 16, 24 или 32 байта;
    • только печатаемые ASCII-символы;
    • ключ не должен состоять из одного повторяющегося символа.
  5. Нажмите «Перешифровать».
  6. Дождитесь завершения операции и проверьте таблицу результатов. Для каждой категории отображается количество успешно перешифрованных, пропущенных и неуспешных записей.
  7. Обновите security.secretKey в конфигурации DDP Backend на новый ключ.
  8. Перезапустите DDP Backend.

После перешифрования учётные данные остаются недоступны для использования, пока в конфигурации бэкенда не указан новый ключ и сервис не перезапущен.

Результаты операции

В таблице результатов для каждой категории данных указываются три счётчика:

  • «Успешно» — записи перешифрованы новым ключом.
  • «Пропущено» — запись уже доступна с новым ключом (например, была перешифрована ранее).
  • «Неуспешно» — запись не удалось перешифровать (чаще всего из-за неверного старого ключа или повреждённых данных).

Строка «Итого» содержит суммарные значения по всем категориям.

Если в столбце «Неуспешно» есть ненулевые значения, не обновляйте конфигурацию бэкенда до устранения причины ошибок. Проверьте корректность старого ключа и повторите операцию.