InnoDB テーブルスペース暗号化と Data at Rest Encryption の違い: どちらを選ぶべき?
MariaDB 10.1 の暗号化検証
InnoDB テーブルスペース暗号化 は、InnoDB テーブルスペース内のデータを暗号化することで、データベースサーバーへの不正アクセスからデータを保護します。
Data at Rest Encryption は、データベースファイル全体を暗号化することで、データベースサーバーの物理的な盗難や損失からデータを保護します。
これらの暗号化機能を有効にした後、暗号化が正しく設定されていることを検証 することが重要です。
検証方法
設定の確認
まず、暗号化機能が正しく設定されていることを確認する必要があります。
-
InnoDB テーブルスペース暗号化
# innodb_file_per_table オプションが有効になっていることを確認する innodb_file_per_table = 1 # 暗号化アルゴリズムが設定されていることを確認する innodb_encryption_algorithm = aes_128_gcm # マスター暗号化キーが設定されていることを確認する innodb_master_key_path = /path/to/master.key
-
Data at Rest Encryption
# file_key_management プラグインが有効になっていることを確認する plugin_load = keyring_file.so # キーファイルが設定されていることを確認する file_key_management_key_file = /path/to/keyfile.key # キーファイルのパスワードが設定されていることを確認する file_key_management_key_password = my_password
データの検証
-
# 暗号化されたテーブルを選択する USE my_database; SELECT * FROM my_table; # データが正しく表示されることを確認する
-
# データベースをバックアップする mysqldump -u root -p my_database > backup.sql # バックアップファイルを復元する mysql -u root -p < backup.sql # データが正しく復元されていることを確認する
ツールの利用
暗号化の検証には、いくつかのツールを使用することができます。
-
mariadb-validate-password コマンド
mariadb-validate-password --host=localhost --user=root --password=my_password --master-key-file=/path/to/master.key
-
mysqlcheck コマンド
mysqlcheck --check-encrypt --databases=my_database
これらのツールは、暗号化設定の検証や、暗号化されたデータの整合性チェックなどに役立ちます。
注意点
- 暗号化機能を有効にすると、データベースのパフォーマンスが低下する可能性があります。
- 暗号化キーを安全に保管することが重要です。
- 暗号化機能を無効にする場合は、データが失われる可能性があります。
InnoDB テーブルスペース暗号化
-- 暗号化されたテーブルを作成する
CREATE TABLE my_table (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB ENCRYPTION='AES_128_GCM';
-- データを挿入する
INSERT INTO my_table (name) VALUES ('John Doe');
-- データを読み出す
SELECT * FROM my_table;
Data at Rest Encryption
-- データベースを暗号化してバックアップする
mysqldump -u root -p --encrypt --databases=my_database > backup.sql
-- バックアップファイルを復元する
mysql -u root -p < backup.sql
暗号化設定の確認
-- InnoDB テーブルスペース暗号化
SHOW VARIABLES LIKE 'innodb_file_per_table';
SHOW VARIABLES LIKE 'innodb_encryption_algorithm';
SHOW VARIABLES LIKE 'innodb_master_key_path';
-- Data at Rest Encryption
SHOW VARIABLES LIKE 'plugin_load';
SHOW VARIABLES LIKE 'file_key_management_key_file';
SHOW VARIABLES LIKE 'file_key_management_key_password';
暗号化の検証
-- mariadb-validate-password コマンド
mariadb-validate-password --host=localhost --user=root --password=my_password --master-key-file=/path/to/master.key
-- mysqlcheck コマンド
mysqlcheck --check-encrypt --databases=my_database
- 暗号化機能は、MariaDB 10.1 以降で利用できます。
- 暗号化機能を使用するには、いくつかの要件を満たす必要があります。詳細は、MariaDB 10.1 ドキュメントの暗号化の章を参照してください。
暗号化検証のその他の方法
サーバーログの確認
MariaDB サーバーログには、暗号化に関する情報が記録されます。ログファイルを確認することで、暗号化が正しく設定されているかどうかを確認することができます。
監査ログの確認
監査ログには、データベースに対するすべての操作が記録されます。ログファイルを確認することで、暗号化されたデータへのアクセスが許可されているかどうかを確認することができます。
外部ツール
専門家の支援
暗号化の設定や検証に不安がある場合は、専門家の支援を受けることを検討してください。
encryption innodb mariadb