Spec-Zone.ru › MySQL 5.7

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

Примечание

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

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

  • Oracle Key Vault

  • Gemalto SafeNet KeySecure Appliance

  • Townsend Alliance Key Manager

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

Плагин keyring_okv поддерживает функции, которые составляют стандартный интерфейс службы MySQL Keyring. К операциям 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_okv, см. в Разделе 6.4.4.6 «Поддерживаемые типы и длины ключей keyring».

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

  • Общие настройки keyring_okv

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

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

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

  • Защита паролем файла ключей 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. Начиная с MySQL 5.7.20, если файл ключа защищен паролем, каталог 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 см. в Разделе 6.4.4.12 «Системные переменные keyring».

END_OF_DOCUMENT_MARKER
Настройка 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
    
    Примечание

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

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

    • Для переменной SERVER обязательна настройка в файле okvclient.ora.

    • Для переменной STANDBY_SERVER настройка в файле okvclient.ora необязательна начиная с MySQL 5.7.19. До MySQL 5.7.19 настройка STANDBY_SERVER была обязательна; если okvclient.ora сгенерирован без настройки для STANDBY_SERVER, keyring_okv не может быть инициализирован. Рабочим вариантом является проверка oraclient.ora и добавление “фиктивной” настройки для STANDBY_SERVER, если она отсутствует. Например:

      STANDBY_SERVER=127.0.0.1:5696
      
  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). Начиная с MySQL 5.7.18, плагин keyring (поддерживающий KMIP 1.1) может использовать KeySecure в качестве бэкенда KMIP для хранения ключей.

Используйте следующую процедуру для настройки взаимодействия между keyring_okv и KeySecure. Описание суммирует взаимодействие с KeySecure. Для подробностей обратитесь к разделу «Добавление сервера KMIP» в руководстве пользователя KeySecure по ссылке Руководство пользователя 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, файл okvclient.ora будет выглядеть так:

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

  5. Перейдите к Security >> Local CAs и создайте локальный центр сертификации (ЦС).

  6. Перейдите к Trusted CA Lists. Выберите Default и нажмите Properties. Затем выберите Edit для Trusted Certificate Authority List и добавьте созданный ЦС.

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

  8. Перейдите к Security >> Certificate Requests и создайте сертификат. Затем вы можете скачать сжатый файл 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. Перейдите к Security >> Local CAs. Выберите тот же ЦС, который вы создали ранее (тот, который вы загрузили для создания файла CA.pem), и нажмите Sign Request. Вставьте Запрос на сертификат из буфера обмена, выберите назначение сертификата как Клиент (keyring — клиент KeySecure) и нажмите Sign Request. Результатом будет сертификат, подписанный выбранным ЦС, на новой странице.

  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 keyring может использовать Alliance Key Manager в качестве бэкенда KMIP для хранения ключей. Дополнительную информацию см. на странице Alliance Key Manager для MySQL.

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

Начиная с MySQL 5.7.20, вы можете защитить файл ключа паролем и предоставить файл с паролем для расшифровки. Для этого перейдите в директорию 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-5.7-en/keyring-okv-plugin.html

Spec-Zone.ru

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