Untitled

Untitled

이제 네트워크 환경을 설계 및 배포하고 이를 인터넷에 연결하는 방법을 알았으므로 애플리케이션과 워크로드를 격리해야 합니다.

애플리케이션 또는 워크로드를 호스팅하는 EC2 인스턴스를 VPC에 연결된 보안 그룹에 배포하여 격리를 달성할 수 있습니다. 보안 그룹은 인스턴스 또는 네워크 인터페이스 수준에서 작동하는 상태 저장 방화벽입니다.

상태 저장은 규칙에 관계없이 반환 트래픽이 자동으로 허용됨을 의미합니다. 예를 들어 가정용 컴퓨터에서 인스턴스에 대한 ICMP(Internet Control Message Protocol) ping 명령을 시작한다고 가정해 보겠습니다. 인바운드 보안 그룹 규칙이 ICMP 트래픽을 허용하는 경우 연결에 대한 정보(포트 정보 포함)가 추적됩니다. ping 명령에 대한 인스턴스의 응답 트래픽은 새 요청으로 추적되지 않습니다. 대신 설정된 연결로 추적됩니다.

아웃바운드 보안 그룹 규칙이 아웃바운드 ICMP 트래픽을 제한하는 경우에도 인스턴스 외부로 흐르도록 허용됩니다. 보안 그룹 규칙은 AWS 리소스에 대한 인바운드 및 아웃바운드 트래픽을 제어합니다. 트래픽을 제한하고 필요한 경우에만 액세스를 허용하도록 이러한 규칙을 엄격하게 구성해야 합니다. 트래픽은 인터넷 프로토콜, 서비스 포트, 소스 또는 대상 IP 주소(개별 IP 주소 또는 CIDR 블록)에 의해 제한될 수 있습니다. 모든 트래픽 흐름이 추적되는 것은 아닙니다.

모든 트래픽(즉, 0.0.0.0/0)에 대해 TCP(전송 제어 프로토콜) 또는 UDP(사용자 데이터그램 프로토콜) 흐름을 허용하는 보안 그룹 규칙을 고려하십시오. 응답 트래픽을 허용하는 다른 방향에도 해당 규칙이 있습니다. 이 경우 해당 트래픽 흐름이 추적되지 않습니다. 따라서 응답 트래픽은 추적 정보가 아닌 응답 트래픽을 허용하는 인바운드 또는 아웃바운드 규칙에 따라 흐르도록 허용됩니다.

Untitled

보안 그룹을 생성할 때 인바운드 규칙이 없습니다.

즉, 다른 호스트에서 인스턴스로 들어오는 인바운드 트래픽을 허용하려면 보안 그룹에 인바운드 규칙을 추가해야 합니다.

기본적으로 보안 그룹에는 모든 아웃바운드 트래픽을 허용하는 아웃바운드 규칙이 포함됩니다. 규칙을 제거하고 특정 아웃바운드 트래픽만 허용하는 아웃바운드 규칙을 추가할 수 있습니다. 보안 그룹에 아웃바운드 규칙이 없는 경우 인스턴스에서 시작되는 아웃바운드 트래픽은 허용되지 않습니다.

Untitled

사용자 지정 보안 그룹을 생성할 때 허용 규칙은 지정할 수 있지만 거부 규칙은 지정할 수 없습니다. 예를 들어 웹 애플리케이션을 호스팅하는 인스턴스에 대한 퍼블릭 서브넷을 생성할 때 마지막 단계는 해당 인스턴스에 대한 HTTP 트래픽을 허용하는 보안 그룹을 생성하는 것입니다. 모든 규칙은 트래픽 허용 결정이 내려지기 전에 평가됩니다.

Untitled

대부분의 클라우드 조직은 각 기능 계층에 대한 인바운드 규칙을 사용하여 보안 그룹을 만듭니다.

이 예는 일반적인 3계층 애플리케이션의 보안 그룹 체인을 보여줍니다. 인바운드 및 아웃바운드 규칙은 트래픽이 상위 계층에서 하위 계층으로만 흐르고 다시 백업할 수 있도록 설정됩니다. 보안 그룹은 방화벽 역할을 하여 한 계층의 보안 침해가 침해된 클라이언트에 대한 모든 리소스의 서브넷 전체 액세스를 자동으로 제공하는 것을 방지합니다.

보안 그룹은 인스턴스의 다른 클래스에 대해 다른 규칙을 설정하도록 구성할 수 있습니다. 웹 애플리케이션을 위한 전통적인 3계층 아키텍처의 이 예를 고려하십시오. 웹 서버에 대한 그룹에는 인터넷에 대해 포트 80(HTTP) 또는 포트 443(HTTPS)이 열려 있습니다. 응용 프로그램 서버 그룹에는 웹 서버 그룹에만 액세스할 수 있는 포트 8000(응용 프로그램별)이 있습니다. 데이터베이스 서버 그룹은 애플리케이션 서버 그룹에만 열려 있는 포트 3306(MySQL)을 갖습니다. 세 그룹 모두 포트 22(SSH)에 대한 관리 액세스를 허용하지만 고객의 회사 네트워크에서만 가능합니다. 이 메커니즘을 통해 매우 안전한 응용 프로그램을 배포할 수 있습니다.

Untitled

네트워크 액세스 제어 목록(네트워크 ACL)은 VPC에 대한 선택적 보안 계층입니다.

하나 이상의 서브넷 안팎으로 트래픽을 제어하기 위한 방화벽 역할을 합니다. VPC에 다른 보안 계층을 추가하려면 보안 그룹과 유사한 규칙으로 네트워크 ACL을 설정할 수 있습니다. VPC의 각 서브넷은 다음과 같아야 합니다. 네트워크 ACL과 연결됩니다.