暗号化適用手順

 暗号化適用手順

■目的
DockerのDBコンテナに対し以下手順を実施することでテーブルの暗号化を行う■手順
  1. DBコンテナ内での設定
  2. MariaDBでの暗号化pluginインストール
  3. 対象テーブルの暗号化を実行
■環境
Docker version 19.03.13
mysql  Ver 15.1 Distrib 10.3.8-MariaDB■操作
1.DBコンテナ内での設定
1.1 コンテナに入る
uims-portal/$ docker-compose exec db bash
->環境によってはここの操作不要1.2 必要なサーバのpluginをインストール
# apt-get update
# apt-get install vim
# apt-get install binutils
1.3 my.cnf(/etc/mysql/my.cnf)ファイルの編集
->本番環境ではディレクトリが異なる可能性もある
# vi /etc/mysql/my.cnf
1.3.2 my.cnfに以下を追記
[mariadb]
plugin_load_add = file_key_management
loose_file_key_management_filename = /etc/mysql/encryption/keyfile
loose_file_key_management_filename = /etc/mysql/encryption/keyfile.enc
loose_file_key_management_filekey = FILE:/etc/mysql/encryption/keyfile.key
loose_file_key_management_encryption_algorithm = AES_CTR
1.4 暗号化キーファイルを作成
# mkdir /etc/mysql/encryption
# touch /etc/mysql/encryption/keyfile
1.5 暗号化処理①
# openssl rand -hex 32 >> /etc/mysql/encryption/keyfile
# openssl rand -hex 32 >> /etc/mysql/encryption/keyfile
# openssl rand -hex 32 >> /etc/mysql/encryption/keyfile
1.6.1 暗号化ファイル(keyfile)の編集
# vi /etc/mysql/encryption/keyfile
1.6.2 keyfileの形式を変更
50aa47cc63424173cb6f9da8cae826d287ab40f3d0effc208d31bb200e5b951e
8184eaeeb86bb82e1ce0f6486ad8efc828709e4ace4b247ff27dbc67dc04b0e6
87a01eeff300a56dc19b2e849c338fff9ed2ce56ff7e1771be31fd1a628b280f

1;50aa47cc63424173cb6f9da8cae826d287ab40f3d0effc208d31bb200e5b951e
2;8184eaeeb86bb82e1ce0f6486ad8efc828709e4ace4b247ff27dbc67dc04b0e6
3;87a01eeff300a56dc19b2e849c338fff9ed2ce56ff7e1771be31fd1a628b280f
1.7.1 公開キーファイル(keyfile.key)の処理①
# openssl rand -hex 128 > /etc/mysql/encryption/keyfile.key
1.7.2 公開キーファイル(keyfile.key)の処理②
# openssl enc -aes-256-cbc -md sha1 \
-pass file:/etc/mysql/encryption/keyfile.key \
-in /etc/mysql/encryption/keyfile \
-out /etc/mysql/encryption/keyfile.enc
■■
2.MariaDBでの暗号化pluginインストール
2.1 MariaDBに入る
# mysql -uroot
2.2 暗号化プラグインをインストール
mariadb > install plugin file_key_management soname 'file_key_management.so';
2.3 インストールの検証
mariadb > show plugins;
file_ley_managementがインストールされていることを確認■■
3 対象テーブルの暗号化を実行
3.1 対象テーブルにalter tableを行う。以下例。
MariaDB [uims_test]> ALTER TABLE administrators encrypted=yes;
上記の操作を全てのテーブル(administrators,constracts,customer,oem_services,oems,services,users,virtual_utms)に実施.3.2 暗号化の検証
暗号前テーブル:
root@5a81afabdd12:/# strings /var/lib/mysql/uims_test/administrators.ibd 
BQTU*V
TU*V
infimum
supremum
infimum
supremum
infimum
supremum
暗号後テーブル:
root@5a81afabdd12:/# strings /var/lib/mysql/uims_test/administrators.ibd 
quFI
[oNt
9&H~
r@J*
>"@=
...
■参考資料
Next Post Previous Post
No Comment
Add Comment
comment url