25.6.14.1 Настройка и использование шифрования файловой системы NDB
Шифрование файловой системы: Для включения шифрования файловой системы, ранее не шифрованной, необходимо выполнить следующие шаги:
-
Установите необходимые параметры узлов данных в разделе
[ndbd default]файлаconfig.ini, как показано ниже:[ndbd default] EncryptedFileSystem= 1
Эти параметры должны быть установлены во всех узлах данных.
Запустите сервер управления с помощью
--initialили--reload, чтобы заставить его прочитать обновленный конфигурационный файл.-
Выполните поэтапный начальный запуск (или перезапуск) всех узлов данных (см. Раздел 25.6.5, «Выполнение поэтапного перезапуска кластера NDB»): Запустите каждый узел данных с помощью
--initial; дополнительно укажите один из параметров--filesystem-passwordили--filesystem-password-from-stdin, а также пароль, для каждого процесса узла данных. При указании пароля в командной строке отображается предупреждение, подобное этому:>
ndbmtd -c 127.0.0.1 --filesystem-password=ndbsecretndbmtd: [Warning] Using a password on the command line interface can be insecure. 2022-08-22 16:17:58 [ndbd] INFO -- Angel connected to '127.0.0.1:1186' 2022-08-22 16:17:58 [ndbd] INFO -- Angel allocated nodeid: 5--filesystem-passwordможет принять пароль из файла,tty, илиstdin;--filesystem-password-from-stdinпринимает пароль только изstdin. Последнее защищает пароль от раскрытия в командной строке процесса или в файловой системе и позволяет передать его из другого защищённого приложения.Вы также можете разместить пароль в файле
my.cnf, который может быть прочитан процессом узла данных, но не другими пользователями системы. Используя тот же пароль, что и в предыдущем примере, соответствующая часть файла должна выглядеть так:[ndbd] filesystem-password=ndbsecret
Вы также можете попросить пользователя, запускающего процесс узла данных, указать пароль шифрования во время запуска, используя параметр
--filesystem-password-from-stdinв файлеmy.cnfвместо него, как показано ниже:[ndbd] filesystem-password-from-stdin
В этом случае пользователь будет запрошен на пароль при запуске процесса узла данных, как показано ниже:
>
ndbmtd -c 127.0.0.1Enter filesystem password:*********2022-08-22 16:36:00 [ndbd] INFO -- Angel connected to '127.0.0.1:1186' 2022-08-22 16:36:00 [ndbd] INFO -- Angel allocated nodeid: 5 >Независимо от используемого метода, формат пароля шифрования такой же, как и для паролей зашифрованных резервных копий (см. Раздел 25.6.8.2, «Использование клиента управления кластером NDB для создания резервной копии»); пароль должен быть предоставлен при запуске каждого процесса узла данных; в противном случае процесс узла данных не сможет запуститься. Об этом указывает следующее сообщение в журнале узла данных:
>
tail -n2 ndb_5_out.log2022-08-22 16:08:30 [ndbd] INFO -- Data node configured to have encryption but password not provided 2022-08-22 16:08:31 [ndbd] ALERT -- Node 5: Forced node shutdown completed. Occurred during startphase 0.При перезапуске, как описано выше, каждый узел данных очищает своё состояние на диске и перестраивает его в зашифрованном виде.
Вращение пароля файловой системы: Чтобы обновить пароль шифрования, используемый узлами данных, выполните поэтапный начальный перезапуск узлов данных, предоставив новый пароль каждому узлу данных при его перезапуске с помощью --filesystem-password или --filesystem-password-from-stdin.
Расшифровка файловой системы: Чтобы убрать шифрование из зашифрованной файловой системы, выполните следующие действия:
В разделе
[ndbd default]файлаconfig.iniустановитеEncryptedFileSystem = OFF.Перезапустите сервер управления с помощью
--initialили--reload.-
Выполните поэтапный начальный перезапуск узлов данных. Не используйте никаких параметров, связанных с паролем, при перезапуске бинарных файлов узла.
При перезапуске каждый узел данных очищает своё состояние на диске и перестраивает его в незашифрованном виде.
Чтобы проверить, правильно ли настроено шифрование файловой системы, можно использовать запрос к таблицам ndbinfo config_values и config_params, подобный этому:
mysql> SELECT v.node_id AS Node, p.param_name AS Parameter, v.config_value AS Value
-> FROM ndbinfo.config_values v
-> JOIN ndbinfo.config_params p
-> ON v.config_param=p.param_number
-> WHERE p.param_name='EncryptedFileSystem';
+------+----------------------+-------+
| Node | Parameter | Value |
+------+----------------------+-------+
| 5 | EncryptedFileSystem | 1 |
| 6 | EncryptedFileSystem | 1 |
| 7 | EncryptedFileSystem | 1 |
| 8 | EncryptedFileSystem | 1 |
+------+----------------------+-------+
4 rows in set (0.10 sec)
Здесь, EncryptedFileSystem равно 1 на всех узлах данных, что означает, что шифрование файловой системы включено для данного кластера.
© 2025 Oracle
Licensed under the GPLv2 License.