ElastiCache for Redis クラスタ転送時の暗号化設定の有効化手順

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。
この記事ではAmazon ElastiCache Redis クラスターの転送時の暗号化について、セキュリティ課題の修正方法について解説します。
なお、転送時暗号化も保管時暗号化も クラスター作成時のみ 設定可能であり、あとから切り替えはできません。AWS ドキュメント データ移行には 新しいレプリケーショングループを作成 → バックアップ/復元 の手順が必須となります。

修復方法
AWSコンソールでの修正手順
既存のRedisで保管時の暗号化を後から有効にすることはできません。以下の手順で新しいレプリケーショングループを作成し、データを移行する必要があります。
- ElastiCache > Redis OSS キャッシュ に移動し、「Redis OSS キャッシュを作成」を選択
- ステップ2の詳細設定まで進んだタイミングで、「転送中の暗号化」で有効化にチェックを入れる
- チェックを入れたことを確認後、作成を行う。

Terraformでの修復手順
下記は 転送時暗号化必須 + 保管時暗号化(推奨) を有効にした例です。kms_key_id は at-rest を無効にする場合は省略可能です。
# --- 省略: VPC・Subnet・SG 定義 ---
resource "aws_kms_key" "elasticache" {
description = "ElastiCache encryption key"
enable_key_rotation = true
}
resource "aws_elasticache_replication_group" "redis" {
replication_group_id = "redis-${var.env}"
engine = "redis"
engine_version = "6.2"
node_type = "cache.t3.medium"
# セキュリティ
subnet_group_name = aws_elasticache_subnet_group.redis.name
security_group_ids = [aws_security_group.redis.id]
## 暗号化設定
transit_encryption_enabled = true # ★転送時
at_rest_encryption_enabled = true # ★保管時(任意)
kms_key_id = aws_kms_key.elasticache.arn
auth_token = var.auth_token
automatic_failover_enabled = true
multi_az_enabled = true
num_cache_clusters = 2
snapshot_window = "02:00-03:00"
snapshot_retention_limit = 7
}
注意点
transit_encryption_enabled = true
にすると Redis は TLS ハンドシェイクを要求します。クライアントは TLS 対応ドライバまたは-tls
オプションを使用してください。- 既存リソースを
terraform apply
で置換してもデータは残りません。必ず バックアップ → 新リソース → 復元 の順に進めます。
最後に
今回は、ElastiCacheにおいて、転送時の暗号化を有効にする方法についてご紹介しました。転送時の暗号化は、転送中のデータを保護するための重要なセキュリティ対策です。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。
運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。
最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。