AWS에서 보안을 책임지는 가장 기초적이면서도 중요한 요소는 방화벽과 보안 그룹(Security Group)입니다. 이 글에서는 AWS 보안 그룹과 네트워크 ACL의 차이점, 효율적인 방화벽 설정 방법, 실제 구성 예시, 보안 우수 사례(Best Practices)를 중심으로 클라우드 보안 아키텍처의 핵심을 쉽게 이해하고 실전 적용할 수 있도록 설명합니다.
1. AWS 방화벽의 개요
AWS에서 방화벽 역할을 하는 주요 컴포넌트는 다음과 같습니다.
구성 요소 | 설명 |
---|---|
보안 그룹 (Security Group) | 인스턴스 레벨의 가상 방화벽. 인바운드/아웃바운드 트래픽 제어 |
네트워크 ACL (Network Access Control List) | 서브넷 레벨의 방화벽. 인바운드/아웃바운드 허용/거부 모두 가능 |
AWS WAF (Web Application Firewall) | 7계층 웹 애플리케이션 보안 필터링 |
AWS Network Firewall | 상태 기반 트래픽 검사 제공. 더 정교한 제어 필요 시 사용 |
대부분의 기본 보안은 보안 그룹과 NACL로 해결할 수 있습니다. 고급 보안 정책이 필요할 경우 AWS WAF나 AWS Network Firewall을 고려합니다.
2. 보안 그룹(Security Group) 이해하기
✅ 보안 그룹 특징
- 인스턴스 단위 적용 (예: EC2, RDS 등)
- 상태 저장(Stateful) 트래픽 제어
- 허용만 가능 (거부는 불가)
- 인바운드와 아웃바운드 규칙 별도 설정 가능
✅ 보안 그룹 설정 예시
SSH 접속 허용 (22포트)
인바운드 규칙 추가
- 유형: SSH
- 프로토콜: TCP
- 포트 범위: 22
- 소스: 내 IP(예: 203.0.113.0/32)
웹서버 접속 허용 (HTTP/HTTPS)
인바운드 규칙 추가
- 유형: HTTP / HTTPS
- 포트: 80 / 443
- 소스: 0.0.0.0/0 (모든 IP)
보안 그룹 생성 CLI 예시:
aws ec2 create-security-group \
--group-name web-sg \
--description "웹서버 보안 그룹" \
--vpc-id vpc-xxxxxx
3. 네트워크 ACL(Network ACL, NACL)
✅ NACL 특징
- 서브넷 단위 적용
- 상태 비저장(Stateless)
- 허용/거부 모두 설정 가능
- 번호 우선순위(번호가 낮을수록 먼저 평가)
✅ NACL 예시 구성
규칙 번호 | 유형 | 프로토콜 | 포트 범위 | 소스 | 허용/거부 |
---|---|---|---|---|---|
100 | HTTP | TCP | 80 | 0.0.0.0/0 | 허용 |
101 | SSH | TCP | 22 | 203.0.113.0/32 | 허용 |
* | ALL | ALL | ALL | 0.0.0.0/0 | 거부 |
NACL은 인바운드와 아웃바운드를 각각 설정해야 하며, 명시적으로 허용하지 않은 트래픽은 모두 거부됩니다.
4. AWS WAF 및 Network Firewall 개요
✅ AWS WAF
- 웹 애플리케이션 계층 (7계층) 보안 필터링
- SQL Injection, XSS, 봇 차단 등
- CloudFront, ALB, API Gateway와 연동
✅ AWS Network Firewall
- VPC 트래픽을 정밀하게 제어
- Stateful 검사, 도메인 필터링, 서명 기반 탐지 가능
- 고급 트래픽 분석이 필요한 기업용 방화벽 솔루션
WAF는 웹 보안, Network Firewall은 네트워크 보안을 강화합니다.
5. 실전 예제: EC2 웹 서버 구성과 보안 설정
✅ 1단계: 보안 그룹 생성
aws ec2 create-security-group \
--group-name "web-sg" \
--description "웹 서버용 보안 그룹" \
--vpc-id vpc-xxxxxx
✅ 2단계: 포트 열기
aws ec2 authorize-security-group-ingress \
--group-name "web-sg" \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0
✅ 3단계: EC2 인스턴스에 적용
aws ec2 run-instances \
--image-id ami-xxxxxxxx \
--instance-type t2.micro \
--key-name my-key \
--security-groups "web-sg"
6. AWS 보안 그룹 & 방화벽 Best Practices
✅ 최소 권한 원칙 적용
- 포트 개방은 필요한 최소 범위로 설정
- 전체 허용(0.0.0.0/0)은 피하거나 IP 제한 필요
✅ 인바운드/아웃바운드 별도 관리
- 불필요한 아웃바운드 트래픽도 제한 필요
- 데이터 유출 방지 목적
✅ 보안 그룹 재사용
- 동일 역할 인스턴스는 동일한 보안 그룹으로 통일
- 관리 효율성 증가
✅ 태그로 구분
- 보안 그룹에 태그(
Environment=Prod
,Team=DevOps
) 설정 - 가시성 향상 및 감사 대비
✅ 로그 모니터링
- VPC 흐름 로그 활성화
- AWS CloudTrail로 보안 그룹 변경 이력 추적
7. 자주 묻는 질문 (FAQ)
Q1. 보안 그룹과 NACL의 차이는 뭔가요?
보안 그룹은 인스턴스 레벨, NACL은 서브넷 레벨에서 작동합니다. 보안 그룹은 상태 저장(Stateful), NACL은 상태 비저장(Stateless)입니다. 보안 그룹은 허용만 가능하고, NACL은 허용/거부 모두 설정 가능합니다.
Q2. 보안 그룹을 여러 개 EC2에 동시에 적용할 수 있나요?
네. 하나의 보안 그룹은 여러 인스턴스에 동시에 적용할 수 있고, EC2 인스턴스 하나에 여러 개의 보안 그룹을 적용할 수도 있습니다.
Q3. 0.0.0.0/0을 사용하는 건 위험한가요?
예. 이는 모든 IP에서 접근을 허용하는 것으로 무조건 위험합니다. 반드시 필요할 경우 IP 제한, WAF 설정, MFA 등 추가 보안 조치를 취해야 합니다.
Q4. 보안 그룹 변경 시 즉시 적용되나요?
네. 보안 그룹은 변경 즉시 적용되며, 재시작 없이도 인스턴스에 바로 반영됩니다.
Q5. WAF는 어디에 사용하나요?
WAF는 CloudFront, Application Load Balancer(ALB), API Gateway, App Runner 등에 연결하여 웹 계층(HTTP/HTTPS)의 보안 위협을 필터링하는 데 사용합니다.
Q6. 보안 그룹을 삭제하면 인스턴스에 영향이 있나요?
보안 그룹이 인스턴스에 연결된 상태에서는 삭제가 불가능합니다. 삭제 전에는 다른 보안 그룹으로 교체해야 합니다.
마무리
AWS에서 보안 그룹과 방화벽 설정은 클라우드 보안의 가장 첫 단추입니다. 단순하지만 강력한 보안 정책을 구성하려면:
- ✅ 역할 기반 보안 그룹을 구성하고,
- ✅ IP 제한 및 포트 최소화 정책을 적용하며,
- ✅ VPC 흐름 로그와 CloudTrail로 모니터링을 강화하고,
- ✅ 필요 시 WAF, AWS Network Firewall을 도입하는 다계층 보안 전략이 중요합니다.
지금 사용하는 AWS 인프라의 보안 그룹 설정을 점검하고, 이 가이드를 참고해 안전하고 체계적인 클라우드 보안 환경을 구축해보세요.
🔎 관련 키워드 (SEO 최적화용)
AWS 방화벽 설정, AWS 보안 그룹 구성, EC2 보안 그룹 설정, NACL 설정 방법, AWS 보안 베스트 프랙티스, AWS WAF 적용, AWS Network Firewall, 클라우드 보안 정책 구성, AWS 인바운드 규칙, AWS 방화벽 실전 예시
'전산' 카테고리의 다른 글
# AWS 리소스링 모니터링 도구 설치하기 (0) | 2025.04.09 |
---|---|
# AWS 백업 및 복구하기 (0) | 2025.04.09 |
# Kubernetes에서 로그파일을 주기적으로 삭제하는 방법 (0) | 2025.04.09 |
# Docker에서 로그파일을 주기적으로 삭제하는 방법 (0) | 2025.04.09 |
# 리눅스 서버에서 로그파일을 주기적으로 삭제하는 방법 (0) | 2025.04.09 |