説明
グラフデータベースには、関係データ、ユーザー間のつながり、業務データが保存されることがあり、保存時暗号化が必要です。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
}
新しいクラスターに保存時暗号化を指定しています。既存データの移行手順の代わりとなる例ではありません。