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


17.3.2.1 バイナリログの暗号化の範囲

MySQL サーバーインスタンスのバイナリログ暗号化がアクティブな場合、暗号化の範囲は次のとおりです:

  • バイナリログファイルおよびリレーログファイルに書き込まれる保存データは、前述の 2 層暗号化アーキテクチャーを使用して、暗号化が開始された時点から暗号化されます。 暗号化を開始したときにサーバーに存在していた既存のバイナリログファイルおよびリレーログファイルは暗号化されません。 これらのファイルは、不要になったときにパージできます。

  • mysqlbinlog を含む MySQL クライアントに送信されるレプリケーションイベントストリーム内の移動中のデータは、転送用に復号化されるため、接続暗号化を使用して転送中に保護する必要があります (セクション6.3「暗号化された接続の使用」 および セクション17.3.1「暗号化接続を使用するためのレプリケーションの設定」 を参照)。

  • トランザクション中にバイナリログトランザクションおよびステートメントキャッシュに保持される使用中のデータは、キャッシュを格納するメモリーバッファー内で暗号化されていない形式です。 データは、メモリーバッファで使用可能な領域を超えると、ディスク上の一時ファイルに書き込まれます。 MySQL 8.0.17 から、バイナリログ暗号化がサーバー上でアクティブな場合、バイナリログキャッシュを保持するために使用される一時ファイルは、ストリーム暗号化に AES-CTR (AES カウンタモード) を使用して暗号化されます。 一時ファイルは揮発性であり、単一のプロセスに関連付けられているため、ランダムに生成されたファイルパスワードと初期化ベクトルを使用して単一層暗号化を使用して暗号化され、メモリー内にのみ存在し、ディスクまたはキーリングに格納されることはありません。 各トランザクションがコミットされると、バイナリログキャッシュがリセットされます: メモリーバッファがクリアされ、バイナリログキャッシュの保持に使用される一時ファイルが切り捨てられ、次のトランザクションで使用するために新しいファイルパスワードおよび初期化ベクトルがランダムに生成されます。 このリセットは、通常の停止または予期しない停止の後にサーバーが再起動された場合にも行われます。

注記

binlog_format=STATEMENT が設定されているときに LOAD DATA を使用する場合 (ステートメントがステートメントベースのレプリケーションで安全でないとみなされるため、お薦めしません)、変更が適用されるレプリカにデータを含む一時ファイルが作成されます。 これらの一時ファイルは、バイナリログの暗号化がサーバー上でアクティブな場合は暗号化されません。 代わりに、一時ファイルを作成しない行ベースまたは混合バイナリロギング形式を使用してください。


関連キーワード:  バイナリ, ベース, ソース, トランザクション, ステートメント, サーバー, ログ, GTID, 設定, 構成