내 NAT 게이트웨이에 대한 VPC 흐름 로그에서 인바운드 트래픽이 보입니다. 내 NAT 게이트웨이가 인터넷의 인바운드 트래픽을 허용하고 있습니까?

최종 업데이트 날짜: 2019년 7월 22일

내 VPC 흐름 로그가 퍼블릭 IP에서 오는 인바운드 트래픽에 대해 Action = ACCEPT를 표시합니다. 그러나 NAT 게이트웨이는 인터넷의 트래픽을 허용하지 않는 것으로 알고 있습니다. 내 NAT 게이트웨이가 인터넷의 인바운드 트래픽을 허용하고 있습니까?

​해결 방법

AWS에서 관리하는 NAT 게이트웨이는 인터넷에서 시작된 트래픽을 허용하지 않습니다. 그러나 두 가지 이유로 VPC 흐름 로그 정보가 인터넷의 인바운드 트래픽을 허용하는 것으로 표시할 수 있습니다.

사유 #1: 보안 그룹 또는 네트워크 ACL이 인바운드 인터넷 트래픽을 허용합니다.

보안 그룹 또는 네트워크 ACL(액세스 제어 목록)에서 트래픽을 허용하는 경우 VPC 흐름 로그는 인바운드 인터넷 트래픽을 허용하는 것으로 표시합니다. NAT 게이트웨이에 연결된 네트워크 ACL이 인터넷의 트래픽을 명시적으로 거부하지 않는 경우 NAT 게이트웨이에 대한 인터넷 트래픽이 승인되는 것으로 표시됩니다. 그러나 실제 트래픽은 NAT 게이트웨이에서 허용되지 않고 삭제됩니다. 확인하려면 다음을 수행합니다.

1. Amazon CloudWatch 콘솔을 엽니다.

2. 탐색 창에서 [Insights]를 선택합니다.

3. 드롭다운에서 NAT 게이트웨이의 탄력적 네트워크 인터페이스 및 프라이빗 인스턴스의 탄력적 네트워크 인터페이스를 포함한 로그 그룹을 선택합니다.

4. 아래 쿼리를 실행합니다.

filter (dstAddr like 'xxx.xxx' and srcAddr like 'public IP')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| limit 10   

참고: 검색 필터에서 처음 두 옥텟만 사용하여 VPC의 모든 네트워크 인터페이스를 분석할 수 있습니다. 위 예에서 xxx.xxx를 VPC CIDR의 처음 두 옥텟으로 교체합니다. 또한 퍼블릭 IP를 VPC 흐름 로그 항목에 있는 퍼블릭 IP로 교체합니다.

쿼리 결과는 퍼블릭 IP에 있는 NAT 게이트웨이 프라이빗 IP의 트래픽을 표시해야 하고 VPC에 있는 다른 프라이빗 IP의 트래픽은 표시하지 않아야 합니다. 이러면 수신 트래픽을 원하지 않았다는 것이 확인됩니다. 그러나 프라이빗 인스턴스의 IP에 트래픽이 있는 경우 사유 #2의 단계를 따릅니다.

사유 #2: 퍼블릭 IP의 트래픽이 프라이빗 인스턴스에서 시작되었습니다.

인터넷 액세스를 위해 NAT 게이트웨이를 사용하는 인스턴스가 있는 경우 VPC 흐름 로그가 퍼블릭 IP의 응답 트래픽을 표시할 수 있습니다. 퍼블릭 IP의 트래픽이 프라이빗 인스턴스에서 시작된 경우 아래 쿼리를 실행합니다.

참고: 쿼리를 실행하기 전에 다음을 확인해야 합니다.

  • VPC 흐름 로그에서 트래픽을 관찰한 때에 해당하는 시간대를 선택합니다.
  • VPC에 로그 그룹이 여러 개인 경우 적합한 로그 그룹 하나를 선택합니다.
filter (dstAddr like 'public IP' and srcAddr like 'xxx.xxx')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| limit 10 

참고: 위 예에서 xxx.xxx를 VPC CIDR의 처음 두 옥텟으로 교체합니다. 또한 퍼블릭 IP를 VPC 흐름 로그 항목에 있는 퍼블릭 IP로 교체합니다. VPC에 10개 이상의 리소스가 있는 경우 퍼블릭 IP로 트래픽을 시작하여 제한을 늘립니다.


VPC 흐름 로그

샘플 쿼리(CloudWatch Logs Insights용)

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?