IAM 데이터베이스 인증이 비활성화된 Neptune 클러스터

Neptune 데이터 요청에 IAM 인증과 필요한 데이터 접근 권한을 적용하세요.

설명

Neptune에서 IAM 데이터베이스 인증을 활성화하면 요청에 AWS Signature Version 4(SigV4) 서명이 필요하며 IAM 정책으로 데이터 접근 권한을 관리합니다. 이 기능이 꺼져 있으면 이러한 IAM 기반 요청 인증과 권한 검사를 적용하지 않습니다.

네트워크에 연결할 수 있다는 이유만으로 데이터 작업을 허용하지 않도록 인증과 네트워크 제한을 함께 구성해야 합니다. 저장 암호화는 요청 인증을 대신하지 않습니다.

잠재적 영향

  • 데이터 접근이 필요 없는 클라이언트도 Neptune에 연결할 수 있으면 데이터를 조회하거나 변경할 수 있습니다.
  • 내부 시스템이 침해되면 IAM 기반 제한이 없는 데이터 접근 경로가 악용될 수 있습니다.

해결 방법

  • 클라이언트의 SigV4 서명과 필요한 데이터 접근 권한을 준비하고 iam_database_authentication_enabled = true를 설정하세요.
  • 인증 설정 변경은 엔진을 재시작하고 기존 연결을 종료하므로 점검 시간을 계획하세요.
  • 보안 그룹과 연결 경로를 필요한 클라이언트로 제한하고, 정상 요청의 처리와 권한 없는 요청의 거부를 확인하세요.

예시

같은 클러스터의 인증 설정을 비교합니다. DB 인스턴스, 서브넷·보안 그룹과 클라이언트 설정은 별도로 구성해야 합니다.

변경 전

hcl
resource "aws_neptune_cluster" "neptune_cluster" {
  cluster_identifier                  = "neptune-cluster-demo"
  engine                              = "neptune"
  storage_encrypted                   = true
  iam_database_authentication_enabled = false
}

저장 암호화는 켜져 있지만 IAM 데이터베이스 인증은 비활성화되어 있습니다.

변경 후

hcl
resource "aws_neptune_cluster" "neptune_cluster" {
  cluster_identifier                  = "neptune-cluster-demo"
  engine                              = "neptune"
  storage_encrypted                   = true
  iam_database_authentication_enabled = true
}

IAM 인증을 활성화합니다. 적용 전에 클라이언트의 요청 서명과 데이터 접근 권한이 준비되어 있어야 합니다.

참조