설명
서브넷의 map_public_ip_on_launch = true는 인스턴스 시작 시 퍼블릭 IPv4 주소를 자동 할당하는 기본 동작을 설정합니다. 실제 할당은 시작 설정으로 재정의할 수 있으며, 퍼블릭 주소만으로 인터넷에서 접근할 수 있는 것은 아닙니다. 인터넷 게이트웨이 경로, 보안 그룹과 네트워크 ACL도 연결 가능성에 영향을 줍니다.
프라이빗 워크로드까지 공인 IP를 받으면 불필요한 노출 가능성이 커집니다. 서브넷 단계에서 자동 할당을 꺼두면 이러한 실수를 줄일 수 있습니다.
잠재적 영향
- 의도하지 않은 공개 접근: 주소와 경로, 접근 규칙이 함께 허용되면 외부에서 연결할 수 있습니다.
- 공격 표면 확대: 과도한 보안 그룹 규칙과 결합되면 서비스가 스캔 대상이 될 수 있습니다.
- 운영 실수 전파: 같은 서브넷을 쓰는 여러 인스턴스에 불필요한 주소 할당이 반복될 수 있습니다.
해결 방법
- 자동 할당이 필요 없는 서브넷에
map_public_ip_on_launch = false를 설정하세요. - 외부 노출이 필요한 리소스와 내부 전용 리소스를 구분하고 라우팅 및 접근 정책도 함께 구성하세요.
- 인스턴스 시작 옵션과 기존 퍼블릭 주소도 별도로 확인하세요. 서브넷 설정 변경이 이미 할당된 주소를 제거하지는 않습니다.
예시
변경 전
hcl
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
resource "aws_subnet" "example" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
tags = {
Name = "Positive"
}
map_public_ip_on_launch = true
}
변경 후
hcl
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
resource "aws_subnet" "example" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
tags = {
Name = "Negative2"
}
map_public_ip_on_launch = false
}
변경 전에는 서브넷의 퍼블릭 IPv4 자동 할당을 켜고, 변경 후에는 끕니다. 이 발췌에는 라우팅과 보안 그룹이 없으므로 전체 네트워크 격리를 보장하지 않습니다. 필요한 외부 통신 경로는 별도로 준비하세요.