Spec-Zone.ru › MySQL 8.4

8.4.4.6 Использование плагина keyring_okv KMIP

Примечание

Плагин keyring_okv — это расширение, включенное в MySQL Enterprise Edition, коммерческий продукт. Чтобы узнать больше о коммерческих продуктах, см. https://www.mysql.com/products/.

Протокол межсетевого взаимодействия с ключами (KMIP) обеспечивает обмен криптографическими ключами между сервером управления ключами и его клиентами. Плагин keyring, использующий протокол KMIP 1.1, работает как клиент KMIP-бекенда для обеспечения безопасного обмена. Данные ключей генерирует исключительно бэкенд, а не keyring_okv. Плагин работает с такими совместимыми с KMIP продуктами:

  • Oracle Key Vault

  • Gemalto SafeNet KeySecure Appliance

  • Townsend Alliance Key Manager

  • Entrust KeyControl

Каждый экземпляр MySQL Server должен быть зарегистрирован отдельно как клиент для KMIP. Если два или более экземпляров MySQL Server используют один и тот же набор учетных данных, это может привести к конфликтам в их работе.

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

  • Интерфейс SQL: в операторах SQL вызывайте функции, описанные в разделе 8.4.4.12, «Общие функции управления ключами Keyring».

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

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

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

Сведения о характеристиках значений ключей, разрешенных keyring_okv, см. в разделе 8.4.4.10, «Поддерживаемые типы и длины ключей keyring».

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

  • Общая конфигурация keyring_okv

  • Настройка keyring_okv для Oracle Key Vault

  • Настройка keyring_okv для Gemalto SafeNet KeySecure Appliance

  • Настройка keyring_okv для Townsend Alliance Key Manager

  • Настройка keyring_okv для Entrust KeyControl

  • Защита паролем файла ключей keyring_okv

Общая конфигурация keyring_okv

Независимо от того, какой KMIP-бекенд использует плагин keyring_okv для хранения keyring, системная переменная keyring_okv_conf_dir настраивает расположение каталога, используемого keyring_okv для своих служебных файлов. Значение по умолчанию пустое, поэтому вы должны задать переменной имя правильно настроенного каталога, прежде чем плагин сможет взаимодействовать с KMIP-бекендом. В противном случае keyring_okv запишет сообщение в журнал ошибок во время запуска сервера о невозможности связи:

[Warning] Plugin keyring_okv reported: 'For keyring_okv to be
initialized, please point the keyring_okv_conf_dir variable to a directory
containing Oracle Key Vault configuration file and ssl materials'

Переменная keyring_okv_conf_dir должна указывать на каталог, содержащий следующие элементы:

  • okvclient.ora: файл, содержащий подробности о KMIP-бекенде, с которым keyring_okv обменивается данными.

  • ssl: каталог, содержащий сертификаты и ключи, необходимые для установления защищенного соединения с KMIP-бекендом: CA.pem, cert.pem и key.pem. Если файл ключа защищен паролем, каталог ssl может содержать текстовый файл с одной строкой, названный password.txt, содержащий пароль для расшифровки файла ключа.

Оба файла okvclient.ora и каталог ssl с сертификатами и ключами необходимы для корректной работы keyring_okv. Процедура заполнения конфигурационного каталога этими файлами зависит от используемого KMIP-бекенда с keyring_okv, как описано в других местах.

Каталог конфигурации, используемый keyring_okv в качестве расположения служебных файлов, должен иметь ограниченный режим доступа и быть доступным только для учетной записи, используемой для запуска сервера MySQL. Например, в системах Unix и Unix-подобных системах для использования каталога /usr/local/mysql/mysql-keyring-okv следующие команды (выполняемые как root) создают каталог и устанавливают его режим и владение:

cd /usr/local/mysql
mkdir mysql-keyring-okv
chmod 750 mysql-keyring-okv
chown mysql mysql-keyring-okv
chgrp mysql mysql-keyring-okv

Для использования во время процесса запуска сервера keyring_okv необходимо загрузить с помощью параметра --early-plugin-load. Кроме того, установите системную переменную keyring_okv_conf_dir, чтобы указать keyring_okv местоположение каталога конфигурации. Например, используйте эти строки в файле сервера my.cnf, при необходимости подстраивая суффикс .so и расположение каталога под вашу платформу:

[mysqld]
early-plugin-load=keyring_okv.so
keyring_okv_conf_dir=/usr/local/mysql/mysql-keyring-okv

Дополнительную информацию о keyring_okv_conf_dir см. в разделе 8.4.4.16, «Системные переменные keyring».

Настройка keyring_okv для Oracle Key Vault

В этом обсуждении предполагается, что вы знакомы с Oracle Key Vault. Некоторые полезные источники информации:

  • Сайт Oracle Key Vault

  • Документация Oracle Key Vault

В терминологии Oracle Key Vault клиенты, которые используют Oracle Key Vault для хранения и извлечения объектов безопасности, называются конечными точками. Для связи с Oracle Key Vault необходимо зарегистрироваться как конечную точку и пройти регистрацию, загрузив и установив файлы поддержки конечной точки. Обратите внимание, что для каждого экземпляра MySQL Server необходимо зарегистрировать отдельную конечную точку. Если два или более экземпляра MySQL Server используют одну и ту же конечную точку, это может привести к взаимным помехам в работе.

Следующая процедура кратко описывает процесс настройки keyring_okv для использования с Oracle Key Vault:

  1. Создайте конфигурационную директорию для использования плагина keyring_okv.

  2. Зарегистрируйте конечную точку в Oracle Key Vault, чтобы получить токен регистрации.

  3. Используйте токен регистрации для получения загрузки клиентского ПО okvclient.jar.

  4. Установите клиентское ПО, чтобы заполнить конфигурационную директорию keyring_okv, содержащую файлы поддержки Oracle Key Vault.

Используйте следующую процедуру для настройки keyring_okv и Oracle Key Vault для совместной работы. Данное описание лишь кратко описывает взаимодействие с Oracle Key Vault. Для получения подробной информации посетите сайт Oracle Key Vault и обратитесь к руководству администратора Oracle Key Vault.

  1. Создайте конфигурационную директорию, содержащую файлы поддержки Oracle Key Vault, и убедитесь, что системная переменная keyring_okv_conf_dir установлена в имя этой директории (подробности см. в разделе Общая настройка keyring_okv).

  2. Войдите в консоль управления Oracle Key Vault как пользователь с ролью системного администратора.

  3. Выберите вкладку «Конечные точки», чтобы перейти к странице «Конечные точки». На странице «Конечные точки» нажмите «Добавить».

  4. Укажите необходимую информацию о конечной точке и нажмите «Зарегистрировать». Тип конечной точки должен быть «Другой». Успешная регистрация приведет к получению токена регистрации.

  5. Выйдите из сервера Oracle Key Vault.

  6. Подключитесь к серверу Oracle Key Vault еще раз, но на этот раз без входа. Используйте токен регистрации конечной точки, чтобы пройти регистрацию и запросить загрузку ПО okvclient.jar. Сохраните этот файл на вашей системе.

  7. Установите файл okvclient.jar, используя следующую команду (у вас должен быть JDK 1.4 или выше):

    java -jar okvclient.jar -d dir_name [-v]
    

    Имя директории после опции -d указывает место, куда следует установить извлеченные файлы. Опция -v, если указана, генерирует журнальную информацию, которая может быть полезной в случае ошибки команды.

    Когда команда запросит пароль конечной точки Oracle Key Vault, не вводите его. Нажмите Enter. (В результате для подключения конечной точки к Oracle Key Vault пароль не требуется).

    Представленная команда генерирует файл okvclient.ora, который должен находиться в указанной директории по имени, заданному опцией -d в предыдущей команде java -jar:

    install_dir/conf/okvclient.ora
    

    Ожидаемое содержимое файла включает строки такого вида:

    SERVER=host_ip:port_num
    STANDBY_SERVER=host_ip:port_num
    

    Переменная SERVER является обязательной, а переменная STANDBY_SERVER — необязательной. Плагин keyring_okv пытается установить связь с сервером, работающим на узле, указанном переменной SERVER, и переходит к STANDBY_SERVER, если это не удается.

    Примечание

    Если существующий файл не имеет этого формата, создайте новый файл со строками, показанными в предыдущем примере. Также рекомендуется сделать резервную копию файла okvclient.ora перед выполнением команды okvutil. Восстановите файл при необходимости.

    Можно указать более одного резервного сервера (до максимум 64). Если вы это сделаете, плагин keyring_okv перебирает их до успешного подключения, после чего завершается с ошибкой, если подключение невозможно. Для добавления дополнительных резервных серверов отредактируйте файл okvclient.ora, указав IP-адреса и номера портов серверов в качестве списка, разделенного запятыми, в значении переменной STANDBY_SERVER. Например:

    STANDBY_SERVER=host_ip:port_num,host_ip:port_num,host_ip:port_num,host_ip:port_num
    

    Убедитесь, что список резервных серверов остается коротким, точным и актуальным, а недействительные серверы удаляются. Для каждого попытки подключения есть ожидание в 20 секунд, поэтому наличие длинного списка недействительных серверов может существенно повлиять на время подключения плагина keyring_okv, а, следовательно, и на время запуска сервера.

  8. Перейдите в директорию установщика Oracle Key Vault и протестируйте настройку, выполнив эту команду:

    okvutil/bin/okvutil list
    

    Вывод должен быть примерно таким:

    Unique ID                               Type            Identifier
    255AB8DE-C97F-482C-E053-0100007F28B9	Symmetric Key	-
    264BF6E0-A20E-7C42-E053-0100007FB29C	Symmetric Key	-
    

    Для нового сервера Oracle Key Vault (сервера без ключей) вывод будет другим, чтобы указать отсутствие ключей в хранилище:

    no objects found
    
  9. Используйте эту команду, чтобы извлечь директорию ssl, содержащую данные SSL, из файла okvclient.jar:

    jar xf okvclient.jar ssl
    
  10. Скопируйте файлы поддержки Oracle Key Vault (файл okvclient.ora и директорию ssl) в конфигурационную директорию.

  11. (Необязательно) Если вы хотите защитить файл ключа паролем, следуйте инструкциям в разделе Защита паролем файла ключа keyring_okv.

После завершения вышеописанной процедуры перезапустите сервер MySQL. Он загрузит плагин keyring_okv и keyring_okv будет использовать файлы в своей конфигурационной директории для связи с Oracle Key Vault.

Настройка keyring_okv для устройства Gemalto SafeNet KeySecure

Устройство Gemalto SafeNet KeySecure использует протокол KMIP (версии 1.1 или 1.2). Плагин keyring (поддерживающий KMIP 1.1) может использовать KeySecure в качестве бэкенда KMIP для хранения ключей.

Используйте следующую процедуру для настройки взаимодействия между keyring_okv и KeySecure. Данное описание лишь обобщает взаимодействие с KeySecure. Для подробностей обратитесь к разделу «Добавление сервера KMIP» в руководстве пользователя KeySecure.

  1. Создайте директорию конфигурации, содержащую файлы поддержки KeySecure, и убедитесь, что системная переменная keyring_okv_conf_dir установлена в имя этой директории (подробности см. в разделе общих настроек keyring_okv).

  2. В директории конфигурации создайте поддиректорию с именем ssl для хранения необходимых файлов сертификата SSL и ключа.

  3. В директории конфигурации создайте файл с именем okvclient.ora. Он должен иметь следующий формат:

    SERVER=host_ip:port_num
    STANDBY_SERVER=host_ip:port_num
    

    Например, если KeySecure работает на хосте 198.51.100.20 и прослушивает порт 9002, а также на альтернативном хосте 203.0.113.125 и прослушивает порт 8041, файл okvclient.ora будет выглядеть так:

    SERVER=198.51.100.20:9002
    STANDBY_SERVER=203.0.113.125:8041
    

    Вы можете указать несколько резервных серверов (до 64). Если вы это сделаете, плагин keyring_okv будет перебирать их, пока не сможет установить соединение, и завершится неудачей, если не сможет. Чтобы добавить дополнительные резервные серверы, отредактируйте файл okvclient.ora, указав IP-адреса и номера портов серверов через запятую в значении переменной STANDBY_SERVER. Например:

    STANDBY_SERVER=host_ip:port_num,host_ip:port_num,host_ip:port_num,host_ip:port_num
    

    Убедитесь, что список резервных серверов остается коротким, точным и актуальным, а недействительные серверы удаляются. Время ожидания для каждой попытки соединения составляет 20 секунд, поэтому наличие длинного списка недействительных серверов может существенно повлиять на время подключения плагина keyring_okv, а следовательно, и на время запуска сервера.

  4. Подключитесь к консоли управления KeySecure как администратор с учетными данными доступа к центрам сертификации.

  5. Перейдите к Безопасность >> Местные центры сертификации и создайте местный центр сертификации (ЦС).

  6. Перейдите к Доверенным спискам ЦС. Выберите Значение по умолчанию и нажмите Свойства. Затем выберите Редактировать для Доверенного списка центров сертификации и добавьте только что созданный ЦС.

  7. Скачайте ЦС и сохраните его в директории ssl в файле с именем CA.pem.

  8. Перейдите к Безопасность >> Запросы на сертификаты и создайте сертификат. Затем вы можете загрузить сжатый файл tar, содержащий файлы сертификатов PEM.

  9. Извлеките файлы PEM из загруженного файла. Например, если имя файла — csr_w_pk_pkcs8.gz, разархивируйте и распакуйте его с помощью этой команды:

    tar zxvf csr_w_pk_pkcs8.gz
    

    В результате извлечения получаются два файла: certificate_request.pem и private_key_pkcs8.pem.

  10. Используйте эту команду openssl для расшифровки закрытого ключа и создания файла с именем key.pem:

    openssl pkcs8 -in private_key_pkcs8.pem -out key.pem
    
  11. Скопируйте файл key.pem в директорию ssl.

  12. Скопируйте запрос на сертификат из certificate_request.pem в буфер обмена.

  13. Перейдите к Безопасность >> Местные ЦС. Выберите тот же ЦС, который вы создали ранее (тот, который вы загрузили для создания файла CA.pem), и нажмите Подписать запрос. Вставьте Запрос на сертификат из буфера обмена, выберите назначение сертификата — Клиент (keyring — клиент KeySecure) и нажмите Подписать запрос. В результате на новой странице появится сертификат, подписанный выбранным ЦС.

  14. Скопируйте подписанный сертификат в буфер обмена, затем сохраните содержимое буфера обмена в файле с именем cert.pem в директории ssl.

  15. (Необязательно) Если вы хотите защитить файл ключа паролем, следуйте инструкциям в разделе по защите файла ключа keyring_okv паролем.

После выполнения вышеуказанной процедуры перезапустите сервер MySQL. Он загрузит плагин keyring_okv, и keyring_okv будет использовать файлы в его директории конфигурации для связи с KeySecure.

Настройка keyring_okv для Townsend Alliance Key Manager

Townsend Alliance Key Manager использует протокол KMIP. Плагин keyring_okv может использовать Alliance Key Manager в качестве бэкенда KMIP для хранения ключей. Дополнительную информацию можно найти на странице Alliance Key Manager для MySQL.

Настройка keyring_okv для Entrust KeyControl

Entrust KeyControl использует протокол KMIP. Плагин keyring_okv может использовать Entrust KeyControl в качестве бэкенда KMIP для хранения ключей. Дополнительную информацию можно найти в руководстве по интеграции Oracle MySQL и Entrust KeyControl с nShield HSM.

Защита файла ключа keyring_okv паролем

Вы можете защитить файл ключа паролем и предоставить файл с паролем для его расшифровки. Для этого перейдите в директорию ssl и выполните следующие шаги:

  1. Зашифруйте файл ключа key.pem. Например, используйте такую команду, вводя пароль шифрования в запросах:

    $> openssl rsa -des3 -in key.pem -out key.pem.new
    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
    
  2. Сохраните пароль шифрования в текстовый файл с одной строкой, названный password.txt, в директории ssl.

  3. Убедитесь, что зашифрованный файл ключа может быть расшифрован с помощью следующей команды. Расшифрованный файл должен отобразиться в консоли:

    $> openssl rsa -in key.pem.new -passin file:password.txt
    
  4. Удалите исходный файл key.pem и переименуйте key.pem.new в key.pem.

  5. Измените права доступа к новому файлу key.pem и файлу password.txt, если необходимо, чтобы они соответствовали ограничениям других файлов в директории ssl.

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

Spec-Zone.ru

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