AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

NAT 게이트웨이가 있는 AWS Network Firewall을 설정하려면 어떻게 해야 하나요?

5분 분량
0

NAT 게이트웨이를 사용하여 트래픽을 검사하도록 AWS Network Firewall을 구성하고 싶습니다.

간략한 설명

AWS Network Firewall을 사용해 Amazon Virtual Private Cloud(VPC) 내부 리소스에서 들어오고 나가는 트래픽을 더욱 세밀하게 제어할 수 있습니다. Amazon VPC 리소스를 보호하려면 Network Firewall 엔드포인트를 자체 서브넷에 배포하고, 이를 통해 워크로드 인스턴스 트래픽을 라우팅합니다. 다음을 참고하세요.

  • VPC 생성
  • 방화벽 만들기
  • 트래픽 라우팅 구성

참고: Network Firewall이 방화벽 엔드포인트가 배포된 서브넷에 있는 워크로드를 검사할 수 없습니다.

해결 방법

VPC 생성

  1. Amazon VPC 콘솔을 엽니다.

  2. VPC 대시보드에서 VPC 생성을 클릭합니다.

  3. VPC 설정에서 다음을 입력합니다.
    VPC 및 기타를 선택합니다.
    이름 태그 자동 생성에서 VPC의 이름을 입력합니다. 이 예제에서는 VPC 이름이 Protected_VPC_10.0.0.0_16-vpc입니다. 자동 생성 옵션을 선택하면 이 이름이 VPC의 모든 리소스에 이름 태그로 추가됩니다.
    IPv4 CIDR block10.0.0.0/16을 입력합니다.

    IPv6 CIDR 블록의 경우, No IPv6 CIDR block을 선택합니다.

    테넌시에서 기본값을 선택합니다.

    **가용 영역 수(AZ)**에서 2를 선택합니다.
    가용 영역 사용자 지정에서 가용 영역을 두 개를 선택합니다. 이 예에서는 us-east-2aus-east-2b를 선택합니다.

    퍼블릭 서브넷 수2를 선택합니다.
    프라이빗 서브넷 수4를 선택합니다. 프라이빗 서브넷 중 2개는 방화벽용이고 2개는 워크로드 서브넷용입니다.
    **NAT 게이트웨이($)**에는 AZ당 1을 선택합니다. NAT 게이트웨이는 공용 서브넷에 자동으로 배포됩니다.

    VPC 엔드포인트에서 없음을 선택합니다.

  4. VPC 만들기를 선택합니다.

  5. 서브넷의 용도에 따라 이름을 지정합니다.
    퍼블릭 서브넷 2개는 NAT 게이트웨이용이며, 이 예에서는 이름이 Public_Subnet_AZaPublic_Subnet_AZb입니다.
    프라이빗 서브넷 두 개는 방화벽 엔드포인트용이며, 이 예에서는 이름이 Firewall_Subnet_AZaFirewall_Subnet_AZb입니다.
    나머지 프라이빗 서브넷 두 개는 워크로드 엔드포인트용이며, 이 예에서는 이름이 Private_Subnet_AZaPrivate_Subnet_AZb입니다.

방화벽 생성

  1. 탐색 창의 네트워크 방화벽에서 방화벽을 선택합니다.

  2. 방화벽 생성을 선택합니다.

  3. 방화벽 생성에서 다음을 입력합니다.
    방화벽 이름을 입력합니다. 이 예에서 방화벽 이름은 Network-Firewall-Test입니다.

    VPC에서 Protected_VPC_10.0.0.0_16-vpc를 선택합니다.
    방화벽 서브넷에서 첫 번째 가용 영역(us-east-2a)을 선택하고 서브넷에서 Firewall_Subnet_AZa을 선택합니다. 그런 다음 새 서브넷 추가를 선택하여 두 번째 가용성 영역(us-east-2b)에 동일한 작업을 한 뒤 서브넷에서 Firewall_Subnet_AZb을 선택합니다.

    연결된 방화벽 정책에서 빈 방화벽 정책 만들기 및 연결을 선택합니다.
    새 방화벽 정책 이름에 새 정책 이름을 입력합니다.

  4. 방화벽 생성을 선택합니다. 각 서브넷에는 고유한 라우팅 테이블이 있어야 합니다. 개인 서브넷 4개에는 고유한 라우팅 테이블이 연결되어 있고 공용 서브넷은 라우팅 테이블을 공유합니다. 인터넷 게이트웨이의 고정 경로를 사용해 새 라우팅 테이블을 만들어 공용 서브넷 중 하나에 연결해야 합니다.

트래픽 라우팅 구성

트래픽 흐름은 다음과 같습니다.

  • AZa의 워크로드 인스턴스에서 시작된 트래픽은 AZa의 방화벽 엔드포인트로 전달됩니다.

  • AZa의 방화벽 엔드포인트는 트래픽을 AZa의 NAT 게이트웨이로 라우팅합니다.

  • AZa의 NAT 게이트웨이는 트래픽을 VPC와 연결된 인터넷 게이트웨이로 전달합니다.

  • 인터넷 게이트웨이는 트래픽을 인터넷으로 전달합니다.

역방향 트래픽의 경우 반대 방향으로 동일한 경로를 따릅니다.

  • 인터넷에서 오는 리턴 트래픽은 VPC에 연결된 인터넷 게이트웨이에 도달합니다. VPC에는 인터넷 게이트웨이를 하나만 연결할 수 있습니다.

  • 인터넷 게이트웨이는 트래픽을 AZa의 NAT 게이트웨이로 전달합니다. 인터넷 게이트웨이는 워크로드 가용 영역에 따라 이 결정을 내립니다. 트래픽 대상이 AZa이기 때문에 인터넷 게이트웨이에서 AZa의 NAT 게이트웨이를 선택해 트래픽을 전달합니다. 인터넷 게이트웨이에 라우트 테이블을 유지할 필요는 없습니다.

  • AZa의 NAT 게이트웨이에서 트래픽을 AZa의 방화벽 엔드포인트로 전달합니다.

  • AZa의 방화벽 엔드포인트에서 트래픽을 AZa의 워크로드에 전달합니다.

참고: 인터넷 게이트웨이에서는 인터넷에서 워크로드 인스턴스로 돌아오는 패킷에 대해 NAT 게이트웨이를 확인할 수 있습니다.

VPC 및 방화벽을 생성한 후 라우팅 테이블을 구성해야 합니다. 라우팅 테이블을 구성할 때는 다음 사항에 유의하세요.

  • AZa의 프라이빗 서브넷(Private_Subnet_AZa)에서는 인터넷으로 가는 모든 트래픽을 AZa의 방화벽 엔드포인트(Firewall_Subnet_AZa)로 전달합니다. AZb의 프라이빗 서브넷과 AZb의 방화벽 엔드포인트에서도 동일한 과정을 거칩니다.

  • AZa의 방화벽 서브넷(Firewall_Subnet_AZa)에서는 인터넷으로 가는 모든 트래픽을 AZa의 NAT 게이트웨이( Public_Subnet_AZa)로 전달합니다. AZb의 방화벽 서브넷과 AZb의 NAT 게이트웨이에서도 동일한 과정을 거칩니다.

  • AZa의 공용 서브넷(Public_Subnet_AZa)에서는 모든 트래픽을 VPC에 연결된 인터넷 게이트웨이로 전달합니다.

  • 리턴 트래픽은 역방향으로 동일한 경로를 따릅니다.

참고: 트래픽은 동일한 가용성 영역에 유지되어 네트워크 방화벽은 동일한 방화벽 엔드포인트를 통해 송신 및 수신 트래픽 경로를 모두 갖습니다. 이렇게 하면 각 가용성 영역의 방화벽 엔드포인트에서 패킷 상태 저장 검사를 할 수 있습니다.

다음은 라우팅 테이블의 구성 예시입니다.

Public_Subnet_RouteTable_AZa(서브넷 연결: Public_Subnet_AZa)

대상타깃
0.0.0.0/0인터넷 게이트웨이
10.0.0.0/16로컬
10.0.128.0/20AZa의 방화벽 엔드포인트

참고: 이 예에서 10.0.128.0/20은 Private_Subnet_AZa의 CIDR입니다.

Public_Subnet_RouteTable_AZb(서브넷 연결: Public_Subnet_AZb)

대상타깃
0.0.0.0/0인터넷 게이트웨이
10.0.0.0/16로컬
10.0.16.0/20AZb의 방화벽 엔드포인트

참고: 이 예에서 10.0.16.0/20은 Private_Subnet_AZb의 CIDR입니다.

Firewall_Subnet_RouteTable_AZa(서브넷 연결: Firewall_Subnet_AZa)

대상타깃
0.0.0.0/0Public_Subnet_AZa의 NAT 게이트웨이
10.0.0.0/16로컬

Firewall_Subnet_RouteTable_AZb(서브넷 연결: Firewall_Subnet_AZb)

대상타깃
0.0.0.0/0NAT gateway in Public_Subnet_AZb
10.0.0.0/16로컬

Private_Subnet_RouteTable_AZa(서브넷 연결: Private_Subnet_AZa)

대상타깃
0.0.0.0/0AZa의 방화벽 엔드포인트
10.0.0.0/16로컬

Private_Subnet_RouteTable_AZb(서브넷 연결: Private_Subnet_AZb)

대상타깃
0.0.0.0/0AZb의 방화벽 엔드포인트
10.0.0.0/16로컬

라우팅이 올바르게 구성되었는지 확인하려면 프라이빗 서브넷 하나에 EC2 인스턴스를 배포하여 인터넷 연결을 테스트할 수 있습니다. 네트워크 방화벽 정책에 구성된 규칙이 없으면 트래픽 검사를 거치지 않고 인터넷에 도달합니다. 라우팅, 보안 그룹, 네트워크 액세스 제어 목록(네트워크 ACL)이 구성되어 있는지 확인한 후 방화벽 정책에 규칙을 추가합니다.

참고: 인터넷에서 방화벽을 통해 트래픽을 라우팅한 다음 NAT 게이트웨이로 라우팅하도록 네트워크 방화벽을 설정할 수도 있습니다. 자세한 내용은 인터넷 게이트웨이 및 NAT 게이트웨이가 있는 아키텍처를 참고하세요.

관련 정보

AWS Network Firewall에서 로깅 및 모니터링

라우팅 테이블 개념

VPC 라우팅 기능이 향상된 AWS Network Firewall의 배포 모델

AWS 공식
AWS 공식업데이트됨 2년 전