|
| 1 | +--- |
| 2 | +title: Ротация ключа шифрования |
| 3 | +weight: 35 |
| 4 | +--- |
| 5 | + |
| 6 | +DDP позволяет безопасно сменить ключ шифрования (`security.secretKey`) без потери учётных данных и других зашифрованных значений. Операция выполняется из веб-интерфейса и перешифровывает все данные, которые хранятся с использованием текущего ключа. |
| 7 | + |
| 8 | +## Когда использовать |
| 9 | + |
| 10 | +Ротацию ключа шифрования выполняйте, если необходимо заменить `security.secretKey` в конфигурации DDP Backend — например, по политике безопасности или после компрометации ключа. |
| 11 | + |
| 12 | +{{< alert level="warning" >}} |
| 13 | +Не меняйте `security.secretKey` в конфигурации и не перезапускайте backend до завершения перешифрования в веб-интерфейсе. Иначе сохранённые значения станут недоступны. |
| 14 | +{{< /alert >}} |
| 15 | + |
| 16 | +## Права доступа |
| 17 | + |
| 18 | +Для запуска ротации требуется глобальное разрешение `rotate:encryption-key`. |
| 19 | + |
| 20 | +## Что перешифровывается |
| 21 | + |
| 22 | +Операция затрагивает следующие категории данных: |
| 23 | + |
| 24 | +- «Учётные данные пользователей» — значения в PostgreSQL для типов с хранилищем «База данных». |
| 25 | +- «Учётные данные AI-провайдеров» — персональные реквизиты для AI-интеграций. |
| 26 | +- «Временные ответы действий» — зашифрованные временные ответы в записях выполнения действий. |
| 27 | +- «Секреты Vault» — значения учётных данных, хранящихся в HashiCorp Vault или Deckhouse Stronghold. |
| 28 | +- «Конфигурация Vault» — AppRole Role ID и AppRole Secret ID в настройках интеграции с Vault. |
| 29 | + |
| 30 | +## Порядок выполнения |
| 31 | + |
| 32 | +1. Перейдите в раздел «Администрирование» → «Учётные данные». |
| 33 | +1. Нажмите «Ротация ключа шифрования». |
| 34 | +1. В поле «Старый ключ шифрования» введите текущий ключ из конфигурации DDP (`security.secretKey`). |
| 35 | +1. В поле «Новый ключ шифрования» введите новый ключ. Требования к ключу те же, что при первоначальной настройке: длина 16, 24 или 32 байта; только печатаемые ASCII-символы; ключ не должен состоять из одного повторяющегося символа. |
| 36 | +1. Нажмите «Перешифровать». |
| 37 | +1. Дождитесь завершения операции и проверьте таблицу результатов: для каждой категории отображаются количество успешно перешифрованных, пропущенных и неуспешных записей. |
| 38 | +1. Обновите `security.secretKey` в конфигурации DDP Backend на новый ключ. |
| 39 | +1. Перезапустите DDP Backend. |
| 40 | + |
| 41 | +{{< alert level="info" >}} |
| 42 | +После перешифрования учётные данные остаются недоступны для использования, пока в конфигурации backend не указан новый ключ и сервис не перезапущен. |
| 43 | +{{< /alert >}} |
| 44 | + |
| 45 | +## Результаты операции |
| 46 | + |
| 47 | +В таблице результатов для каждой категории данных указываются три счётчика: |
| 48 | + |
| 49 | +- «Успешно» — записи перешифрованы новым ключом. |
| 50 | +- «Пропущено» — запись уже доступна с новым ключом (например, была перешифрована ранее). |
| 51 | +- «Неуспешно» — запись не удалось перешифровать (чаще всего из-за неверного старого ключа или повреждённых данных). |
| 52 | + |
| 53 | +Строка «Итого» содержит суммарные значения по всем категориям. |
| 54 | + |
| 55 | +Если в столбце «Неуспешно» есть ненулевые значения, не обновляйте конфигурацию backend до устранения причины ошибок. Проверьте корректность старого ключа и повторите операцию. |
0 commit comments