본문 바로가기
Cloud/AWS

방화벽 보안 그룹(SG) vs. 네트워크 ACL(NACL) 차이점

by 에르모사 쩐뉴 2025. 10. 9.

 두 가지 **방화벽(Firewall)**의 핵심 차이점


🔒 보안 그룹(SG) vs. 네트워크 ACL(NACL) 최종 정리

구분 보안 그룹 (Security Group, SG) 네트워크 ACL (NACL)
적용 대상 EC2 인스턴스 (가상 서버) 수준 서브넷 (Subnet) 수준
작동 방식 상태 저장 (Stateful) 무상태 (Stateless)
규칙 처리 허용 규칙만 설정 가능. (기본적으로 모두 거부) 허용(ALLOW) 및 거부(DENY) 규칙 모두 설정 가능.
처리 순서 규칙 순서가 중요하지 않음. 규칙 번호 순서대로 처리하며, 일치하는 규칙을 만나면 즉시 처리 종료.
인바운드
/아웃바운드
인바운드 허용 시, 아웃바운드는 자동으로 허용됨. 인바운드 허용 시, 아웃바운드도 명시적으로 허용해야 함.
비유 인스턴스 개개인의 현관문 서브넷(방) 전체의 출입 통로
Sheets로 내보내기

🔑 핵심 차이점: 상태 저장 vs. 무상태 (가장 중요!)

이 개념만 이해하면 둘의 역할을 명확히 구분할 수 있습니다.

  • 보안 그룹 (상태 저장, Stateful):
    • 현관문과 같아요. 누군가 들어오는 것(인바운드)을 허용했다면, 그 사람이 다시 나가는 것(아웃바운드)은 기억하고(상태 저장) 자동으로 허용해 줍니다.
    • 즉, 인바운드 규칙만 잘 설정하면 아웃바운드는 신경 쓰지 않아도 됩니다.
  • 네트워크 ACL (무상태, Stateless):
    • 보안 통로와 같아요. 들어오는 트래픽(인바운드)을 허용했더라도, 그 응답이 다시 나가는 것(아웃바운드)을 기억하지 못합니다(무상태).
    • 따라서, 인바운드를 허용했으면, 그에 대한 응답이 외부로 나갈 수 있도록 아웃바운드 규칙에도 명시적으로 허용 규칙을 추가해 주어야 합니다.

💡 시험 출제 유형

  1. "가장 세부적인(가장 촘촘한) 인스턴스 수준의 방화벽은?" 보안 그룹 (SG)
  2. "서브넷 단위에서 특정 IP의 접속을 명시적으로 차단(DENY)하려면?" NACL (SG는 DENY 규칙을 설정할 수 없습니다.)

 

A retail customer is setting up their application in the AWS Cloud. The application requires a lot of control in defining traffic rules for the individual Amazon EC2 instances in their public subnet. > 개별 EC2 인스턴스에 트래픽 규칙 상세 제어

 

Which solution would BEST meet the requirements for securing the resources?

  • Change all the subnets to private subnets to avoid accessing from the public internet.
  • Set up security groups for the EC2 instances based on the application requirements.
  • Set up network ACLs for the EC2 instances based on the application requirements.
  • Set up a public subnet with strong passwords that meet the customer's requirements.

핵심 해설: 보안 그룹의 역할

보안 그룹은 AWS에서 인스턴스 수준의 가상 방화벽 역할을 수행합니다.

  • 인스턴스 수준 제어: 보안 그룹은 VPC 내의 개별 EC2 인스턴스에 직접 연결됩니다. 따라서 웹 서버(80/443 포트 필요)와 애플리케이션 서버(특정 포트만 허용)처럼 역할이 다른 인스턴스 각각에 대해 독립적이고 상세한 트래픽 규칙을 정의할 수 있습니다. 이것이 "개별 EC2 인스턴스에 대한 많은 제어(a lot of control in defining traffic rules for the individual Amazon EC2 instances)"라는 요구사항에 가장 정확히 부합합니다.
  • 허용 기반(Allow-Only): 보안 그룹은 명시적으로 허용된 트래픽만 통과시키며, 나머지는 모두 암묵적으로 거부합니다.
  • 상태 저장(Stateful): 인바운드 트래픽을 허용하면, 그에 대한 응답 아웃바운드 트래픽은 자동으로 허용되므로 관리가 용이합니다.

오답 해설

오답 선택지 이유
Set up network ACLs for the EC2 instances... (EC2 인스턴스에 네트워크 ACL을 설정합니다.) **NACL(네트워크 ACL)**은 서브넷 수준에서 동작하는 무상태(Stateless) 방화벽입니다. 즉, 서브넷 안의 모든 인스턴스에 동일하게 적용되므로, 개별 인스턴스에 대한 상세 제어라는 요구사항에 적합하지 않습니다.
Change all the subnets to private subnets... (모든 서브넷을 프라이빗 서브넷으로 변경합니다.) 보안은 강화되지만, 소매업 애플리케이션(예: 웹사이트)이 퍼블릭 서브넷에 있다는 것은 외부 인터넷 사용자가 접근해야 한다는 의미입니다. 서브넷을 프라이빗으로 변경하면 애플리케이션에 외부 접근이 불가능해집니다.
Set up a public subnet with strong passwords... (강력한 암호를 사용하여 퍼블릭 서브넷을 설정합니다.) 강력한 암호는 인스턴스의 **운영 체제(OS)**에 대한 무단 접속(SSH, RDP)을 막는 OS 보안 조치일 뿐입니다. 인스턴스가 네트워크상에서 어떤 포트를 열고 어떤 트래픽을 허용할지 정의하는 네트워크 트래픽 규칙과는 무관합니다.