保存時暗号化のない AWS Neptune クラスター

Neptune の保存データとバックアップを暗号化し、既存データの移行と復旧を準備してください。

説明

グラフデータベースには、関係データ、ユーザー間のつながり、業務データが保存されることがあり、保存時暗号化が必要です。Neptune の暗号化は、クラスターストレージ、ログ、バックアップ、スナップショットを保護します。

実際に暗号化されていないクラスターでは、この保存データの保護が不足します。IAM データベース認証と、ネットワークや転送中の保護は別途管理する必要があります。

想定される影響

未暗号化のストレージやバックアップを権限のない相手が取得すると、機密性の高いグラフデータが漏えいするおそれがあります。データベースの暗号化要件も満たせない場合があります。使用中の KMS キーが利用できなくなると、データへのアクセスや復旧にも影響する場合があります。

対処方法

  • 新しいクラスターに storage_encrypted = true を明示し、組織に適した KMS キーと権限を確認してください。
  • 既存の未暗号化クラスターは、設定の変更だけでは暗号化できません。未暗号化のスナップショットを新しい暗号化クラスターへ復元する際に KMS キーを指定する移行手順を計画してください。
  • Terraform による置き換え、データの整合性、アプリケーション接続、バックアップからの復旧を検証し、元のデータと必要なキーを保持してください。

例

新しいクラスターの設定の抜粋です。必要なインスタンスとネットワークは別途用意してください。

変更前

hcl
resource "aws_neptune_cluster" "neptune_cluster" {
  cluster_identifier                  = "neptune-cluster-demo"
  engine                              = "neptune"
  iam_database_authentication_enabled = true
  storage_encrypted                   = false
}

IAM 認証を有効にしても、保存時暗号化が無効な状態を補うものではありません。

変更後

hcl
resource "aws_neptune_cluster" "neptune_cluster" {
  cluster_identifier                  = "neptune-cluster-demo"
  engine                              = "neptune"
  iam_database_authentication_enabled = true
  storage_encrypted                   = true
}

新しいクラスターに保存時暗号化を指定しています。既存データの移行手順の代わりとなる例ではありません。

参考資料