ただ思いついたことを順番に実行したメモ。
1. keyring_fileを食った状態でt1を作る。
2. keyring_fileをコピーして消す
3. t2を作る -> エラーログなし
4. mysqldを停止してkeyring_fileを戻す
5. mysqldを起動する
6. t1もt2も読める
7. keyring_fileをコピーして消してmysqld再起動
8. t1, t2は読めない -> 起動時のエラーログに出る
9. t3を作る
10. mysqld再起動
11. t3を作った時点でkeyring_fileが変わっているのでt1, t2は読めない、t3だけが読める状態
```
2024-01-20T14:29:22.972253Z 1 [ERROR] [MY-012664] [InnoDB] Failed to decrypt encryption information, please check whether key file has been changed!
2024-01-20T14:29:22.972297Z 1 [ERROR] [MY-012226] [InnoDB] Encryption information in datafile: ./d1/t1.ibd can't be decrypted, please confirm that keyring is loaded.
2024-01-20T14:29:22.972780Z 1 [ERROR] [MY-012664] [InnoDB] Failed to decrypt encryption information, please check whether key file has been changed!
2024-01-20T14:29:22.972795Z 1 [ERROR] [MY-012226] [InnoDB] Encryption information in datafile: ./d1/t2.ibd can't be decrypted, please confirm that keyring is loaded.
```
12. mysqldを止めてt3を作ったkeyring_fileを消してt2までの時点のkeyring_fileを戻して起動
13. t1, t2は読めるけどt3が読めない状態で起動
14. t3のことは忘れて、keyring_fileをコピーして消してmysqld再起動 -> 当然t1, t2が読めない状態で起動
15. keyring_fileを戻してt4を作る
16. mysqld再起動
17. t1, t2は読めない、t4だけが読める
keyring_fileを食わせて起動したらさっさと消してしまってマスターキーのローテーションの時だけ戻せば…とか雑なことを考えたけど、その間に暗号化テーブルを作られたら簡単に詰む
0 件のコメント :
コメントを投稿