8.4.4.9 Использование компонента хранилища ключей Oracle Cloud Infrastructure
Компонент хранилища ключей Oracle Cloud Infrastructure входит в MySQL Enterprise Edition, коммерческий продукт. Дополнительную информацию о коммерческих продуктах см. на странице https://www.mysql.com/products/.
component_keyring_oci является частью инфраструктуры компонента, которая взаимодействует с хранилищем Oracle Cloud Infrastructure для хранения данных на заднем плане. Никакие ключевые данные не хранятся постоянно в локальном хранилище сервера 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 пользователя из консоли, используйте инструкции по адресу Необходимые ключи и OCID.Это значение обязательно.
-
“tenancy”: OCID арендатора Oracle Cloud Infrastructure, которыйcomponent_keyring_ociиспользует в качестве местоположения отсека MySQL. Перед использованиемcomponent_keyring_oci, вы должны создать арендатора, если он не существует. Чтобы получить OCID арендатора из консоли, используйте инструкции по адресу Необходимые ключи и OCID.Это значение обязательно.
-
“compartment”: OCID отсека арендатора, которыйcomponent_keyring_ociиспользует в качестве местоположения ключей MySQL. Перед использованиемcomponent_keyring_oci, вы должны создать отсек или под отсек MySQL, если он не существует. Этот отсек не должен содержать ключей или секретов хранилища. Он не должен использоваться системами, отличными от MySQL Keyring. Для получения информации об управлении отсеками и получении OCID, см. Управление отсеками.Это значение обязательно.
-
“virtual_vault”: OCID хранилища Oracle Cloud Infrastructure, котороеcomponent_keyring_ociиспользует для операций шифрования. Перед использованиемcomponent_keyring_oci, вы должны создать новое хранилище в отсеке MySQL, если он не существует. (В качестве альтернативы, вы можете повторно использовать существующее хранилище, которое находится в родительском отсеке отсека MySQL.) Пользователи отсека могут видеть и использовать только ключи в своих соответствующих отсеках. Для получения информации о создании хранилища и получении OCID хранилища, см. Управление хранилищами.Это значение обязательно.
-
“encryption_endpoint”: Конечная точка сервера шифрования Oracle Cloud Infrastructure, которуюcomponent_keyring_ociиспользует для генерации зашифрованной или закодированной информации (шифртекста) для новых ключей. Конечная точка шифрования специфична для хранилища, и Oracle Cloud Infrastructure назначает её во время создания хранилища. Чтобы получить OCID конечной точки, просмотрите подробные сведения о конфигурации вашего хранилища keyring_oci, используя инструкции по адресу Управление хранилищами.Это значение обязательно.
-
"management_endpoint": Конечная точка сервера управления ключами Oracle Cloud Infrastructure, которуюcomponent_keyring_ociиспользует для перечисления существующих ключей. Конечная точка управления ключами специфична для хранилища, и Oracle Cloud Infrastructure назначает её во время создания хранилища. Чтобы получить OCID конечной точки, просмотрите подробные сведения о конфигурации вашего хранилища keyring_oci, используя инструкции по адресу Управление хранилищами.Это значение обязательно.
-
“vaults_endpoint”: Конечная точка сервера хранилищ Oracle Cloud Infrastructure, которуюcomponent_keyring_ociиспользует для получения значения секретов. Конечная точка хранилищ специфична для хранилища, и Oracle Cloud Infrastructure назначает её во время создания хранилища. Чтобы получить OCID конечной точки, просмотрите подробные сведения о конфигурации вашего хранилища keyring_oci, используя инструкции по адресу Управление хранилищами.Это значение обязательно.
-
“secrets_endpoint”: Конечная точка сервера секретов Oracle Cloud Infrastructure, которуюcomponent_keyring_ociиспользует для перечисления, создания и снятия с эксплуатации секретов. Конечная точка секретов специфична для хранилища, и Oracle Cloud Infrastructure назначает её во время создания хранилища. Чтобы получить OCID конечной точки, просмотрите подробные сведения о конфигурации вашего хранилища keyring_oci, используя инструкции по адресу Управление хранилищами.Это значение обязательно.
-
“master_key”: OCID главного ключа шифрования Oracle Cloud Infrastructure, которыйcomponent_keyring_ociиспользует для шифрования секретов. Перед использованиемcomponent_keyring_oci, вы должны создать криптографический ключ для отсека Oracle Cloud Infrastructure, если он не существует. Укажите имя, специфичное для MySQL, для сгенерированного ключа и не используйте его для других целей. Для получения информации о создании ключей, см. Управление ключами.Это значение обязательно.
-
“key_file”: Имя пути файла, содержащего закрытый ключ RSA, которыйcomponent_keyring_ociиспользует для аутентификации Oracle Cloud Infrastructure. Вы также должны загрузить соответствующий открытый ключ RSA с помощью консоли. Консоль отображает значение отпечатка ключа, которое вы можете использовать для установки значения"key_fingerprint". Для получения информации о генерации и загрузке ключей API, см. Необходимые ключи и OCID.Это значение обязательно.
-
“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. Для получения информации о получении отпечатков ключей, см. Необходимые ключи и OCID.
Это значение обязательно.
“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 | |
+-----------------------------+--------------+----------------+
Использование компонента Vault Keyring
component_keyring_oci поддерживает функции, составляющие стандартный интерфейс сервиса MySQL Keyring. Операции Keyring, выполняемые этими функциями, доступны в операторах SQL, как описано в разделе 8.4.4.12 «Общие функции управления ключами Keyring».
Пример:
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');
Сведения о характеристиках значений ключей, разрешённых component_keyring_oci, см. в разделе 8.4.4.10 «Поддерживаемые типы и длины ключей Keyring».
© 2025 Oracle
Licensed under the GPLv2 License.