Amazon Neptune DBクラスターの自動バックアップの保持期間の設定について

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Amazon Neptune DBクラスターの自動バックアップ保持期間を7日以上に設定する方法について、リスクと対策を解説します。

ポリシーの説明
Amazon Neptuneは、DBクラスターのボリュームを自動的にバックアップし、指定された保持期間の間、復元データを保持します。Neptuneのバックアップは以下の特徴を持ちます:
- 継続バックアップ: データベースのトランザクションログがS3に継続的にバックアップ
- ポイントインタイムリカバリ: 保持期間内の任意の時点への復元が可能
- 自動バックアップウィンドウ: 日次のバックアップウィンドウを設定可能
- 保持期間: 1~35日の間で設定可能
要件に応じて適切な保持期間を設定するようにしましょう。
修復方法
コンソールでの修復手順
AWSマネジメントコンソールを使用して、Neptune DBクラスターの自動バックアップ保持期間を7日以上に設定します。
- AWSマネジメントコンソールにログインし、Neptuneコンソールに移動します
- 左側のナビゲーションペインから「データベース」または「DBクラスター」を選択します
- 保持期間を変更したいDBクラスターを選択します
- 「アクション」ドロップダウンメニューから「変更」を選択します
- 「バックアップ」セクションで、「バックアップ保持期間」を7~35日の間で設定します(推奨: 7日以上)

- 「バックアップウィンドウ」を適切に設定します(例: 03:00-04:00 UTC)
- ページ下部の「次へ」をクリックします
- 変更内容を確認し、「クラスターの変更」をクリックして設定を保存します
Terraformでの修復手順
Terraformを使用して、Neptune DBクラスターの自動バックアップ保持期間を7日以上に設定します。
resource "aws_neptune_cluster" "example" {
cluster_identifier = "neptune-cluster-demo"
engine = "neptune"
engine_version = "1.3.2.0" # 最新の安定版を使用
# バックアップ設定(重要)
backup_retention_period = 14 # 14日間の保持を推奨
preferred_backup_window = "03:00-04:00" # UTC時間
preferred_maintenance_window = "sun:04:00-sun:05:00"
# スナップショット設定
skip_final_snapshot = false
final_snapshot_identifier = "${var.cluster_identifier}-final-snapshot-${formatdate("YYYY-MM-DD", timestamp())}"
copy_tags_to_snapshot = true
# 暗号化とセキュリティ
storage_encrypted = true
kms_key_arn = aws_kms_key.neptune.arn
deletion_protection = true
# 監査ログ
enable_cloudwatch_logs_exports = ["audit"]
# IAM認証
iam_database_authentication_enabled = true
# ネットワーク設定
db_subnet_group_name = aws_neptune_subnet_group.example.name
vpc_security_group_ids = [aws_security_group.neptune.id]
tags = {
Name = "neptune-cluster-demo"
Environment = var.environment
BackupRetention = "14days"
ManagedBy = "terraform"
LastUpdated = timestamp()
}
}
# 既存クラスターのバックアップ設定を更新する場合
resource "null_resource" "update_backup_retention" {
provisioner "local-exec" {
command = <<-EOT
aws neptune modify-db-cluster \
--db-cluster-identifier ${var.existing_cluster_id} \
--backup-retention-period ${var.backup_retention_days} \
--apply-immediately
EOT
}
}
# バックアップ設定の変数
variable "backup_retention_days" {
description = "Number of days to retain automated backups"
type = number
default = 14
validation {
condition = var.backup_retention_days >= 7 && var.backup_retention_days <= 35
error_message = "Backup retention period must be between 7 and 35 days."
}
}
主要な修正ポイント:
backup_retention_period
を最低7日、推奨14日以上に設定preferred_backup_window
でバックアップウィンドウを指定(ビジネス時間外を推奨)copy_tags_to_snapshot
をtrue
に設定してスナップショットの管理を容易化- 変数でバックアップ保持期間を管理し、バリデーションを実装
- 既存クラスターの変更は
apply-immediately
で即座に適用
最後に
この記事では、Amazon Neptune DBクラスターの自動バックアップ保持期間を7日以上に設定する方法について解説しました。適切なバックアップ保持期間の設定は、データ保護とビジネス継続性の基礎となります。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。