설명
Neptune 공개 엔드포인트는 인터넷에서 그래프 데이터베이스에 연결할 수 있는 경로를 제공합니다. 공개 접근에는 IAM 인증이 필요하며 실제 연결은 클러스터 보안 그룹과 네트워크 경로로도 제한됩니다. 공개 엔드포인트만으로 익명 데이터 접근이 허용되는 것은 아닙니다.
잠재적 영향
- 불필요한 외부 연결 시도와 노출 경로가 늘어날 수 있습니다.
- IAM 자격 증명이 침해되거나 권한이 과도하면 그래프 데이터의 노출·변조 또는 서비스 중단으로 이어질 수 있습니다.
해결 방법
- 공개 연결이 불필요하면 클라이언트의 사설 연결을 준비한 뒤 각 대상 인스턴스에 publicly_accessible = false를 설정하세요.
- 클러스터 보안 그룹에서 필요한 클라이언트와 DB 포트만 허용하고 IAM 데이터 접근 권한을 최소화하세요.
- writer와 reader 인스턴스, 장애 조치 후 사용할 엔드포인트를 함께 확인하고 필요한 연결은 유지되며 불필요한 접근은 차단되는지 시험하세요.
예시
인스턴스 설정의 발췌입니다. 참조 클러스터와 일치하는 서브넷 그룹을 별도로 구성하고 인스턴스 클래스가 대상 리전·엔진에서 지원되는지 확인하세요. 공개 엔드포인트에는 Neptune 1.4.6.x 이상과 IAM 인증, 적절한 공개 라우팅이 필요합니다.
변경 전
hcl
resource "aws_neptune_cluster_instance" "neptune_instance" {
cluster_identifier = aws_neptune_cluster.default.id
engine = "neptune"
instance_class = "db.r4.large"
publicly_accessible = true
}
이 인스턴스에 공개 접근을 요청합니다. 클러스터의 IAM 인증과 보안 그룹 제한은 여전히 필요합니다.
변경 후
hcl
resource "aws_neptune_cluster_instance" "neptune_instance" {
cluster_identifier = aws_neptune_cluster.default.id
engine = "neptune"
instance_class = "db.r4.large"
publicly_accessible = false
}
이 인스턴스의 공개 접근을 비활성화합니다. 같은 클러스터의 다른 인스턴스 설정과 실제 사설 연결도 확인하세요.