8.4.4.5 Использование компонента хранилища ключей на основе зашифрованных файлов component_keyring_encrypted_file
component_keyring_encrypted_file — это расширение, включенное в MySQL Enterprise Edition, коммерческий продукт. Чтобы узнать больше о коммерческих продуктах, посетите https://www.mysql.com/products/.
Компонент хранилища ключей component_keyring_encrypted_file хранит данные хранилища ключей в зашифрованном файле с парольной защитой на локальном сервере.
Для управления ключами шифрования компоненты component_keyring_file и component_keyring_encrypted_file не предназначены для решения задач соответствия нормативным требованиям. Стандарты безопасности, такие как PCI, FIPS и другие, требуют использования систем управления ключами для защиты, управления и защиты ключей шифрования в хранилищах ключей или модулях аппаратной безопасности (HSM).
Для использования component_keyring_encrypted_file для управления хранилищем ключей необходимо:
Написать манифест, который указывает серверу загрузить
component_keyring_encrypted_file, как описано в разделе 8.4.4.2 «Установка компонента хранилища ключей».Написать конфигурационный файл для
component_keyring_encrypted_file, как описано здесь.
При инициализации component_keyring_encrypted_file считывает либо глобальный конфигурационный файл, либо глобальный конфигурационный файл вместе с локальным конфигурационным файлом:
Компонент пытается прочитать свой глобальный конфигурационный файл из каталога, где установлен файл библиотеки компонента (то есть каталог плагинов сервера).
Если глобальный конфигурационный файл указывает на использование локального конфигурационного файла, компонент пытается прочитать свой локальный конфигурационный файл из каталога данных.
Хотя глобальные и локальные конфигурационные файлы находятся в разных каталогах, имя файла является
component_keyring_encrypted_file.cnfв обоих местах.Если
component_keyring_encrypted_fileне может найти конфигурационный файл, возникает ошибка, и компонент не может быть инициализирован.
Локальные конфигурационные файлы позволяют настроить несколько экземпляров сервера для использования component_keyring_encrypted_file, так что конфигурация компонента для каждого экземпляра сервера специфична для данного экземпляра каталога данных. Это позволяет использовать один и тот же компонент хранилища ключей с отдельным файлом данных для каждого экземпляра.
Конфигурационные файлы component_keyring_encrypted_file имеют следующие свойства:
Конфигурационный файл должен быть в формате JSON.
-
Конфигурационный файл допускает следующие параметры конфигурации:
-
"read_local_config": Этот параметр разрешен только в глобальном конфигурационном файле. Если параметр отсутствует, компонент использует только глобальный конфигурационный файл. Если параметр присутствует, его значение равноtrueилиfalse, указывая, должен ли компонент считывать конфигурационную информацию из локального конфигурационного файла.Если параметр
"read_local_config"присутствует в глобальном конфигурационном файле вместе с другими параметрами, компонент сначала проверяет значение параметра"read_local_config":Если значение равно
false, компонент обрабатывает другие параметры в глобальном конфигурационном файле и игнорирует локальный конфигурационный файл.Если значение равно
true, компонент игнорирует другие параметры в глобальном конфигурационном файле и пытается прочитать локальный конфигурационный файл.
"path": Значение параметра — строка, которая указывает имя файла для хранения данных хранилища ключей. Имя файла должно быть указано с абсолютным путем, а не относительным. Этот параметр обязателен в конфигурации. Если он не указан, инициализацияcomponent_keyring_encrypted_fileзавершается неудачно."password": Значение параметра — строка, которая указывает пароль для доступа к файлу данных. Этот параметр обязателен в конфигурации. Если он не указан, инициализацияcomponent_keyring_encrypted_fileзавершается неудачно."read_only": Значение параметра указывает, является ли файл данных хранилища ключей только для чтения. Значение параметра равноtrue(только для чтения) илиfalse(для чтения/записи). Этот параметр обязателен в конфигурации. Если он не указан, инициализацияcomponent_keyring_encrypted_fileзавершается неудачно.
-
Администратор базы данных отвечает за создание используемых конфигурационных файлов и за обеспечение правильности их содержимого. Если произошла ошибка, запуск сервера завершается неудачно, и администратор должен исправить любые проблемы, указанные в журнале ошибок сервера.
Любой конфигурационный файл, хранящий пароль, должен иметь ограниченный режим доступа и быть доступен только учетной записи, используемой для запуска сервера MySQL.
Учитывая указанные выше свойства конфигурационного файла, для настройки component_keyring_encrypted_file создайте глобальный конфигурационный файл с именем component_keyring_encrypted_file.cnf в каталоге, где установлен файл библиотеки component_keyring_encrypted_file, и необязательно создайте локальный конфигурационный файл с тем же именем component_keyring_encrypted_file.cnf в каталоге данных. В следующих инструкциях предполагается, что файл данных хранилища ключей с именем /usr/local/mysql/keyring/component_keyring_encrypted_file будет использоваться в режиме чтения/записи. Вам также необходимо выбрать пароль.
-
Чтобы использовать только глобальный конфигурационный файл, содержимое файла выглядит так:
{ "path": "/usr/local/mysql/keyring/component_keyring_encrypted_file", "password": "password", "read_only": false }Создайте этот файл в каталоге, где установлен файл библиотеки
component_keyring_encrypted_file.Этот путь не должен указывать на каталог данных MySQL или включать его в себя.
-
В качестве альтернативы, для использования глобального и локального конфигурационных файлов, глобальный файл выглядит так:
{ "read_local_config": true }Создайте этот файл в каталоге, где установлен файл библиотеки
component_keyring_encrypted_file.Локальный файл выглядит следующим образом:
{ "path": "/usr/local/mysql/keyring/component_keyring_encrypted_file", "password": "password", "read_only": false }Этот путь не должен указывать на каталог данных MySQL или включать его в себя.
Операции хранилища ключей являются транзакционными: component_keyring_encrypted_file использует резервную копию файла во время операций записи, чтобы гарантировать возможность возврата к исходному файлу в случае сбоя операции. Резервный файл имеет то же имя, что и файл данных, с суффиксом .backup.
component_keyring_encrypted_file поддерживает функции, которые составляют стандартный интерфейс службы хранилища ключей MySQL. Операции хранилища ключей, выполняемые этими функциями, доступны в операторах SQL, как описано в разделе 8.4.4.13 «Общие функции управления ключами хранилища ключей».
Пример:
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');
Дополнительную информацию о характеристиках разрешенных значений ключей component_keyring_encrypted_file см. в разделе 8.4.4.11 «Поддерживаемые типы и длины ключей хранилища ключей».
© 2025 Oracle
Licensed under the GPLv2 License.