Cloud Infra Architecture (AWS)/AWS SAA-C03

AWS NACL & Security Groups란?

seongduck 2023. 1. 22. 20:39

앞서 이거와 같이 설정되어 있는 상태에서 이어서 실습을 진행할 것이다.

 

AWS Custom VPC 생성하기

Cloud 계정내에 VPC를 생성한다. (자동적으로 NACL, Routing table이 생성됨) 가용영역에 Public Subnet과 Private Subnet을 만들어준다. 라우팅 테이블을 통해 서로 연결한다. 인터넷 게이트를 만들고 Public Subnet

seongduck.tistory.com


 

  • 서브넷의 모든 ec2를 Security 그룹으로 묶고 NACL을 거치게 된다.
  • 모든 서버는 꼭 NACL를 거쳐 Subnet단의 보안역할을 진행한다.
  • 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할이다.
  • 서브넷 수준이 아니라 인스턴스 수준에서 작동한다.(EC2인스턴스의  ENI와 연결됨, 작은 범위)
  • 하나의 EC2 인스턴스 ENI에 5개까지 보안 그룹연결이 가능하다.
  • 보안 그룹은 허용 규칙만 지정 가능하고 거부 규칙은 지정할 수 없다.
  • 보안 그룹은 연결 상태를 추적하는 상태저장 방화벽 (Stateful Firewall)
  • 보안 그룹은 생성된 VPC 내에서만 사용 가능

 

보안그룹이란?

 

보안 그룹(Security Group)이란?

인스턴스 생성할 때 같이 보안그룹을 설정했었다. 자세히 알아보자 보안그룹이란? EC2 인스턴스에 대한 인바운드, 아웃바운드 트래픽을 제어하는 가상 방화벽 역할 EC2 인스턴스의 ENI와 연결 됨

seongduck.tistory.com

 

 

Network Access Control List (NACL)이란?

  • 서브넷 내부와 외부의 트래픽을 제어하는 방화벽
  • 서브넷 레벨의 연결 방화벽
  • 하나의 NACL은 여러 서브넷과 연결 가능
  • 하나의 서브넷은 하나의 NACL만 연결 가능
  • NACL은 허용 규칙과 거부 규칙 모두 지정 가능
  • NACL은 연결 상태를 추적하지 않은 상태 비저장 방화벽 (Stateless Firewall)이다. (나가오 들어오고 모두 체크)
    • 인바운드 트래픽에 대한 응답은 아웃바운드 트래픽 규칙을 따르고
    • 아웃바운드 트래픽에 대한 응답은 인바운드 트래픽 규칙을 따른다.
  • EC2 웹서버 운영시 외부에서 Client가 접속 후 리턴 트래픽을 받을 때 NAT를 사용하므로 임시포트 (ephemeral ports) 1024-65535를 사용한다.

 

NACL 규칙 번호

  • 가장 낮은 규칙 번호가 지정된 규칙부터 시작해서 트래픽이 내부 또는 외부로 전달되도록 허용되는지 결정한다.
  • 규칙에 사용할 수 있는 가장 높은 번호는 32766이다.

 

  1. 90번 규칙이 가장 낮으므로 먼저 적용된다.
  2. 따라서 HTTP 80 프로토콜의 트래픽은 1차적으로 허용한다.
  3. 그다음 낮은 규칙인 100번 규칙을 적용한다.
  4. 여기서는 모든 트래픽을 거부하므로 1차적으로 허용한 HTTP 80을 제외한 모두가 거부된다.
  5. 그다음 낮은 규칙인 101번 규칙을 적용하는데 이미 2차에서 모두 거부됐으므로 소용이 없다..

 

보안 그룹과 네트워크 ACL 차이점

보안 그룹 네트워크 ACL
인스턴스 레벨에 적용 (ENI와 연결) 서브넷 레벨에 적용
허용 규칙만 지원 허용 및 거부 규칙 지원
상태 저장 : 규칙에 관계없이 변환 트래픽이 자동으로 허용됨 상태 비저장 : 반환 트래픽이 규칙에 의해 명시적으로 허용
트래픽 허용 여부를 결정하기 전에 모든 규칙을 평가 트래픽 허용 여부를 결정할 때 번호가 가장 낮은 규칙부터 선수대로 규칙을 처리
인스턴스 시작 시 누군가 보안 그룹을 지정하거나, 나중에 보안 그룹을 인스턴스와 연결하는 경우에만 인스턴스에 적용 연결된 서브넷의 모든 인스턴스에 자동으로 적용

 

 

실습


  1. 인스턴스 시작을 눌러 생성화면으로 들어간다.
  2. 이름은 EC2_Linux_Web으로 설정 후 AWS 툴을 선택한다.
  3. 네트워크 [편집]을 눌러 서브넷은 Public Subnet을 선택 및 ip 자동활당하여 외부 접속을 용이
  4. 보안 그룹은 web_ssh_sg로 바꿔주고
  5. ssh - anywhere로 설정
  6. 보안그룹 규칙 추가하여 http 선택후 anywhere로 바꿔준다.
  7. 고급세부정보에서 사용자 데이터는 웹서버 스크립트를 넣어 인스턴스를 만든다.
#!/bin/bash
yum update -y
yum install httpd -y
systemctl enable httpd.service
systemctl start httpd.service
cd /var/www/html
echo "안녕하세요. AWS EC2입니다. $(hostname -f)" > index.html

 

완성!!

 

IPv4로 접속해보면 잘 접속이 된다!

 

즉, EC2가 보안그룹과 연결되고 이 EC2가 속한 서브넷이 네트워크 ACL과 연결된다.

ACL은 방화벽 역활을 해서 인,아웃바운드 역할을 수행하며 규칙에 따른다.

 

 

'Cloud Infra Architecture (AWS) > AWS SAA-C03' 카테고리의 다른 글

VPC Peering이란?  (0) 2023.01.22
AWS NAT Instance and NAT Gateway  (0) 2023.01.22
AWS Route 53 Faliover & Multi value Routing Policy  (0) 2023.01.22
AWS Custom VPC 생성하기  (0) 2023.01.16
AWS VPC 개요란?  (0) 2023.01.16