Cloud 환경에서 서버를 운영할 때 가장 중요한 요소 중 하나는 Network 접근 제어입니다.
서버가 정상적으로 동작하더라도 외부에서 불필요한 접근이 가능하다면 보안 위험이 발생할 수 있습니다.
AWS에서는 EC2 Instance의 Network 접근을 제어하기 위해 Security Group을 제공합니다.
예:
사용자 요청
↓
Security Group 검사
↓
허용된 Traffic만 전달
↓
EC2 접근
Security Group은 AWS 환경에서 기본적인 Firewall 역할을 수행합니다.
| 구성 요소 | 역할 |
|---|---|
| Security Group | EC2 접근 제어 |
| Inbound Rule | 외부 접근 허용 |
| Outbound Rule | 외부 통신 제어 |
| Port | 서비스 접근 기준 |
| IP Range | 접근 대상 제한 |
AWS Security Group 구조를 이해하면 안전한 EC2, EKS, Database Network Architecture를 설계할 수 있습니다.
AWS Security Group이란?
Security Group은 AWS EC2 Instance에 적용되는 Virtual Firewall입니다.
제어 대상:
- HTTP
- HTTPS
- SSH
- Database Port
- Application Port
허용된 Traffic만 Instance에 접근할 수 있습니다.
AWS Security Group 동작 방식
구조:
User
↓
Internet
↓
Security Group
↓
EC2 Instance
↓
Application
Traffic이 Instance에 도달하기 전에 규칙을 확인합니다.
AWS Security Group Inbound Rule
Inbound Rule은 외부에서 EC2로 들어오는 Traffic을 관리합니다.
예:
Web Server:
허용
HTTP 80
HTTPS 443
관리자 접근:
SSH 22
필요한 Port만 열어야 합니다.
AWS Security Group Outbound Rule
Outbound Rule은 EC2에서 외부로 나가는 Traffic을 관리합니다.
예:
EC2
↓
Package Update
↓
Internet 접근
외부 통신 정책을 설정할 수 있습니다.
AWS Security Group Rule 구성 요소
Rule 구성:
| 항목 | 설명 |
|---|---|
| Type | Traffic 종류 |
| Protocol | 통신 방식 |
| Port | 접근 Port |
| Source | 접근 대상 |
예:
HTTPS
TCP
443
0.0.0.0/0
AWS Security Group과 Port 관리
대표 Port:
| 서비스 | Port |
|---|---|
| SSH | 22 |
| HTTP | 80 |
| HTTPS | 443 |
| MySQL | 3306 |
| PostgreSQL | 5432 |
운영 환경에서는 필요한 Port만 허용합니다.
AWS Security Group과 IP 제한
접근 범위 설정:
나쁜 예:
0.0.0.0/0
SSH 22 허용
모든 인터넷에서 SSH 접근 가능
좋은 예:
관리자 IP/32
SSH 22 허용
접근 범위를 제한합니다.
AWS Security Group Stateful 특징
Security Group은 Stateful Firewall입니다.
의미:
Inbound 허용
↓
Response Traffic 자동 허용
응답 Traffic을 별도로 설정할 필요가 없습니다.
AWS Security Group과 Network ACL 차이
| 구분 | Security Group | Network ACL |
|---|---|---|
| 적용 위치 | EC2 Instance | Subnet |
| 방식 | Stateful | Stateless |
| 규칙 | Allow만 가능 | Allow/Deny |
| 목적 | Instance 보호 | Network 보호 |
둘을 함께 사용하여 보안을 강화합니다.
AWS Security Group과 Load Balancer
Production Architecture:
User
↓
Load Balancer Security Group
↓
EC2 Security Group
↓
Application
계층별 접근 제어가 가능합니다.
AWS Security Group과 Database 보안
Database는 외부 공개를 피해야 합니다.
구조:
Application Server
↓
Database Security Group
↓
Database Port 허용
Application 계층만 접근하도록 구성합니다.
AWS Security Group과 Kubernetes EKS 연결
기존 Kubernetes와 연결하면:
AWS Security Group
↓
EC2 Worker Node
↓
EKS Cluster
↓
Pod Network Policy
Cloud Network Security와 Kubernetes Security를 함께 적용합니다.
AWS Security Group 운영 Best Practice
권장:
- 최소 Port 허용
- 관리자 IP 제한
- Database Public Access 차단
- Security Group 분리
- 불필요 Rule 제거
Least Privilege Network 구조를 구축합니다.
AWS Security Group 장애 분석
Security Group 확인:
aws ec2 describe-security-groups
Network 확인:
telnet server-ip port
확인:
- Port 차단
- Source IP 오류
- Rule 우선순위
- Instance 연결 문제
AWS Security Group Monitoring
관리:
- 변경 기록 확인
- CloudTrail 활용
- 정기 Rule 검토
보안 변경 사항을 추적합니다.
AWS Security Group 장점
| 장점 | 설명 |
|---|---|
| 접근 제어 | 허용 Traffic 관리 |
| 보안 강화 | 불필요 접근 차단 |
| 확장성 | Cloud Resource 연결 |
| 관리 편의 | Instance 단위 적용 |
Security Group은 AWS Network Security의 기본 요소입니다.
자주 묻는 질문
Security Group은 Firewall인가요?
네.
Cloud 환경에서 동작하는 Virtual Firewall 역할을 합니다.
모든 Port를 열어도 되나요?
가능하지만 보안 위험이 증가하므로 필요한 Port만 허용하는 것이 좋습니다.
Security Group과 Kubernetes NetworkPolicy 차이는 무엇인가요?
Security Group은 AWS Network 계층이고 NetworkPolicy는 Kubernetes Pod Network 계층에서 동작합니다.
마무리
AWS Security Group은 EC2 Instance의 Network 접근을 제어하는 핵심 보안 기능이며, Cloud Infrastructure에서 가장 기본적인 Firewall Architecture입니다.
| 구성 요소 | 역할 |
|---|---|
| Inbound Rule | 외부 접근 제어 |
| Outbound Rule | 외부 통신 제어 |
| Port | 서비스 접근 기준 |
| Source IP | 접근 범위 관리 |
| Stateful Firewall | Traffic 보호 |
AWS Security Group 구조를 이해하면 EC2, EKS, Database 기반 Enterprise Cloud Network Security를 설계할 수 있습니다.