AWS 네트워크 보안 - NACL, WAF, CloudTrail, KMS, Secrets Manager 정리
AWS의 네트워크 보안 구성 요소인 NACL, WAF, CloudTrail, KMS, Secrets Manager에 대해 핵심 개념과 실습 예시 정리
AWS 네트워크 보안 - NACL, WAF, CloudTrail, KMS, Secrets Manager 정리
NACL(Network ACL) 이해하기
1. NACL이란?
- VPC의 서브넷 수준에서 동작하는 네트워크 보안 레이어
- 트래픽의 입장(ingress), 퇴장(egress) 각각에 대해 허용/거부 룰 명시 가능
- 방화벽처럼 동작하며, 서브넷 수준 트래픽 제어
2. 보안 그룹과 NACL 비교
항목 | 보안 그룹(Security Group) | NACL(Network ACL) |
---|---|---|
적용 대상 | 인스턴스(ENI) | 서브넷 단위 |
상태 저장성 | 상태 저장형(Stateful) | 비상태형(Stateless) |
룰 방향 | 인바운드/아웃바운드 구분 | 인바운드/아웃바운드 각각 설정 |
기본 정책 | 기본 거부(Deny by default) | 기본 허용(Allow by default) |
룰 수 제한 | 없음 | 각 방향당 최대 20개 |
평가 방식 | 전체 룰 검사 후 허용 여부 결정 | 번호 순서대로 검사, 처음 일치하는 룰이 적용 |
3. NACL 구조
- NACL은 서브넷에 연결되어야 동작 (서브넷 1개는 1개 NACL만 연결 가능)
- 각 룰은 번호(Priority)가 낮을수록 우선 적용
- 예시:
1
2
3
4
5
Rule # | Type | Protocol | Port Range | Source/Dest | Allow/Deny
--------------------------------------------------------------
100 | ALL | ALL | ALL | 0.0.0.0/0 | ALLOW
110 | TCP | 80 | 0.0.0.0/0 | ALLOW
120 | ALL | ALL | ALL | 0.0.0.0/0 | DENY
4. 기본 NACL vs 사용자 지정 NACL
항목 | 기본 NACL | 사용자 지정 NACL |
---|---|---|
초기 정책 | 모든 트래픽 허용 | 모든 트래픽 거부 |
삭제 여부 | 삭제 불가 | 삭제 가능 |
커스터마이징 | 이름/룰만 제한적 수정 가능 | 룰, 서브넷 연결 등 완전 가능 |
5. 퍼블릭 웹 서버 인바운드 제한 실습
- HTTP(80), SSH(22)만 허용, 나머지 차단
- 아웃바운드는 전체 허용
인바운드 룰
Rule # | Type | Protocol | Port | Source | Action |
---|---|---|---|---|---|
100 | HTTP | TCP | 80 | 0.0.0.0/0 | ALLOW |
110 | SSH | TCP | 22 | 0.0.0.0/0 | ALLOW |
120 | ALL | ALL | ALL | 0.0.0.0/0 | DENY |
아웃바운드 룰
Rule # | Type | Protocol | Port | Destination | Action |
---|---|---|---|---|---|
100 | ALL | ALL | ALL | 0.0.0.0/0 | ALLOW |
6. 보안 전략
- 사용자 지정 NACL을 새로 만들어 서브넷에 연결
- 예외 허용 후, 하단에 전체 DENY 명시
- VPC Flow Logs로 트래픽 감시 및 분석 가능
7. 주의 사항
- Stateless: 요청과 응답을 각각 허용해야 함
- 보안 그룹과 NACL은 동시에 적용되며, 둘 다 통과해야만 허용됨
8. 자주 묻는 질문(FAQ)
- Q: NACL만 써도 되나요? → 비효율적, 보안 그룹과 병행 권장
- Q: VPC 내 서브넷마다 다른 NACL 가능? → 가능
9. 핵심 요약
항목 | 내용 |
---|---|
정의 | VPC 내 서브넷 단위의 트래픽 제어 리스트 |
특징 | 비상태형, 우선순위 기반 룰 검사 |
실무 팁 | deny 룰 명시, 로그 분석 도구 활용 |
AWS WAF(Web Application Firewall)
WAF란?
- HTTP/S 계층에서 동작하는 방화벽
- SQL Injection, XSS 등 애플리케이션 공격 방어
핵심 기능
기능 | 설명 |
---|---|
SQL Injection 차단 | 쿼리 조작 시도 필터링 |
XSS 차단 | 스크립트 삽입 공격 감지 |
GeoBlocking | 국가 기반 접근 차단 |
Rate Limiting | 요청 빈도 제한, DDoS 방어 |
IP 필터링 | 허용/차단 리스트 |
Custom Rules | 사용자 지정 룰 |
구성 요소 (AWS WAF 기준)
- Web ACL → 룰의 집합
- Rule Groups → 조건(IP, URI, 지역 등)
- 통합 대상 → ALB, API Gateway, CloudFront 등
AWS CloudTrail
개요
항목 | 설명 |
---|---|
기능 | AWS 전체 API 호출 기록 저장 |
저장 위치 | S3, 옵션: CloudWatch Logs |
분석 도구 | Athena, CloudWatch, GuardDuty 등과 연동 가능 |
활용 예시
- 보안 감사 (누가 S3를 삭제했는가?)
- 운영 문제 분석 (EC2 중지 이유 추적)
- 이상 행위 감지 (비정상 API 호출 패턴)
AWS KMS(Key Management Service)
개요
항목 | 설명 |
---|---|
기능 | 암호화 키 생성 및 관리 |
대상 | 대칭키, 비대칭키 (서명/복호화) |
사용처 | S3, RDS, Lambda, Secrets Manager 등 |
키 회전
- 자동 회전 (1년 주기)
- 수동 회전도 가능
예시
carrot-lab-key
생성 후, S3 버킷의 기본 암호화 키로 설정
AWS Secrets Manager
개요
항목 | 설명 |
---|---|
기능 | 민감 정보 저장, 자동 암호화(KMS 기반) |
예시 | DB 비밀번호, API 키, 토큰 등 |
자동 교체
- RDS, Lambda 등과 연동해 자동으로 비밀번호 교체 가능
활용 예시
- 애플리케이션이 코드에 비밀번호를 하드코딩하지 않아도 됨
- CloudTrail과 연동하여 접근 추적 가능
요약
항목 | 설명 |
---|---|
NACL | 서브넷 단위 비상태형 트래픽 제어 |
WAF | HTTP/S 공격 방어, Web ACL 기반 룰 적용 |
CloudTrail | API 호출 추적 및 보안 감사 로그 |
KMS | 암호화 키 중앙 관리 및 회전 |
Secrets Manager | 민감 정보 안전 저장 및 자동 교체 |
This post is licensed under CC BY 4.0 by the author.