설명
캐시 계층은 세션, 토큰, 임시 데이터 등 민감한 정보를 처리하는 경우가 많습니다. ElastiCache 전송 중 암호화는 클라이언트와 캐시 노드 사이, 그리고 노드 사이의 통신을 보호합니다.
전송 중 암호화가 없으면 내부 네트워크에서도 캐시 요청과 응답이 평문으로 전달될 수 있습니다. 저장 암호화와 인증은 별도로 설정해야 합니다.
잠재적 영향
통신 경로를 가로챌 수 있는 주체에게 세션이나 인증 정보가 포함된 캐시 값이 노출될 수 있습니다. 전송 데이터의 기밀성·무결성 요구사항도 충족하지 못할 수 있습니다.
해결 방법
- 지원되는 복제 그룹에
transit_encryption_enabled = true를 설정하고 애플리케이션의 TLS 연결과 인증서 검증을 확인하세요. - 기존 그룹의 설정 변경은 Valkey 7.2 이상과 Redis OSS 7 이상에서 지원됩니다. 이전 버전은 지원 버전으로의 업그레이드와 연결 전환을 먼저 계획하세요.
- 전환 중 평문 연결을 허용했다면 클라이언트 이전 후 TLS만 허용하도록 제한하고, 저장 암호화와 인증도 함께 관리하세요.
예시
Redis OSS 복제 그룹의 발췌입니다. 해당 리전에서 지원하는 엔진·노드 유형과 필요한 VPC·서브넷·보안 그룹을 확인하세요.
변경 전
hcl
resource "aws_elasticache_replication_group" "example" {
automatic_failover_enabled = true
preferred_cache_cluster_azs = ["us-west-2a", "us-west-2b"]
replication_group_id = "tf-rep-group-1"
description = "test description"
node_type = "cache.m4.large"
num_cache_clusters = 2
port = 6379
}
전송 암호화를 명시적으로 활성화하지 않습니다. 사용할 엔진의 기본값과 실제 연결 설정을 확인해야 합니다.
변경 후
hcl
resource "aws_elasticache_replication_group" "example" {
automatic_failover_enabled = true
preferred_cache_cluster_azs = ["us-west-2a", "us-west-2b"]
replication_group_id = "tf-rep-group-1"
description = "test description"
node_type = "cache.m4.large"
num_cache_clusters = 2
port = 6379
transit_encryption_enabled = true
}
전송 암호화를 활성화합니다. 애플리케이션도 TLS로 연결해야 하며 기존 연결의 전환을 확인해야 합니다.