【とうかてきでーたあんごうか】

透過的データ暗号化(TDE) とは?

💡 アプリは何も知らなくていい——DBが勝手に暗号化・復号化してくれる
📌 このページのポイント
透過的データ暗号化(TDE)のしくみ アプリ 通常のSQLを発行 SQL DBエンジン 読み込み時: 復号 書き込み時: 暗号化 (アプリは意識しない) ↑ 透過的 暗号化 ストレージ 暗号化データ 🔒 キーなし→読めない KMS(鍵管理) 暗号化キーを安全に保管 平文データ
TDE:ストレージへの暗号化・復号をDBエンジンが自動で行い、アプリは意識しない
ひよこ ひよこ

透過的データ暗号化って、普通の暗号化と何が違うの?

ペンギン先生 ペンギン先生

「透過的」というのは「アプリから見えない」という意味だよ。アプリは通常のSQL文を投げるだけで、DBエンジンがディスクへ書く前に自動で暗号化してくれるんだ。アプリのコードを1行も変えなくていい。

ひよこ ひよこ

暗号化されているのにSQLで普通に読めるの?

ペンギン先生 ペンギン先生

そう!読み込むときはDBエンジンが自動で復号してメモリに乗せるから、SQLクエリの結果は普通のデータとして返ってくる。暗号化・復号はDBとストレージの間でだけ起きているんだよ。

ひよこ ひよこ

どんな攻撃から守れるの?

ペンギン先生 ペンギン先生

ディスクが盗まれたり、バックアップファイルが漏洩したりしても、暗号化キーがなければデータを読めない。物理的な媒体の盗難やクラウドストレージ誤公開への対策として効果的だよ。

ひよこ ひよこ

逆に守れないことはあるの?

ペンギン先生 ペンギン先生

正規の認証情報でDBに接続した人の不正アクセスは防げないよ。TDEはあくまで「ファイルレベルの暗号化」だから、SQLが通る経路では復号された状態になっているんだ。

ひよこ ひよこ

キーの管理って難しそうだけど、どうすればいいの?

ペンギン先生 ペンギン先生

AWSのKMS(Key Management Service)やHSMで一元管理するのが定石だよ。キー自体をDBと同じサーバーに置くと、サーバーごと盗まれたときに意味がなくなるから注意が必要だね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「透過的データ暗号化(TDE)」って出てきたら「DBファイルを自動暗号化する機能」と思えればだいたいOK!
📖 おまけ:英語の意味
「Transparent Data Encryption」 = 透過的データ暗号化
💬 Transparent(透過的=ユーザーには見えないところで動く)+Data Encryption(データ暗号化)。アプリ側には「透明」に見えるまま暗号化する仕組みだよ
← 用語集にもどる