Spec-Zone.ru › MySQL 8.4

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 для управления хранилищем ключей необходимо:

  1. Написать манифест, который сообщит серверу о загрузке component_keyring_encrypted_file, как описано в разделе 8.4.4.2 «Установка компонента keyring».

  2. Написать файл конфигурации для 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/keyring-encrypted-file-component.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API