관리형 접두사 목록이 뭐야? 관리형 접두사 목록으로 CIDR을 관리해 보자

관리형 접두사 목록으로 CIDR을 관리해 보는 과정을 정리해 봤습니다.
2022.08.22

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 관리형 접두사 목록으로 CIDR을 관리해 보는 과정을 정리해 봤습니다.

관리형 접두사 목록?

관리형 접두사 목록은 하나 이상의 CIDR 블록 세트입니다. 접두사 목록을 사용하면 보안 그룹과 라우팅 테이블을 보다 쉽게 구성하고 유지 관리할 수 있습니다.

AWS 공식 문서에 따르면 다음과 같습니다.

즉, 관리형 접두사 목록을 사용해서 보다 쉽게 많은 수의 IP 주소들을 관리할 수 있습니다.

예를 들면, SSH 통신을 허용하는 IP 주소가 4개일 경우 이미지와 같이 4개의 IP 주소를 허용해야 합니다.

하지만 6개 8개 이상으로 늘어나게 된다면, 관리하기가 힘들어질 것입니다.

이러한 상황을 해결하기 위해 관리형 접두사 목록을 사용 한다면, 보다 쉽게 많은 수의 IP 주소를 관리할 수 있습니다.

콘솔에서 관리형 접두사 목록 생성

VPC에서「관리형 접두사 목록」으로 들어와서「접두사 목록 생성」버튼을 클릭합니다.

접두사 목록 이름을 입력하고, 최대 항목을 입력합니다.

최대 항목의 경우 관리할 IP 주소의 최대 허용 수를 의미합니다.

최소 1개에서 최대 1000개까지 허용합니다.

최대 항목은 접두사 목록을 생성하고 나서 수정이 가능하지만, 최대 항목을 올리는 것은 가능하나, 낮추는 것은 아직 AWS에서 지원하고 있지 않습니다.

적절히 IP 주소를 넣어주고「접두사 목록 생성」버튼을 클릭해서 접두사 목록 생성을 끝마칩니다.

접두사 목록 크기를 수정하고 싶은 경우「작업」에서「접두사 목록 크기 조정」을 클릭합니다.

접두사 목록의 크기를 낮춰 보면 다음과 같은 에러가 발생하는 것을 확인할 수 있습니다.

이제 보안 그룹에서 접두사 목록을 추가할 수 있습니다.

이렇게 접두사 목록을 추가하면 인바운드 규칙에서 4개 였던 IP 주소가 단 하나로 줄어들면서 보다 깔끔하게 보안 그룹을 관리할 수 있습니다.

CloudFormation으로 접두사 목록 생성

AWSTemplateFormatVersion: '2010-09-09'
Description: Create PrefixList for SecurityGroup
Resources:
# PrefixList
  PrefixList:
    Type: AWS::EC2::PrefixList
    Properties: 
      AddressFamily: IPv4
      Entries: 
        - Cidr: x.x.x.x/x
        - Cidr: x.x.x.x/x
        - Cidr: x.x.x.x/x
        - Cidr: x.x.x.x/x
      MaxEntries: 4
      PrefixListName: test-prefix

# Outputs
Outputs:
  PrefixList:
    Value: !Ref PrefixList
    Export:
      Name: !Sub test-prefix

CloudFormation으로 접두사 목록을 생성합니다.

AWSTemplateFormatVersion: "2010-09-09"
Description: Create SecurityGroup

Parameters:
# Input Parameters
  VPCID:
    Description: "VPC ID"
    Type: AWS::EC2::VPC::Id

Resources:
# Security Group
  SecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupName: test-sg
      GroupDescription: Prefix test Security Group
      SecurityGroupIngress:
        - IpProtocol: "tcp"
          FromPort: 22
          ToPort: 22
          SourcePrefixListId: !ImportValue test-prefix
      SecurityGroupEgress:
        - CidrIp: "0.0.0.0/0"
          IpProtocol: "-1"
      VpcId: !Ref VPCID
      Tags:
        - Key: Name
          Value: test-sg
# OutPut
Outputs:
  SecurityGroup:
    Value: !Ref SecurityGroup
    Description: Prefix test Security Group
    Export:
      Name: test-sg

마지막으로 보안 그룹을 생성합니다,

인바운드 규칙은 접두사 목록을 가져와서 적용합니다.

CloudFormation 스택을 생성하고 확인해 보면 test-prefix라는 관리형 접두사 목록이 생성 된 것을 확인할 수 있습니다.

보안 그룹 또 한 인바운드 규칙에 관리형 접두사 목록이 설정된 것을 확인할 수 있습니다.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !