


AWS VPC 보안
📌 목차
- AWS VPC 보안 구조 한눈에 보기
- Security Group (보안 그룹)
- Network Access Control List (NACL)
- Security Group vs NACL 핵심 비교
- 트래픽 흐름 기준으로 이해하기
- 헷갈리기 쉬운 개념 정리 (시험·실무 포인트)
- 언제 무엇을 써야 할까? (실전 기준)
1️⃣ AWS VPC 보안 구조 한눈에 보기
AWS VPC에서는 2단계 방어 구조를 사용한다.
[ Internet ]
↓
[ NACL ] ← 서브넷 단위 (1차 관문)
↓
[ Security Group ] ← 인스턴스 단위 (2차 관문)
↓
[ EC2 / App ]
✔️ NACL → 서브넷 경계에서 거르는 방화벽
✔️ Security Group → EC2 바로 앞에서 지키는 방화벽
👉 둘 다 통과해야 실제 트래픽이 인스턴스에 도달한다.
2️⃣ Security Group (보안 그룹)
🔹 개념 요약
- EC2 인스턴스 단위 방화벽
- VPC 내부에서 가장 많이 사용하는 보안 설정
- “인스턴스의 문 앞 경비원”
🔹 핵심 특징
| 적용 단위 | EC2 인스턴스 |
| 상태 | Stateful (상태 저장) |
| 기본 정책 | Inbound ❌ / Outbound ✅ |
| 규칙 유형 | Allow만 가능 (Deny 없음) |
| 평가 방식 | 모든 규칙을 종합 평가 |
🔹 Stateful 이란?
요청을 허용하면, 응답은 자동 허용
예시:
- Inbound: SSH(22) 허용
- → Outbound 규칙 없어도 응답 트래픽은 자동 허용
👉 응답용 포트(1024~65535)를 따로 열 필요 없음
🔹 기본 동작
- Inbound: 아무것도 없으면 전부 차단
- Outbound: 기본적으로 전부 허용
- 명시적 DENY 개념 자체가 없음
🔹 보안 그룹 규칙 예시
Inbound:
- SSH / TCP / 22 / 35.xxx.xxx.xxx/32
Outbound:
- ALL / ALL / ALL / 0.0.0.0/0
3️⃣ Network Access Control List (NACL)
🔹 개념 요약
- 서브넷 단위 방화벽
- “건물 입구의 보안 검색대”
- 모든 인스턴스에 공통 적용
🔹 핵심 특징
| 적용 단위 | Subnet |
| 상태 | Stateless (상태 없음) |
| 기본 정책 | Default NACL: 전부 허용 |
| 규칙 유형 | Allow + Deny 모두 가능 |
| 평가 방식 | 번호 순서대로 (우선순위 존재) |
🔹 Stateless 이란?
요청과 응답을 각각 따로 검사
예시:
- Inbound: SSH 22 허용
- ❗ Outbound에 응답 포트(1024~65535) 허용 안 하면 통신 실패
👉 Inbound / Outbound 규칙 둘 다 필수
🔹 Rule Number (우선순위)
- 숫자가 낮을수록 우선
- 처음 매칭된 규칙에서 즉시 종료
Rule 100 → Allow SSH
Rule 200 → Deny All
→ SSH는 허용, 나머지는 차단
🔹 Default vs Custom NACL
| Default NACL | Inbound/Outbound 모두 허용 |
| Custom NACL | 기본값: 전부 Deny |
4️⃣ Security Group vs NACL 핵심 비교
| 구분 | Security Group | NACL |
| 적용 범위 | 인스턴스 | 서브넷 |
| 상태 | Stateful | Stateless |
| Deny 규칙 | ❌ 없음 | ✅ 있음 |
| 우선순위 | 없음 | 있음 (Rule Number) |
| 기본 사용 | 대부분의 보안 설정 | 추가 방어선 |
👉 “Security Group은 instance-level, NACL은 subnet-level 방화벽이다.”
5️⃣ 트래픽 흐름으로 이해하기
외부 → EC2 접근 시
1️⃣ NACL Inbound 검사
2️⃣ Security Group Inbound 검사
3️⃣ EC2 도착
4️⃣ 응답 시
- SG: 자동 허용
- NACL: Outbound 규칙 필요
6️⃣ 헷갈리기 쉬운 개념 정리 ⭐
🤔헷갈림 1
Security Group에도 Deny 규칙을 넣을 수 있다?
❌ 불가능
✔️ Allow만 가능
🤔헷갈림 2
NACL은 인스턴스마다 설정한다?
❌ 아님
✔️ 서브넷 단위, 서브넷당 1개만 연결
🤔헷갈림 3
응답 트래픽은 자동으로 허용된다?
| 항목 | 응답 자동 허용 |
| Security Group | ✅ |
| NACL | ❌ |
🤔헷갈림 4
둘 중 하나만 써도 된다?
- Security Group은 필수
- NACL은 선택적 추가 보안
7️⃣ 언제 무엇을 써야 할까?
✅ Security Group을 쓰는 경우 (거의 항상)
- EC2 접근 제어
- 서비스 포트 관리 (22, 80, 443)
- 운영 환경 기본 보안
✅ NACL을 쓰는 경우
- 특정 IP 대역 전체 차단
- 조직 단위 보안 정책
- 서브넷 단위 보안 통제
- 보안 시험 문제 😂
🔚 한 줄 요약
Security Group은 “인스턴스 보안의 핵심”,
NACL은 “서브넷 경계의 추가 방어선”이다.


'프로그래밍 > ⚙️DevOps' 카테고리의 다른 글
| AWS) DynamoDB Query (0) | 2026.01.19 |
|---|---|
| AWS) DynamoDB Overview (0) | 2026.01.19 |
| AWS) VPC 개념 (0) | 2026.01.09 |
| AWS) NACL(Network Access Control List) (0) | 2026.01.09 |
| AWS) Amazon Virtual Private Cloud (VPC) (0) | 2026.01.08 |