✅【目的】
TDE(Transparent Data Encryption)は、データベースの外からストレージを直接読み取って機密情報が漏洩するのを防ぐための暗号化技術です。特に**「保存中のデータ(data at rest)」**を暗号化します。
-
例:バックアップやエクスポートファイルも暗号化されていれば、外部からのアクセスでは内容を読み取れません。
🛡️【利点】
-
データベース経由でしかデータにアクセスできないように制限
-
アプリケーションに変更不要で導入可能
-
GDPR、CCPA、HIPAAなどの法規制に準拠
-
Oracle Advanced Securityの一部として提供
🔑【TDEの2階層アーキテクチャ】
-
マスターキー(Master Key):外部の「セキュリティモジュール(キー・ストア)」に保存される
-
テーブルキー / 表領域キー:それぞれの暗号化対象(列や表領域)ごとに生成される
マスターキー → テーブルキー or 表領域キー → 実データ
という構造で暗号化される。
💼【外部セキュリティモジュール(Keystore)】
-
ソフトウェア or ハードウェアのキーストア(通常はPKCS#12形式のウォレット)
-
パスワード、OS権限、暗号化により保護
-
wallet.p12
やcwallet.sso
ファイルとして保存 -
マスターキーの安全な保管場所であり、これが無いと暗号化データにアクセス不可
🔄【リキー(Rekeying)】
-
セキュリティポリシーにより定期的な鍵変更が必要な場合、マスターキーを再生成するだけで済む
-
各テーブルキー・表領域キーを再暗号化するが、実データは変更不要 → 高効率
🛠️【TDEの構成ステップ】
🔹①ウォレットディレクトリ作成
$ORACLE_BASE/admin/<CDB名>/wallet
に作成
🔹②初期化パラメータ変更(SPFILE)
→ DB再起動が必要
🔹③パスワード付きウォレット作成
🔹④ウォレットを開く/閉じる
🔹⑤オートログインウォレット(自動起動対応)を作成
🔹⑥マスターキーの作成(ルートCDBや各PDB)
🧪【確認コマンド】
-
V$ENCRYPTION_WALLET
:ウォレット状態(OPEN/CLOSED、マスターキーの有無)を確認 -
DBA_TABLESPACES
:各表領域の暗号化状況(ENCRYPTED列)を確認
⚠️【注意点】
-
ウォレット(Keystore)を紛失すると、暗号化されたデータは復元不可能!
-
定期的なウォレットファイルのバックアップを推奨(例:外部ストレージ)