설명
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 인증을 활성화합니다. 적용 전에 클라이언트의 요청 서명과 데이터 접근 권한이 준비되어 있어야 합니다.