Contents

AWS 모듈 04 (3). 서브넷 및 네트워크 액세스 제어 목록

   Dec 10, 2022     3 min read

※ Chapter 03. 서브넷 및 네트워크 액세스 제어 목록

  • VPC : 강화된 요새

  • 네트워크 강화)
    1. 패킷 : 인터넷에 보내는 메시지 패킷 -> 네트워크 액세스 제어 목록(ACL)에서 검사
    2. 네트워크 ACL : 여권 심사관) 서브넷을 출입하는 트래픽을 검사.
  • 인스턴스 수준 액세스 문제 해결 ? -> AWS에서 보안 그룹 도입. 나갈 때 확인 X.

  • 보안 그룹 VS 네트워크 ACL

보안 그룹 네트워크 ACL

  • 상태 저장
  • 출입이 허용된 사람을 기억.
  • 상태 비저장
  • 아무것도 기억X
  • 모든 패킷 확인

# 정리.

  • ex.고객이 계산원에게 음료를 주문한다. 그러면 계산원이 바리스타에게 주문을 전달한다. 이 프로세스를 통해 더 많은 고객이 들어오더라도 계속 원활하게 주문을 받을 수 있음. 일부 고객이 계산원을 건너 뛰고 바리스타에게 직접 주문하려 한다고 가정해 보자. 그러면 주문 흐름이 중단되고 고객이 커피숍의 제한 구역에 접근하게 됨. -> 해결하기 위해 커피숍 점주는 계산대와 바리스타를 별도의 워크스테이션에 배치하여 카운터 영역을 구분함. 계산원의 워크스테이션은 퍼블릭이고 고객을 응대하도록 설계됨. 바리스타의 워크 스테이션은 프라이빗임. 바리스타는 계산원으로부터 주문을 받을 수는 있지만 고객으로부터 직접 주문을 받을 수 X.

이는 AWS 네트워킹 서비스를 사용하여 리소스를 격리하고 네트워크 트래픽의 흐름을 정확히 결정하는 것과 비슷함. 커피숍의 카운터 영역을 VPC로 생각할 수 있음. 카운터 영역은 계산원의 워크스테이션과 바리스타의 워크스테이션을 위해 두 개의 영역으로 나뉨. VPC에서 서브넷은 리소스를 그룹화하는 데 사용되는 별개의 영역임.

  • 서브넷) 보안 또는 운영 요구 사항에 따라 리소스를 그룹화할 수 있는 VPC 내의 한 섹션. 서브넷은 퍼블릭 or 프라이빗 일 수 있음.

  • 퍼블릭 서브넷) 온라인 상점의 웹 사이트와 같이 누구나 액세스할 수 있어야 하는 리소스가 포함됨.

  • 프라이빗 서브넷) 고객의 개인 정보 및 주문 내역이 포함된 데이터베이스와 같이 프라이빗 네트워크를 통해서만 액세스할 수 있는 리소스가 포함. VPC 내에서 서브넷은 서로 통신가능. ex. 퍼블릭 서브넷에 있는 Amazon EC2 인스턴스가 프라이빗 서브넷에 있는 데이터 베이스와 통신하는 애플리케이션이 있을 수 있음.

  • VPC의 네트워크 트래픽) 고객이 AWS 클라우드에서 호스팅되는 애플리케이션에 데이터를 요청하면 이 요청은 패킷으로 전송됨. 패킷은 인터넷이나 네트워크를 통해 전송되는 데이터의 단위임. 패킷은 인터넷 게이트웨이를 통해 VPC로 들어감. 패킷이 서브넷으로 들어가거나 서브넷에서 나오려면 먼저 권한을 확인해야 함. 이러한 사용 권한은 보낸 사람과 패킷이 서브넷의 리소스와 통신하려는 방법을 나타냄. 서브넷의 패킷 권한을 확인하는 VPC 구성 요소는 네트워크 ACL(액세스 제어 목록)임.

  • 네트워크 ACL (액세스 제어 목록)
    서브넷 수준에서 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽임. ex.이제 커피숍이 아닌 공항에 있다고 가정해보자. 공항에서 여행자들이 입국 절차를 밟고 있다. 이러한 여행자를 패킷으로 생각할 수 있고 출입국 심사 직원을 네트워크 ACL로 생각할 수 있다. 출입국 심사 직원은 여행자가 출입국할 때 여행자의 신원 정보를 확인함. 여행자가 승인 목록에 있으면 통과 가능. 그러나 여행자가 승인 목록에 없거나 금지 목록에 명시된 경우에는 입국할 수 X. 각 AWS 계정에는 기본 네트워크 ACL 이 포함됨. VPC를 구성할 때 계정의 기본 네트워크 ACL을 사용하거나 사용자 지정 네트워크 ACL을 생성할 수 있음. 계정의 기본 네트워크 ACL은 기본적으로 모든 인바운드 및 아웃바운드 트래픽을 허용하지만 사용자가 자체 규칙을 추가하여 수정할 수 있음. 사용자 지정 네트워크 ACL은 사용자가 허용할 트래픽을 지정하는 규칙을 추가할 때까지 모든 인바운드 및 아웃바운드 트래픽을 거부함. 또한 모든 네트워크 ACL에는 명시적 거부 규칙이 있음. 이 규칙은 패킷이 목록의 다른 모든 규칙과 일치하지 않으면 해당 패킷이 거부되도록 함.
  • 상태 비저장 패킷 필터링) 네트워크 ACL은 상태 비저장 패킷 필터링을 수행함. 즉, 아무것도 기억하지 않고 각 방향(인바운드 및 아웃바운드)으로 서브넷 경계를 통과하는 패킷만 확인함. 앞서 예로 든 다른 국가에 입국하려는 여행자를 기억해보자. 이는 Amazon EC2 인스턴스에서 인터넷으로 요청을 전송하는 것과 비슷함. 해당 요청에 대한 패킷 응답이 서브넷으로 반환될 때 네트워크 ACL은 이전 요청을 기억하지 못함. 네트워크 ACL은 규칙 목록에 따라 패킷 응답을 확인하여 허용 또는 거부 여부를 결정함. 패킷이 서브넷에 들어간 후에는 서브넷 내의 리소스(ex.Amazon EC2 인스턴스)에 대한 권한이 평가되어야 한다. 패킷에서 Amazon EC2 인스턴스에 eogs 권한을 확인하는 VPC 구성요소는 보안그룹임.

  • 보안 그룹) 보안 그룹은 Amazon EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽. 기본적으로 보안 그룹은 모든 인바운드 트래픽을 거부하고 모든 아웃바운드 트래픽을 허용함. 사용자 지정 규칙을 추가하여 허용 또는 거부할 트래픽을 구성할 수 있음. ex.로비에서 방문객을 안내하는 경비원이 있는 아파트 건물을 생각해 보자. 방문객을 패킷으로 생각할 수 있으며 경비원은 보안 그룹으로 생각할 수 있음. 방문객이 도착하면 경비원은 방문객 목록을 보고 해당 방문객이 건물 안으로 들어갈 수 있는지 확인함. 그러나 방문객이 건물에서 나갈 때는 경비원이 목록을 다시 확인하지 않음. 서브넷 내에 여러 Amazon EC2 인스턴스가 있는 경우 동일한 보안 그룹에 연결하거나 각 인스턴스마다 서로 다른 보안 그룹을 사용할 수 있음.
  • 상태 저장 패킷 필터링) 보안 그룹은 상태 저장 패킷 필터링을 수행함. 즉, 들어오는 패킷에 대한 이전 결정을 기억함. Amazon EC2 인스턴스에서 인터네승로 요청을 전송하는 것과 동일한 예를 생각해 보자. 해당 요청에 대한 패킷 응답이 인스턴스로 반환될 때 보안 그룹이 이전 요청을 기억함. 보안 그룹은 인바운드 보안 그룹 규칙에 관계없이 응답이 진행하도록 허용함. 네트워크 ACL과 보안 그룹을 모두 사용하면 VPC에서 트래픽에 대한 사용자 지정 규칙을 구성할 수 있음. 계속해서 AWS 보안 및 네트워킹을 더 자세히 알아보려면 네트워크 ACL과 보안 그룹 간의 차이점을 이해해야 함.