Spec-Zone.ru › MySQL 5.7

6.4.4.3 Использование плагина keyring_encrypted_file для ключей, хранящихся в зашифрованных файлах

Примечание

Плагин keyring_encrypted_file — это расширение, включенное в MySQL Enterprise Edition, коммерческий продукт. Более подробную информацию о коммерческих продуктах можно найти на странице https://www.mysql.com/products/.

Плагин keyring_encrypted_file хранит данные ключей в зашифрованном файле с парольной защитой на локальном диске сервера. Для файла необходимо указать пароль. Данный плагин доступен начиная с MySQL 5.7.21.

Предупреждение

Плагин keyring_encrypted_file не предназначен для решения задач соответствия нормативным требованиям относительно управления ключами шифрования. Для обеспечения безопасности, в соответствии со стандартами, такими как PCI, FIPS и другими, необходимо использовать системы управления ключами для защиты, управления и обеспечения конфиденциальности ключей шифрования в хранилищах ключей или модулях аппаратной безопасности (HSM).

Для установки keyring_encrypted_file используйте общие инструкции, приведенные в разделе 6.4.4.1 «Установка плагина keyring», а также конфигурационную информацию, специфичную для keyring_encrypted_file, приведенную здесь.

Для использования keyring_encrypted_file во время запуска сервера его необходимо загрузить с помощью параметра --early-plugin-load. Чтобы указать пароль для шифрования файла данных ключей, установите системную переменную keyring_encrypted_file_password. (Пароль обязателен; если он не указан при запуске сервера, инициализация keyring_encrypted_file завершается неудачно.) Системная переменная keyring_encrypted_file_data (по желанию) настраивает расположение файла, используемого плагином keyring_encrypted_file для хранения данных. Значение по умолчанию зависит от платформы. Чтобы явно задать расположение файла, установите значение переменной при запуске. Например, используйте эти строки в файле конфигурации сервера my.cnf, изменяя суффикс .so и расположение файла в соответствии с вашей платформой и подставляя выбранный пароль:

[mysqld]
early-plugin-load=keyring_encrypted_file.so
keyring_encrypted_file_data=/usr/local/mysql/mysql-keyring/keyring-encrypted
keyring_encrypted_file_password=password

Поскольку файл my.cnf хранит пароль при записи, как показано выше, ему следует задать ограниченный режим доступа, и он должен быть доступен только учетной записи, используемой для запуска сервера MySQL.

Операции с ключами являются транзакционными: плагин keyring_encrypted_file использует резервную копию файла во время операций записи, чтобы гарантировать возможность возврата к исходному файлу в случае сбоя операции. Резервный файл имеет то же имя, что и значение системной переменной keyring_encrypted_file_data с суффиксом .backup.

Дополнительную информацию о системных переменных, используемых для настройки плагина keyring_encrypted_file, см. в разделе 6.4.4.12 «Системные переменные для keyring».

Чтобы обеспечить очистку ключей только в том случае, если существует правильный файл хранения keyring, keyring_encrypted_file хранит контрольную сумму SHA-256 keyring в файле. Перед обновлением файла плагин проверяет, что он содержит ожидаемую контрольную сумму. Кроме того, keyring_encrypted_file шифрует содержимое файла с помощью AES перед записью и расшифровывает содержимое после считывания файла.

Плагин keyring_encrypted_file поддерживает функции, составляющие стандартный интерфейс службы MySQL Keyring. Доступ к операциям с ключами, выполняемым этими функциями, осуществляется на двух уровнях:

  • SQL-интерфейс: в SQL-запросах вызывайте функции, описанные в разделе 6.4.4.8 «Функции управления ключами общего назначения для keyring».

  • C-интерфейс: в коде на языке C вызывайте функции службы keyring, описанные в разделе 5.5.6.2 «Служба keyring».

Пример (используя SQL-интерфейс):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

Дополнительную информацию о характеристиках разрешенных значений ключей, используемых плагином keyring_encrypted_file, см. в разделе 6.4.4.6 «Поддерживаемые типы и длины ключей keyring».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/keyring-encrypted-file-plugin.html

Spec-Zone.ru

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