Neptune DB clusters should be encrypted at rest
Checks that a Neptune DB cluster is encrypted at rest with an AWS KMS key, which also covers its logs, automated backups and snapshots, so the graph's data stays protected from anyone who reaches the underlying storage.
- service
- Neptune
- severity
- Medium
- scope
- evaluated in every region
How to fix it
- Replaces the resource: Encryption cannot be turned on in place: stop writes, snapshot this cluster, restore the snapshot with encryption on, add DB instances, repoint clients, then delete this cluster.
- Affects another check: Deleting this cluster also clears RDS.27 for it, but its existing snapshots stay unencrypted and keep failing Neptune.6 until they are deleted.
In the console
Neptune → Snapshots → the cluster's snapshot → Actions → Restore snapshot
- Enable encryption
- Selected, with the aws/rds key or a customer managed key chosen now: the key cannot be changed later
With the AWS CLI
aws neptune restore-db-cluster-from-snapshot --db-cluster-identifier <new-db-cluster-identifier> --snapshot-identifier <db-cluster-snapshot-identifier> --engine neptune --kms-key-id <kms-key-id> --region <region>With Terraform
- Can't be undone: Do not set storage_encrypted in this cluster's own block: it is create-only, so the apply destroys this cluster instead of encrypting it.
resource "aws_neptune_cluster" "encrypted" {
cluster_identifier = var.new_cluster_identifier
snapshot_identifier = var.snapshot_identifier
storage_encrypted = true
kms_key_arn = var.kms_key_arn
}
See which of your accounts this check is failing on.
Book a live scan