본문 바로가기
TIL _Today I Learned/2024.12

[DAY 104] 최종 프로젝트_ 인터넷 게이트웨이, 라우팅 테이블, ACL

by gamdong2 2024. 12. 16.
[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.12.16

📕 프로젝트 작업 내역

  • 인터넷 게이트웨이
  • 라우팅 테이블
  • ACL

 

📗 수행 결과

1. 인터넷 게이트웨이 (Internet Gateway, IGW) 

1) 개념

  • 인터넷 게이트웨이는 VPC에서 외부 인터넷으로의 출입구 역할
  • EC2와 같은 리소스가 인터넷과 통신하기 위해 필요
  • 퍼블릭 서브넷에 있는 EC2가 인터넷에 접근하려면 IGW가 필수

2) 인터넷 게이트웨이 필요 조건

Lambda 함수가 SSM 명령을 전달하고 EC2의 SSM Agent가 AWS Systems Manager와 통신하려면 다음이 필요

① 인터넷 게이트웨이 생성 및 연결

  • 인터넷 게이트웨이를 생성하고 VPC에 연결
    • VPC > 인터넷 게이트웨이 > IGW 생성 후 VPC에 연결

② 라우팅 테이블 설정

  • 퍼블릭 서브넷의 라우팅 테이블에 0.0.0.0/0 트래픽을 IGW로 향하도록 설정

 

2. 라우팅 테이블 (Route Table)

 

1) 개념

라우팅 테이블은 서브넷의 네트워크 트래픽이 어디로 향해야 하는지를 결정

  • 퍼블릭 서브넷: 인터넷으로 나가는 트래픽은 인터넷 게이트웨이(IGW)로 향해야 함
  • 프라이빗 서브넷: 인터넷 접근 대신 NAT 게이트웨이를 통해 외부와 통실할 수 있음

2) 라우팅 테이블 설정

① 퍼블릭 서브넷 설정

  • 퍼블릭 서브넷의 라우팅 테이블의 다음 규칙이 필요
대상 (Destination) 대상지 (Target)
0.0.0.0/0 인터넷 게이트웨이 (igw-xxxxxxxx)

 

② 명령어를 통한 확인

EC2에서 라우팅 테이블이 올바르게 설정되었는지 확인하려면

  • AWS CLI를 통해 확인
aws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-xxxxxxxx"
  • 출력 결과에 퍼블릭 서브넷의 0.0.0.0/0 트래픽이 인터넷 게이트웨이로 라우팅되는지 확인

 

3. Lambda가 VPC에 연결될 때 주의사항

Lambda → SSM → EC2를 위해 필요한 사항

 

① 퍼블릭 서브넷에 위치한 Lambda 함수

  • Lambda가 VPC 내 퍼블릭 서브넷에 배포된 경우, IGW와 올바른 라우팅 설정이 필요

② 인터넷 접근

  • Lambda가 인터넷으로 나가 AWS Systems Manager와 통신해야 하므로 인터넷 게이트웨이 필요
  • EC2도 퍼블릭 서브넷에 위치하고 IGW를 통해 통신할 수 있어야 함

 

4. ACL (Access Control List)

1) 개념

  • 서브넷 단위로 트래픽을 제어하는 보안 규칙 집합
  • ACL은 방화벽 역할을 수행하며, 인바운드와 아웃바운드 트래픽에 대해 허용 or 차단규칙을 설정할 수 있음

2)  주요 특징

  • 서브넷 단위로 적용
    • ACL은 VPC의 서브넷 레벨에서 트래픽을 필터링
    • 하나의 서브넷에 하나의 ACL만 연결할 수 있음
  • 인바운드와 아웃바운드 트래픽 규칙
    • ACL은 들어오는 트래픽(인바운드)과 나가는 트래픽(아웃바운드)을 각각 제어
    • 예를 들어, 인바운드에 포트 22(SSH)를 허용하더라도 아웃바운드 규칙이 차단되면 응답 트래픽이 나가지 못함
  • 규칙은 번호 순서로 처리
    • ACL 규칙은 번호 순서대로 평가되며, 일치하는 첫 번째 규칙이 적용
    • 예를 들어:
      • 규칙 100: 모든 트래픽 허용 (ALLOW)
      • 규칙 101: 특정 트래픽 차단 (DENY)
      • 결과: 100번 규칙이 먼저 일치하면 이후 규칙은 무시
  • 기본 규칙
    • ACL의 마지막에는 기본 차단 규칙 (DENY ALL)이 있음
    • 명시적으로 허용되지 않은 모든 트래픽 차단
  • 상태 비저장 (Stateless)
    • ACL은 상태를 저장하지 않음
    • 예를 들어, 인바운드 트래픽이 허용되었더라도 아웃바운드 트래픽을 따로 허용해야만 응답이 가능
  ACL (NACL) 보안 그룹
레벨 서브넷 단위 인스턴스 단위
상태 Stateless (상태 비저장) Stateful (상태 저장)
규칙 처리 순서 번호 순서대로 처리, 첫 번째 일치 규칙 적용 모든 규칙을 평가 후 허용/차단 결정
기본 설정 모든 트래픽 차단 (DENY) 모든 트래픽 차단 (DENY)
트래픽 방향 인바운드와 아웃바운드 규칙 별도 설정 필요 응답 트래픽은 자동으로 허용

 

3) 예시

규칙 번호 유형 프로토콜 포트 범위 소스 허용/거부
100 SSH (22) TCP(6) 22 0.0.0.0/0 허용
101 사용자 지정 TCP TCP(6) 8000 0.0.0.0/0 허용
* 모든 트래픽 모두 모두 모두 거부
  • 규칙 100: 포트 22 (SSH) 트래픽을 허용
  • 규칙 101: 포트 8000 트래픽을 허용
  • 기본 거부 규칙: 다른 모든 트래픽은 차단

 

 

 

📙 내일 일정

  • 최종 프로젝트