MySQL 8.0 リファレンスマニュアル


6.4.4.1 キーリングプラグインのインストール

鍵リングサービスコンシューマには、鍵リングプラグインがインストールされている必要があります。 MySQL には、次のプラグインの選択肢があります:

  • keyring_file: キーリングデータをサーバーホストのローカルファイルに格納します。 すべての MySQL ディストリビューションで使用できます。

  • keyring_encrypted_file: キーリングデータをサーバーホストに対してローカルな暗号化されたファイルに格納します。 MySQL Enterprise Edition ディストリビューションで使用できます。

  • keyring_okv: Oracle Key Vault、Gemalto SafeNet KeySecure Appliance などの KMIP 互換のバックエンドキーリングストレージ製品を使用します。 MySQL Enterprise Edition ディストリビューションで使用できます。

  • keyring_aws: キー生成のバックエンドとして Amazon Web Services Key Management Service と通信し、キーの格納にローカルファイルを使用します。 MySQL Enterprise Edition ディストリビューションで使用できます。

  • keyring_hashicorp: バックエンドストレージのために HashiCorp Vault と通信します。 MySQL Enterprise Edition ディストリビューションで使用できます。

  • keyring_oci の場合: セクション6.4.4.7「Oracle Cloud Infrastructure Vault キーリングプラグインの使用」

このセクションでは、選択したキーリングプラグインをインストールする方法について説明します。 プラグインのインストールについての一般的な情報は、セクション5.6.1「プラグインのインストールおよびアンインストール」を参照してください。

キーリングプラグインとともにキーリングユーザー定義関数 (UDF) を使用する場合は、セクション6.4.4.10「汎用キーリングキー管理関数」 の手順に従って、プラグインのインストール後に UDF をインストールします。

サーバーで使用できるようにするには、プラグインライブラリファイルを MySQL プラグインディレクトリ (plugin_dir システム変数で指定されたディレクトリ) に配置する必要があります。 必要に応じて、サーバーの起動時に plugin_dir の値を設定してプラグインディレクトリの場所を構成します。

各キーリングプラグインのインストールは似ています。 次の手順では、keyring_file を使用します。 別のキーリングプラグインのユーザーは、keyring_file をその名前に置き換えることができます。

keyring_file プラグインライブラリファイルのベース名は keyring_file です。 ファイル名の接尾辞は、プラットフォームごとに異なります (たとえば、.so for Unix and Unix-like systems, .dll for Windows)。

注記

キーリングプラグインは一度に 1 つだけイネーブルにする必要があります。 複数のキーリングプラグインの有効化はサポートされていないため、予想どおりに結果が得られないことがあります。

キーリングプラグインは、コンポーネントが独自の初期化中に必要に応じてアクセスできるように、サーバーの起動シーケンスの最早段階でロードする必要があります。 たとえば、InnoDB ストレージエンジンはテーブルスペースの暗号化に鍵リングを使用するため、InnoDB を初期化する前に鍵リングプラグインをロードして使用可能にする必要があります。

プラグインをロードするには、--early-plugin-load オプションを使用して、プラグインを含むプラグインライブラリファイルに名前を付けます。 たとえば、プラグインライブラリファイルの接尾辞が .so であるプラットフォームでは、サーバーの my.cnf ファイルで次の行を使用し、必要に応じてプラットフォームの .so 接尾辞を調整します:

[mysqld]
early-plugin-load=keyring_file.so

サーバーを起動する前に、選択したキーリングプラグインのノートをチェックして、追加の構成が許可されているか必要かを確認します:

プラグイン固有の構成を実行した後、プラグインのインストールを検証します。 MySQL サーバーを実行した状態で、INFORMATION_SCHEMA.PLUGINS テーブルを調べるか、SHOW PLUGINS ステートメントを使用します (セクション5.6.2「サーバープラグイン情報の取得」 を参照)。 例:

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_file | ACTIVE        |
+--------------+---------------+

プラグインの初期化に失敗した場合は、サーバーエラーログで診断メッセージを確認してください。

プラグインは、--plugin-load--plugin-load-add オプション、INSTALL PLUGIN ステートメントなど、--early-plugin-load 以外の方法でロードできます。 ただし、これらのメソッドを使用してロードされたキーリングプラグインは、InnoDB などの特定のコンポーネントのサーバー起動シーケンスでは遅すぎる可能性があります:

  • --plugin-load または --plugin-load-add を使用したプラグインのロードは、InnoDB の初期化後に行われます。

  • INSTALL PLUGIN を使用してインストールされたプラグインは、mysql.plugin システムテーブルに登録され、その後のサーバーの再起動のために自動的にロードされます。 ただし、mysql.pluginInnoDB テーブルであるため、そこに指定されたプラグインは、InnoDB の初期化後にのみ起動時にロードできます。

コンポーネントが鍵リングサービスにアクセスしようとしたときに鍵リングプラグインを使用できない場合、そのコンポーネントはそのサービスを使用できません。 その結果、コンポーネントの初期化に失敗したり、機能が制限されて初期化されたりする可能性があります。 たとえば、InnoDB は、初期化時に暗号化されたテーブルスペースがあることを検出すると、キーリングへのアクセスを試みます。 キーリングが使用できない場合、InnoDB は暗号化されていないテーブルスペースにのみアクセスできます。 InnoDB が暗号化されたテーブルスペースにも確実にアクセスできるようにするには、--early-plugin-load を使用してキープラグインをロードします。


関連キーワード:  keyring, インストール, サーバー, file, 認証, パスワード, InnoDB, plugin, キー, コンポーネント