[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 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 트래픽을 허용
- 기본 거부 규칙: 다른 모든 트래픽은 차단
📙 내일 일정
- 최종 프로젝트
'TIL _Today I Learned > 2024.12' 카테고리의 다른 글
[DAY 106] 최종 프로젝트_ Labeling Pipeline (2) | 2024.12.18 |
---|---|
[DAY 105] 최종 프로젝트_ 모델 학습 파이프라인 (1) | 2024.12.17 |
[DAY 102] 최종 프로젝트_ Labeling Pipeline (2) | 2024.12.12 |
[DAY 101] 최종 프로젝트_ 네트워크 (0) | 2024.12.11 |
[DAY 100] 최종 프로젝트_ GitLab (1) | 2024.12.10 |