8.4.4.10 Использование компонента хранилища ключей Oracle Cloud Infrastructure
Компонент хранилища ключей Oracle Cloud Infrastructure входит в MySQL Enterprise Edition, коммерческий продукт. Дополнительную информацию о коммерческих продуктах см. на странице https://www.mysql.com/products/.
component_keyring_oci является частью инфраструктуры компонента, которая взаимодействует с Oracle Cloud Infrastructure Vault для хранения данных на сервере. Никакая информация о ключах не хранится постоянно в локальном хранилище MySQL-сервера. Все ключи хранятся в хранилище Oracle Cloud Infrastructure Vault, что делает этот компонент подходящим для клиентов Oracle Cloud Infrastructure MySQL для управления ключами MySQL Enterprise Edition.
MySQL Keyring начал переход от плагинов к использованию инфраструктуры компонента. Введение component_keyring_oci является продолжением этой работы. Дополнительную информацию см. в разделе Сравнение компонентов и плагинов хранилища ключей.
Одновременно должен быть активирован только один компонент или плагин хранилища ключей. Активация нескольких компонентов или плагинов хранилища ключей не поддерживается, и результаты могут отличаться от ожидаемых.
Для использования component_keyring_oci для управления хранилищем ключей необходимо:
Создать манифест, который указывает серверу на загрузку
component_keyring_oci, как описано в разделе 8.4.4.2 «Установка компонента хранилища ключей».Написать файл конфигурации для
component_keyring_oci, как описано здесь.
Заметки по настройке
При инициализации, component_keyring_oci считывает либо глобальный конфигурационный файл, либо пару из глобального и локального конфигурационных файлов:
Компонент пытается прочитать свой глобальный конфигурационный файл из каталога, куда установлен файл библиотеки компонента (то есть, каталог плагина сервера).
Если глобальный конфигурационный файл указывает на использование локального конфигурационного файла, компонент пытается прочитать свой локальный конфигурационный файл из каталога данных.
Хотя глобальные и локальные конфигурационные файлы расположены в разных каталогах, имя файла
component_keyring_oci.cnfв обоих местах одинаковое.Отсутствие конфигурационного файла является ошибкой.
component_keyring_ociне может инициализироваться без валидной конфигурации.
Локальные конфигурационные файлы позволяют настроить несколько экземпляров сервера для использования component_keyring_oci таким образом, чтобы конфигурация компонента для каждого экземпляра сервера была специфична для данного экземпляра каталога данных. Это позволяет использовать один и тот же компонент keyring с отдельным хранилищем Oracle Cloud Infrastructure Vault для каждого экземпляра.
Предполагается, что вы знакомы с концепциями Oracle Cloud Infrastructure, но следующая документация может быть полезна при настройке ресурсов, используемых component_keyring_oci:
Конфигурационные файлы component_keyring_oci имеют следующие свойства:
Конфигурационный файл должен быть в валидном формате JSON.
-
Конфигурационный файл допускает следующие элементы конфигурации:
-
"read_local_config": Этот элемент разрешен только в глобальном конфигурационном файле. Если элемент отсутствует, компонент использует только глобальный конфигурационный файл. Если элемент присутствует, его значение равноtrueилиfalse, указывая, следует ли компоненту читать информацию о конфигурации из локального конфигурационного файла.Если элемент
"read_local_config"присутствует в глобальном конфигурационном файле вместе с другими элементами, компонент сначала проверяет значение элемента"read_local_config":Если значение равно
false, компонент обрабатывает остальные элементы в глобальном конфигурационном файле и игнорирует локальный конфигурационный файл.Если значение равно
true, компонент игнорирует другие элементы в глобальном конфигурационном файле и пытается прочитать локальный конфигурационный файл.
-
“user”: OCID пользователя Oracle Cloud Infrastructure, которогоcomponent_keyring_ociиспользует для подключений. Перед использованиемcomponent_keyring_oci, учетная запись пользователя должна существовать и иметь предоставленный доступ к использованию настроенных ресурсов Oracle Cloud Infrastructure: арендатора, отсека и хранилища. Чтобы получить OCID пользователя из консоли, используйте инструкции по адресу Required Keys and OCIDs.Это значение обязательно.
-
“tenancy”: OCID арендатора Oracle Cloud Infrastructure, которыйcomponent_keyring_ociиспользует в качестве местоположения отсека MySQL. Перед использованиемcomponent_keyring_oci, вы должны создать арендатора, если он не существует. Чтобы получить OCID арендатора из консоли, используйте инструкции по адресу Required Keys and OCIDs.Это значение обязательно.
-
“compartment”: OCID отсека арендатора, которыйcomponent_keyring_ociиспользует в качестве местоположения ключей MySQL. Перед использованиемcomponent_keyring_oci, вы должны создать отсек или подоб отсек MySQL, если он не существует. Этот отсек не должен содержать ключей или секретов хранилища. Он не должен использоваться системами, отличными от MySQL Keyring. Для получения информации об управлении отсеками и получении OCID, см. Managing Compartments.Это значение обязательно.
-
“virtual_vault”: OCID хранилища Oracle Cloud Infrastructure, котороеcomponent_keyring_ociиспользует для операций шифрования. Перед использованиемcomponent_keyring_oci, вы должны создать новое хранилище в отсеке MySQL, если оно не существует. (В качестве альтернативы, вы можете повторно использовать существующее хранилище, которое находится в родительском отсеке отсека MySQL.) Пользователи отсека могут видеть и использовать только ключи в своих соответствующих отсеках. Для получения информации о создании хранилища и получении OCID хранилища, см. Managing Vaults.Это значение обязательно.
-
“encryption_endpoint”: Конечная точка сервера шифрования Oracle Cloud Infrastructure, которуюcomponent_keyring_ociиспользует для генерации зашифрованной или закодированной информации (шифрованного текста) для новых ключей. Конечная точка шифрования специфична для хранилища, и Oracle Cloud Infrastructure назначает её во время создания хранилища. Чтобы получить OCID конечной точки, просмотрите подробные сведения о конфигурации вашего хранилища keyring_oci, используя инструкции по адресу Managing Vaults.Это значение обязательно.
-
"management_endpoint": Конечная точка сервера управления ключами Oracle Cloud Infrastructure, которуюcomponent_keyring_ociиспользует для перечисления существующих ключей. Конечная точка управления ключами специфична для хранилища, и Oracle Cloud Infrastructure назначает её во время создания хранилища. Чтобы получить OCID конечной точки, просмотрите подробные сведения о конфигурации вашего хранилища keyring_oci, используя инструкции по адресу Managing Vaults.Это значение обязательно.
-
“vaults_endpoint”: Конечная точка сервера хранилищ Oracle Cloud Infrastructure, которуюcomponent_keyring_ociиспользует для получения значения секретов. Конечная точка хранилищ специфична для хранилища, и Oracle Cloud Infrastructure назначает её во время создания хранилища. Чтобы получить OCID конечной точки, просмотрите подробные сведения о конфигурации вашего хранилища keyring_oci, используя инструкции по адресу Managing Vaults.Это значение обязательно.
-
“secrets_endpoint”: Конечная точка сервера секретов Oracle Cloud Infrastructure, которуюcomponent_keyring_ociиспользует для перечисления, создания и снятия с эксплуатации секретов. Конечная точка секретов специфична для хранилища, и Oracle Cloud Infrastructure назначает её во время создания хранилища. Чтобы получить OCID конечной точки, просмотрите подробные сведения о конфигурации вашего хранилища keyring_oci, используя инструкции по адресу Managing Vaults.Это значение обязательно.
-
“master_key”: OCID основного ключа шифрования Oracle Cloud Infrastructure, которыйcomponent_keyring_ociиспользует для шифрования секретов. Перед использованиемcomponent_keyring_oci, вы должны создать криптографический ключ для отсека Oracle Cloud Infrastructure, если он не существует. Укажите имя, специфичное для MySQL, для сгенерированного ключа и не используйте его для других целей. Для получения информации о создании ключей, см. Managing Keys.Это значение обязательно.
-
“key_file”: Имя пути файла, содержащего закрытый ключ RSA, которыйcomponent_keyring_ociиспользует для аутентификации Oracle Cloud Infrastructure. Вы также должны загрузить соответствующий открытый ключ RSA с помощью консоли. Консоль отображает значение отпечатка ключа, которое вы можете использовать для установки значения"key_fingerprint". Для получения информации о создании и загрузке ключей API, см. Required Keys and OCIDs.Это значение обязательно.
-
“key_fingerprint”: Отпечаток закрытого ключа RSA, которыйcomponent_keyring_ociиспользует для аутентификации Oracle Cloud Infrastructure. Чтобы получить отпечаток ключа при создании ключей API, выполните эту команду:openssl rsa -pubout -outform DER -in ~/.oci/oci_api_key.pem | openssl md5 -c
В качестве альтернативы, получите отпечаток из консоли, которая автоматически отображает отпечаток при загрузке открытого ключа RSA. Для получения информации о получении отпечатков ключей, см. Required Keys and OCIDs.
Это значение обязательно.
“ca_certificate”: Имя пути файла пакета сертификатов CA, который компонентcomponent_keyring_ociиспользует для проверки сертификатов Oracle Cloud Infrastructure. Файл содержит один или несколько сертификатов для проверки одноранговых узлов. Если файл не указан, используется пакет CA по умолчанию, установленный в системе. Если значение установлено вdisabled(с учетом регистра),component_keyring_ociне выполняет проверку сертификатов.
-
Учитывая свойства файла конфигурации, приведенного выше, для настройки component_keyring_oci создайте глобальный файл конфигурации, названный component_keyring_oci.cnf, в каталоге, где установлен файл библиотеки component_keyring_oci, и, необязательно, создайте локальный файл конфигурации, также названный component_keyring_oci.cnf, в каталоге данных.
Проверка установки компонента
После выполнения любой конфигурации, специфичной для компонента, запустите сервер. Проверьте установку компонента, изучив таблицу Performance Schema keyring_component_status:
mysql> SELECT * FROM performance_schema.keyring_component_status;
+---------------------+--------------------------------------------------------------------+
| STATUS_KEY | STATUS_VALUE |
+---------------------+--------------------------------------------------------------------+
| Component_name | component_keyring_oci |
| Author | Oracle Corporation |
| License | PROPRIETARY |
| Implementation_name | component_keyring_oci |
| Version | 1.0 |
| Component_status | Active |
| user | ocid1.user.oc1..aaaaaaaasqly<...> |
| tenancy | ocid1.tenancy.oc1..aaaaaaaai<...> |
| compartment | ocid1.compartment.oc1..aaaaaaaah2swh<...> |
| virtual_vault | ocid1.vault.oc1.iad.bbo5xyzkaaeuk.abuwcljtmvxp4r<...> |
| master_key | ocid1.key.oc1.iad.bbo5xyzkaaeuk.abuwcljrbsrewgap<...> |
| encryption_endpoint | bbo5xyzkaaeuk-crypto.kms.us-<...> |
| management_endpoint | bbo5xyzkaaeuk-management.kms.us-<...> |
| vaults_endpoint | vaults.us-<...> |
| secrets_endpoint | secrets.vaults.us-<...> |
| key_file | ~/.oci/oci_api_key.pem |
| key_fingerprint | ca:7c:e1:fa:86:b6:40:af:39:d6<...> |
| ca_certificate | disabled |
+---------------------+--------------------------------------------------------------------+
Значение Component_status, равное Active, указывает на успешную инициализацию компонента.
Если компонент не может быть загружен, запуск сервера завершается ошибкой. Проверьте журнал ошибок сервера на наличие диагностических сообщений. Если компонент загружается, но не может быть инициализирован из-за проблем с конфигурацией, сервер запускается, но значение Component_status равно Disabled. Проверьте журнал ошибок сервера, исправьте проблемы с конфигурацией и используйте оператор ALTER INSTANCE RELOAD KEYRING для перезагрузки конфигурации.
Можно запросить у сервера MySQL список существующих ключей. Чтобы увидеть существующие ключи, изучите таблицу Performance Schema keyring_keys.
mysql> SELECT * FROM performance_schema.keyring_keys;
+-----------------------------+--------------+----------------+
| KEY_ID | KEY_OWNER | BACKEND_KEY_ID |
+-----------------------------+--------------+----------------+
| audit_log-20210322T130749-1 | | |
| MyKey | me@localhost | |
| YourKey | me@localhost | |
+-----------------------------+--------------+----------------+
Использование компонента хранилища ключей
component_keyring_oci поддерживает функции, составляющие стандартный интерфейс службы хранилища ключей MySQL. Операции с хранилищем ключей, выполняемые этими функциями, доступны в операторах SQL, как описано в разделе 8.4.4.13 «Функции управления ключами хранилища ключей общего назначения».
Пример:
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');
Сведения о характеристиках значений ключей, разрешенных component_keyring_oci, см. в разделе 8.4.4.11 «Поддерживаемые типы и длины ключей хранилища ключей».
© 2025 Oracle
Licensed under the GPLv2 License.