MySQL5.7のTDE

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