VPC 피어링 경로의 목적지 범위 점검

VPC 피어링 경로의 목적지를 상대 VPC에서 통신이 필요한 주소 범위로 제한하세요.

설명

VPC 피어링 경로에 0.0.0.0/0 또는 ::/0을 지정하면 더 구체적인 경로가 없는 트래픽까지 피어링 연결로 보낼 수 있습니다. 목적지는 상대 VPC의 실제 CIDR 또는 그 안에서 필요한 범위로 명확하게 지정해야 합니다.

피어링은 인터넷 공개나 다른 VPC로의 중계 기능이 아닙니다. 상대 VPC의 인터넷 게이트웨이나 NAT를 공유할 수도 없습니다. 실제 통신에는 활성 피어링, 양쪽 경로와 보안 그룹 등 접근 제어가 필요합니다.

잠재적 영향

  • 불필요한 목적지의 트래픽이 잘못된 경로로 전달되어 연결 실패나 라우팅 혼선이 발생할 수 있습니다.
  • 통신 대상과 경로가 불명확해져 네트워크 접근 범위의 검토와 장애 분석이 어려워질 수 있습니다.

해결 방법

  • 피어링 경로의 목적지를 상대 VPC의 필요한 CIDR, 서브넷 또는 개별 주소로 제한하세요.
  • 양쪽 라우트 테이블, 서브넷 연결과 반환 경로를 검토하고 필요한 보안 그룹 규칙만 허용하세요.
  • 변경 후 의도한 양방향 통신이 동작하고 다른 목적지의 경로가 영향을 받지 않는지 확인하세요.

예시

참조한 VPC와 피어링 연결을 별도로 구성해야 하는 부분 예제입니다. 두 라우트 테이블의 이름이 다르므로 두 번째 리소스를 추가하는 것만으로 기존 경로가 바뀌지는 않습니다.

변경 전

hcl
resource "aws_route_table" "public_route_table" {
  vpc_id = aws_vpc.vpc1.id

  route {
    cidr_block                = "0.0.0.0/0"
    vpc_peering_connection_id = aws_vpc_peering_connection.my_peering.id
  }
}

기본 IPv4 경로가 피어링 연결을 가리킵니다. 이 설정이 상대 VPC를 인터넷 게이트웨이로 만들지는 않습니다.

변경 후

hcl
resource "aws_route_table" "private_route_table" {
  vpc_id = aws_vpc.vpc1.id

  route {
    cidr_block                = aws_vpc.vpc2.cidr_block
    vpc_peering_connection_id = aws_vpc_peering_connection.my_peering.id
  }
}

목적지를 상대 VPC인 vpc2의 CIDR로 제한합니다. 실제로 필요한 범위가 더 작다면 그 범위로 좁히고, 해당 테이블의 서브넷 연결과 상대편 반환 경로도 확인하세요.

참조