keyring_encrypted_file
プラグインは、商用製品である MySQL Enterprise Edition に含まれている拡張機能です。 商用製品の詳細は、https://www.mysql.com/products/ を参照してください。
keyring_encrypted_file
キーリングプラグインは、サーバーホストに対してローカルな暗号化ファイルに鍵リングデータを格納します。
暗号化キー管理用の keyring_encrypted_file
プラグインは、規制コンプライアンスソリューションとしては意図されていません。 PCI、FIPS などのセキュリティ標準では、キーボールトまたはハードウェアセキュリティモジュール (HSM) 内の暗号化キーを保護、管理および保護するためにキー管理システムを使用する必要があります。
keyring_encrypted_file
プラグインをインストールするには、セクション6.4.4.1「キーリングプラグインのインストール」 にある一般的なキーリングのインストール手順と、ここにある keyring_encrypted_file
に固有の構成情報を使用します。
サーバーの起動プロセス中に使用できるようにするには、--early-plugin-load
オプションを使用して keyring_encrypted_file
をロードする必要があります。 キーリングデータファイルを暗号化するためのパスワードを指定するには、keyring_encrypted_file_password
システム変数を設定します。 (パスワードは必須です。サーバーの起動時に指定しない場合、keyring_encrypted_file
の初期化は失敗します。) keyring_encrypted_file_data
システム変数は、オプションで、keyring_encrypted_file
プラグインがデータストレージに使用するファイルの場所を構成します。 デフォルト値はプラットフォーム固有です。 ファイルの場所を明示的に構成するには、起動時に変数値を設定します。 たとえば、サーバー my.cnf
ファイルで次の行を使用し、必要に応じてプラットフォームの .so
接尾辞とファイルの場所を調整し、選択したパスワードを置き換えます:
[mysqld]
early-plugin-load=keyring_encrypted_file.so
keyring_encrypted_file_data=/usr/local/mysql/mysql-keyring/keyring-encrypted
keyring_encrypted_file_password=password
示されているように書き込まれると、my.cnf
ファイルにはパスワードが格納されるため、パスワードは制限モードであり、MySQL サーバーの実行に使用されるアカウントからのみアクセス可能である必要があります。
キーリング操作はトランザクションです: keyring_encrypted_file
プラグインは、書込み操作中にバックアップファイルを使用して、操作が失敗した場合に元のファイルにロールバックできるようにします。 バックアップファイルの名前は、接尾辞が .backup
の keyring_encrypted_file_data
システム変数の値と同じです。
keyring_encrypted_file
プラグインの構成に使用されるシステム変数の詳細は、セクション6.4.4.13「キーリングシステム変数」 を参照してください。
正しい鍵リングストレージファイルが存在する場合にのみ鍵が確実にフラッシュされるように、keyring_encrypted_file
は鍵リングの SHA-256 チェックサムをファイルに格納します。 ファイルを更新する前に、プラグインは、予想されるチェックサムが含まれていることを確認します。 また、keyring_encrypted_file
では、AES を使用してファイルの内容を暗号化してからファイルに書き込み、ファイルの内容を復号化します。
keyring_encrypted_file
プラグインは、標準の MySQL キーリングサービスインタフェースを構成する関数をサポートしています。 これらの関数によって実行されるキーリング操作には、次の 2 つのレベルでアクセスできます:
SQL インタフェース: SQL ステートメントで、セクション6.4.4.10「汎用キーリングキー管理関数」 で説明されているユーザー定義関数 (UDF) をコールします。
C インタフェース: C 言語コードでは、セクション5.6.8.2「キーリングサービス」 で説明されているキーリングサービス関数をコールします。
例 (UDF を使用):
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');
keyring_encrypted_file
で許可されるキータイプの詳細は、セクション6.4.4.8「サポートされているキーリングキーのタイプと長さ」 を参照してください。