説明
TDE(Transparent Data Encryption)は、データベース層で保存データのファイルを暗号化します。対応する RDS インスタンスで TDE を使用しない場合、この保護は適用されません。ただし別のストレージ暗号化がある場合もあり、TDE の設定だけで保存データがすべて平文とは判断できません。
TDE は通常のデータベース接続では透過的に復号するため、アカウントの権限管理や通信の暗号化の代わりにはなりません。
想定される影響
- データベースファイルを入手した攻撃者による読み取りを防ぐ保護が不足するおそれがあります。
- 組織のデータベース暗号化要件を満たせない可能性があります。
対処方法
- エンジン、バージョン、エディションの対応条件と KMS 権限を確認し、
tde_status = "Enabled"を設定してください。プロバイダーの文書では、有効化後の TDE は無効に戻せないため、変更の影響を先に検討してください。 - MySQL では、TDE を有効にしても既存テーブルは自動的に暗号化されません。公式手順で必要なテーブルを暗号化し、実際の状態を確認してください。
- バックアップ、復旧、キーの可用性を確認し、アカウント権限と TLS も別途管理してください。
例
MySQL 5.6 の設定を比較する抜粋です。TDE に対応するマイナーバージョンとエディションを確認し、インスタンスタイプと容量の変数には対象環境で利用できる値を指定してください。ネットワークなど他の作成設定は省略しています。
変更前
hcl
resource "alicloud_db_instance" "db_instance" {
engine = "MySQL"
engine_version = "5.6"
instance_type = var.tde_instance_type
instance_storage = var.db_storage_gb
tde_status = "Disabled"
}
TDE を無効にしています。保存データに別の保護が適用されているかも確認してください。
変更後
hcl
resource "alicloud_db_instance" "db_instance" {
engine = "MySQL"
engine_version = "5.6"
instance_type = var.tde_instance_type
instance_storage = var.db_storage_gb
tde_status = "Enabled"
}
TDE 機能を有効にしています。既存の MySQL テーブルの暗号化と確認は別途必要です。