서브넷 CIDR에 /0을 지정한 RDS 구성

RDS에 사용할 서브넷은 유효한 VPC 주소 범위와 적절한 라우팅이 필요합니다. /0 범위를 수정하고, 내부 전용 데이터베이스의 실제 연결 경로를 제한하세요.

설명

RDS DB 서브넷 그룹에 포함할 서브넷의 CidrBlock에 0.0.0.0/0을 지정하거나 Ipv6CidrBlock에 ::/0을 지정하면 유효하지 않은 AWS 서브넷 구성이 됩니다. 이 값들은 전체 주소 공간을 나타내므로 서브넷에 할당할 수 있는 범위를 선택해야 합니다.

서브넷의 주소 범위와 라우트의 목적지는 서로 다릅니다. 인터넷 게이트웨이로 향하는 직접 경로가 있는 서브넷은 공개 서브넷입니다. 10.0.0.0/24 같은 사설 주소 범위를 사용해도 공개 서브넷일 수 있습니다. 내부 전용 데이터베이스는 서브넷 그룹, 라우팅, PubliclyAccessible, 보안 그룹을 함께 구성해 필요한 연결만 허용해야 합니다.

잠재적 영향

  • 유효하지 않은 서브넷 CIDR은 리소스 생성이나 업데이트 실패로 이어질 수 있습니다.
  • 주소 범위만 보고 내부 전용 네트워크라고 판단하면 의도하지 않은 인터넷 연결 경로를 남길 수 있습니다. 공개 주소와 네트워크 접근 권한이 함께 허용되면 외부에서 데이터베이스에 연결을 시도할 수 있습니다.

해결 방법

  • VPC 주소 범위 안에서 AWS가 지원하는 서브넷 CIDR을 선택하고, 다른 서브넷과 겹치지 않도록 하세요. 유지 관리와 장애 조치에 필요한 여유 주소도 확보하세요.
  • 내부 전용 데이터베이스에는 인터넷 게이트웨이로 직접 연결되지 않는 서브넷을 사용하세요. DB 서브넷 그룹의 모든 서브넷과 라우트를 검토하고 PubliclyAccessible: false 및 필요한 클라이언트만 허용하는 보안 그룹을 구성하세요. 변경 전에 애플리케이션의 사설 연결 경로를 준비하고 연결을 테스트하세요.
  • 배포 위치의 서브넷 그룹 요구 사항을 확인하세요. 일반적인 리전 배포에는 서로 다른 두 가용 영역의 서브넷이 필요하며 Local Zone에는 별도 예외가 있습니다. 필수 속성과 참조, 기존 데이터베이스에 대한 변경 영향을 검증하세요.

예시

아래는 서브넷 CIDR을 비교하는 불완전한 템플릿입니다. 변경 전의 mySubnet1 정의와 두 예시의 DBSubnetGroupDescription, VpcId, 데이터베이스 생성에 필요한 속성이 생략되어 있습니다. 변경 후에도 일반적인 리전 배포에 필요한 두 가용 영역의 구성이 없습니다. 논리 ID가 서로 다르므로 기존 스택을 업데이트할 때는 대상 리소스를 확인하세요.

변경 전

yaml
Resources:
  Positive1:
    Type: AWS::RDS::DBInstance
    Properties:
      DBSubnetGroupName:
        Ref: myDBSubnetGroup
  myDBSubnetGroup:
    Type: "AWS::RDS::DBSubnetGroup"
    Properties:
      SubnetIds:
        - Ref: mySubnet1
        - Ref: mySubnet2
  mySubnet2:
    Type: AWS::EC2::Subnet
    Properties:
      CidrBlock: 0.0.0.0/0

변경 후

yaml
Resources:
  Negative1:
    Type: AWS::RDS::DBInstance
    Properties:
      DBSubnetGroupName:
        Ref: myDBSubnetGroup0
  myDBSubnetGroup0:
    Type: "AWS::RDS::DBSubnetGroup"
    Properties:
      SubnetIds:
        - Ref: mySubnet10
  mySubnet10:
    Type: AWS::EC2::Subnet
    Properties:
      CidrBlock: 10.0.0.0/24

설명:

  • 변경 전: 0.0.0.0/0은 유효한 AWS 서브넷 CIDR이 아닙니다. 공개 서브넷은 이 값을 주소 범위로 지정해서 만드는 것이 아니라 라우팅을 통해 구성합니다.
  • 변경 후: 10.0.0.0/24는 VPC 범위 안에 있고 다른 서브넷과 겹치지 않으면 사용할 수 있는 크기의 CIDR입니다. 내부 전용 접근을 보장하려면 예시에 없는 라우트, 공개 접근 설정과 보안 그룹도 구성해야 합니다.

참조