ストレージ暗号化がない Amazon DocumentDB クラスター

DocumentDB の保存データとバックアップを暗号化し、既存データの移行を計画してください。

説明

ドキュメントデータベースにも顧客情報やアプリケーションの中核となるデータが保存され、保護が必要です。DocumentDB のストレージ暗号化は、データ、ログ、自動バックアップ、スナップショットを保護します。

実際に暗号化されていないクラスターには、この保護がありません。暗号化を有効にしても、DB 権限とネットワーク制御は別途必要です。

想定される影響

非暗号化ストレージやバックアップを不正に取得されると、機密性の高いドキュメントデータが漏えいするおそれがあります。組織のストレージ暗号化基準を満たせない場合もあります。

対処方法

  • 新規の aws_docdb_cluster に storage_encrypted = true を明示し、適切な既定のキーかカスタマーマネージドキーを選択してください。
  • 既存の非暗号化クラスターを直接暗号化することはできません。スナップショットを暗号化してコピーし、新しいクラスターへ復元する手順を計画してください。
  • Terraform の置き換え、データの整合性、接続先の切り替えを検討し、クラスターとスナップショットの暗号化、KMS 権限を確認してください。

例

クラスター作成設定の抜粋です。パスワードは安全に供給して Terraform の状態を保護してください。インスタンスとネットワークは別途構成し、skip_final_snapshot = true によって最終スナップショットが省略される点も検討してください。

変更前

hcl
resource "aws_docdb_cluster" "docdb_cluster" {
  cluster_identifier      = "my-docdb-cluster"
  engine                  = "docdb"
  master_username         = "foo"
  master_password         = var.docdb_password
  backup_retention_period = 5
  preferred_backup_window = "07:00-09:00"
  skip_final_snapshot     = true
}

ストレージ暗号化を要求していません。実際のクラスターの状態を確認してください。

変更後

hcl
resource "aws_docdb_cluster" "docdb_cluster" {
  cluster_identifier      = "my-docdb-cluster"
  engine                  = "docdb"
  master_username         = "foo"
  master_password         = var.docdb_password
  backup_retention_period = 5
  preferred_backup_window = "07:00-09:00"
  skip_final_snapshot     = true
  storage_encrypted       = true
}

新規クラスターのストレージ暗号化を要求します。既存データは自動で暗号化・移行されません。

参考資料