보안 그룹 연결 추적 - Amazon Elastic Compute Cloud

보안 그룹 연결 추적

보안 그룹은 연결 추적을 사용해 인스턴스가 송수신하는 트래픽에 대한 정보를 추적합니다. 규칙은 트래픽의 연결 상태를 기반으로 적용되어 해당 트래픽을 허용 또는 거부할지 결정합니다. 이 방법을 사용하면 보안 그룹의 상태가 유지됩니다. 인바운드 트래픽에 대한 응답은 아웃바운드 보안 그룹 규칙에 관계없이 인스턴스에서 나가도록 허용되며 반대의 경우도 마찬가지입니다.

예를 들어 홈 컴퓨터에서 인스턴스에 대해 netcat 또는 유사한 명령과 같은 명령을 시작하고, 인바운드 보안 그룹 규칙에서 ICMP 트래픽을 허용한다고 가정하겠습니다. 연결에 대한 정보(포트 정보 포함)가 추적됩니다. 명령에 대한 인스턴스의 응답 트래픽은 새로운 요청이 아니라 설정된 연결로 추적되며, 아웃바운드 보안 그룹 규칙이 아웃바운드 ICMP 트래픽을 제한하더라도 인스턴스에서 나가도록 허용됩니다.

TCP, UDP 또는 ICMP 이외의 프로토콜에 대해서는 IP 주소와 프로토콜 번호만 추적됩니다. 인스턴스에서 다른 호스트로 트래픽이 전송되고, 600초 이내에 동일한 트래픽 유형이 호스트에서 인스턴스로 전송되는 경우 인스턴스에 대한 보안 그룹에서는 인바운드 보안 그룹 규칙과 관계없이 해당 트래픽이 수락됩니다. 해당 트래픽이 원본 트래픽에 대한 응답 트래픽으로 간주되어 보안 그룹에서 수락됩니다.

보안 그룹 규칙을 변경하면 추적된 연결이 즉시 중단되지 않습니다. 기존 연결 시간이 초과할 때까지 보안 그룹에서 패킷이 계속 허용됩니다. 트래픽이 즉시 중단되거나 추적 상태와 관계없이 모든 트래픽에 방화벽 규칙이 적용되도록 서브넷의 네트워크 ACL을 사용할 수 있습니다. 네트워크 ACL은 상태 비저장이므로 자동으로 응답 트래픽을 허용하지 않습니다. 어느 방향이든 트래픽이 차단되는 네트워크 ACL을 추가하면 기존 연결이 끊어집니다. 자세한 내용은 Amazon VPC 사용 설명서네트워크 ACL 섹션을 참조하세요.

추적되지 않는 연결

모든 트래픽 흐름이 추적되지는 않습니다. 모든 트래픽(0.0.0.0/0 또는 ::/0)에 대한 TCP 또는 UDP 흐름이 보안 그룹 규칙에서 허용되고 모든 포트(0-65535)에 대한 모든 응답 트래픽(0.0.0.0/0 또는 ::/0)이 허용되는 해당 규칙이 다른 방향에 있는 경우에는 자동으로 추적되는 연결의 일부가 아니면 트래픽 흐름이 추적되지 않습니다. 추적되지 않는 흐름에 대한 응답 트래픽은 추적 정보가 아니라 응답 트래픽이 허용되는 인바운드 또는 아웃바운드 규칙에 따라 허용됩니다.

흐름을 허용하는 규칙이 제거 또는 수정될 경우 추적되지 않는 트래픽 흐름이 즉시 중단됩니다. 예를 들어 열린 (0.0.0.0/0) 아웃바운드 규칙이 있고 인스턴스에 대한 모든 (0.0.0.0/0) 인바운드 SSH(TCP 포트 22) 트래픽을 허용하는 규칙을 제거하거나 연결이 더 이상 허용되지 않도록 수정할 경우 인스턴스에 대한 기존 SSH 연결이 즉시 삭제됩니다. 이전에 연결이 추적되지 않았으므로 변경으로 인해 연결이 끊어집니다. 반면에 처음에 SSH 연결이 허용되는(즉, 연결이 추적되었음) 더 좁은 범위의 인바운드 규칙이 있지만 현재 SSH 클라이언트의 주소에서 새 연결이 더는 허용되지 않도록 해당 규칙을 변경하는 경우 기존 SSH 연결은 추적되므로 중단되지 않습니다.

자동으로 추적되는 연결

모든 ICMP 연결은 자동으로 추적됩니다. 다음을 통해 이루어진 연결은 보안 그룹 구성에 추적하도록 별도로 설정되어 있지 않더라도 자동으로 추적됩니다. 유효한 회신 경로가 여러 개 있을 수 있으므로 대칭 라우팅이 확보되도록 이러한 연결을 추적해야 합니다.

  • 외부 전용 인터넷 게이트웨이

  • Gateway Load Balancer

  • Global Accelerator 액셀러레이터

  • NAT 게이트웨이

  • Network Firewall 방화벽 엔드포인트

  • Network Load Balancer

  • AWS PrivateLink(인터페이스 VPC 엔드포인트)

  • Transit Gateway Attachment

제한

Amazon EC2는 인스턴스당 추적할 수 있는 최대 연결 수를 정의합니다. 최대값에 도달하면 새 연결을 설정할 수 없기 때문에 전송하거나 수신하는 패킷이 삭제됩니다. 이 경우 패킷을 전송하고 수신하는 애플리케이션이 제대로 통신할 수 없습니다.

인스턴스의 네트워크 트래픽이 추적할 수 있는 최대 연결 수를 초과하여 패킷이 삭제되었는지 여부를 확인하려면 conntrack_allowance_exceeded 네트워크 성능 지표를 사용합니다. 자세한 정보는 EC2 인스턴스의 네트워크 성능 모니터링을 참조하십시오.

탄력적 로드 밸런싱을 통해 인스턴스당 추적할 수 있는 최대 연결 수를 초과할 경우 로드 밸런서에 등록된 인스턴스의 수 또는 로드 밸런서에 등록된 인스턴스의 크기를 조정하는 것이 좋습니다.

다음 예제의 보안 그룹에는 TCP 및 ICMP 트래픽이 허용되는 인바운드 규칙과 모든 아웃 바운드 트래픽이 허용되는 아웃 바운드 규칙이 있습니다.

인바운드 규칙
프로토콜 유형 포트 번호 소스 IP
TCP 22 (SSH) 203.0.113.1/32
TCP 80 (HTTP) 0.0.0.0/0
TCP 80 (HTTP) ::/0
ICMP All 0.0.0.0/0
아웃바운드 규칙
프로토콜 유형 포트 번호 목적지 IP
All All 0.0.0.0/0
All All ::/0

인스턴스 또는 네트워크 인터페이스에 대한 직접 네트워크 연결에서는 추적 동작이 다음과 같습니다.

  • 인바운드 규칙에서 모든 IP 주소(0.0.0.0/0)가 아니라 203.0.113.1/32의 트래픽만 허용되므로 포트 22(SSH)의 인바운드 및 아웃바운드 TCP 트래픽이 추적됩니다.

  • 인바운드 및 아웃바운드 규칙에서 모든 TCP 트래픽이 허용되므로 포트 80(HTTP)의 인바운드 및 아웃바운드 TCP 트래픽이 추적되지 않습니다.

  • ICMP 트래픽은 항상 추적됩니다.

IPv4 트래픽에 대한 아웃바운드 규칙을 제거하는 경우 포트 80(HTTP)의 트래픽을 포함하여 모든 인바운드 및 아웃바운드 IPv4 트래픽이 추적됩니다. IPv6 트래픽에 대한 아웃바운드 규칙을 제거하는 경우 IPv6 트래픽에 동일하게 적용됩니다.