Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
NAT 게이트웨이가 있는 AWS Network Firewall을 설정하려면 어떻게 해야 하나요?
NAT 게이트웨이를 사용하여 트래픽을 검사하도록 AWS Network Firewall을 구성하고 싶습니다.
간략한 설명
AWS Network Firewall을 사용해 Amazon Virtual Private Cloud(VPC) 내부 리소스에서 들어오고 나가는 트래픽을 더욱 세밀하게 제어할 수 있습니다. Amazon VPC 리소스를 보호하려면 Network Firewall 엔드포인트를 자체 서브넷에 배포하고, 이를 통해 워크로드 인스턴스 트래픽을 라우팅합니다. 다음을 참고하세요.
- VPC 생성
- 방화벽 만들기
- 트래픽 라우팅 구성
참고: Network Firewall이 방화벽 엔드포인트가 배포된 서브넷에 있는 워크로드를 검사할 수 없습니다.
해결 방법
VPC 생성
-
Amazon VPC 콘솔을 엽니다.
-
VPC 대시보드에서 VPC 생성을 클릭합니다.
-
VPC 설정에서 다음을 입력합니다.
VPC 및 기타를 선택합니다.
이름 태그 자동 생성에서 VPC의 이름을 입력합니다. 이 예제에서는 VPC 이름이 Protected_VPC_10.0.0.0_16-vpc입니다. 자동 생성 옵션을 선택하면 이 이름이 VPC의 모든 리소스에 이름 태그로 추가됩니다.
IPv4 CIDR block에 10.0.0.0/16을 입력합니다.IPv6 CIDR 블록의 경우, No IPv6 CIDR block을 선택합니다.
테넌시에서 기본값을 선택합니다.
**가용 영역 수(AZ)**에서 2를 선택합니다.
가용 영역 사용자 지정에서 가용 영역을 두 개를 선택합니다. 이 예에서는 us-east-2a와 us-east-2b를 선택합니다.퍼블릭 서브넷 수에 2를 선택합니다.
프라이빗 서브넷 수에 4를 선택합니다. 프라이빗 서브넷 중 2개는 방화벽용이고 2개는 워크로드 서브넷용입니다.
**NAT 게이트웨이($)**에는 AZ당 1을 선택합니다. NAT 게이트웨이는 공용 서브넷에 자동으로 배포됩니다.VPC 엔드포인트에서 없음을 선택합니다.
-
VPC 만들기를 선택합니다.
-
서브넷의 용도에 따라 이름을 지정합니다.
퍼블릭 서브넷 2개는 NAT 게이트웨이용이며, 이 예에서는 이름이 Public_Subnet_AZa와 Public_Subnet_AZb입니다.
프라이빗 서브넷 두 개는 방화벽 엔드포인트용이며, 이 예에서는 이름이 Firewall_Subnet_AZa와 Firewall_Subnet_AZb입니다.
나머지 프라이빗 서브넷 두 개는 워크로드 엔드포인트용이며, 이 예에서는 이름이 Private_Subnet_AZa와 Private_Subnet_AZb입니다.
방화벽 생성
-
탐색 창의 네트워크 방화벽에서 방화벽을 선택합니다.
-
방화벽 생성을 선택합니다.
-
방화벽 생성에서 다음을 입력합니다.
방화벽 이름을 입력합니다. 이 예에서 방화벽 이름은 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개에는 고유한 라우팅 테이블이 연결되어 있고 공용 서브넷은 라우팅 테이블을 공유합니다. 인터넷 게이트웨이의 고정 경로를 사용해 새 라우팅 테이블을 만들어 공용 서브넷 중 하나에 연결해야 합니다.
트래픽 라우팅 구성
트래픽 흐름은 다음과 같습니다.
-
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/20 | AZa의 방화벽 엔드포인트 |
참고: 이 예에서 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/20 | AZb의 방화벽 엔드포인트 |
참고: 이 예에서 10.0.16.0/20은 Private_Subnet_AZb의 CIDR입니다.
Firewall_Subnet_RouteTable_AZa(서브넷 연결: Firewall_Subnet_AZa)
대상 | 타깃 |
---|---|
0.0.0.0/0 | Public_Subnet_AZa의 NAT 게이트웨이 |
10.0.0.0/16 | 로컬 |
Firewall_Subnet_RouteTable_AZb(서브넷 연결: Firewall_Subnet_AZb)
대상 | 타깃 |
---|---|
0.0.0.0/0 | NAT gateway in Public_Subnet_AZb |
10.0.0.0/16 | 로컬 |
Private_Subnet_RouteTable_AZa(서브넷 연결: Private_Subnet_AZa)
대상 | 타깃 |
---|---|
0.0.0.0/0 | AZa의 방화벽 엔드포인트 |
10.0.0.0/16 | 로컬 |
Private_Subnet_RouteTable_AZb(서브넷 연결: Private_Subnet_AZb)
대상 | 타깃 |
---|---|
0.0.0.0/0 | AZb의 방화벽 엔드포인트 |
10.0.0.0/16 | 로컬 |
라우팅이 올바르게 구성되었는지 확인하려면 프라이빗 서브넷 하나에 EC2 인스턴스를 배포하여 인터넷 연결을 테스트할 수 있습니다. 네트워크 방화벽 정책에 구성된 규칙이 없으면 트래픽 검사를 거치지 않고 인터넷에 도달합니다. 라우팅, 보안 그룹, 네트워크 액세스 제어 목록(네트워크 ACL)이 구성되어 있는지 확인한 후 방화벽 정책에 규칙을 추가합니다.
참고: 인터넷에서 방화벽을 통해 트래픽을 라우팅한 다음 NAT 게이트웨이로 라우팅하도록 네트워크 방화벽을 설정할 수도 있습니다. 자세한 내용은 인터넷 게이트웨이 및 NAT 게이트웨이가 있는 아키텍처를 참고하세요.
관련 정보

관련 콘텐츠
- 질문됨 2년 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 2달 전
- AWS 공식업데이트됨 7달 전