MySQL5.7にはTDE(Transparent Data Encryption)というデータ暗号化機能があります。 アプリケーション側で暗号化をしなくても、テーブルファイルなどを暗号化してくれます。
設定手順は以下のような感じです。
- TDEの有効下
/etc/my.cnf
[mysqld] early-plugin-load=keyring_file.so keyring_file_data=/usr/local/mysql/mysql-keyring/keyring
- 使用するkeyringファイルの置き場所作成
# mkdir -p /usr/local/mysql/mysql-keyring # chown -R mysql.mysql /usr/local/mysql # chmod 750 /usr/local/mysql/mysql-keyring
- mysqld再起動
# service mysqld restart
暗号化したいテーブルを作成するには以下のようにします。
> CREATE TABLE sample_tbl (id int(10) PRIMARY KEY AUTO_INCREMENT, value VARCHAR(100)) ENGINE=innodb ENCRYPTION='Y';
参考文献
http://qiita.com/hmatsu47/items/476d446887244de17ae4
https://yakst.com/ja/posts/3917