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