SG란? (Security Group)
SG(Security Group)는 AWS에서 제공하는 가상 방화벽으로,
EC2, ALB, RDS 같은 리소스에 들어오고 나가는 트래픽을 제어하는 보안 기능이다.
1) SG가 왜 필요한가 (배경)
AWS는 기본적으로 네트워크가 열려 있지 않다.
아무 설정도 안 하면:
- 외부 접근 ❌
- 내부 접근 ❌
즉, 의도적으로 허용하지 않으면 통신 자체가 안 됨.
SG는:
- 최소 권한 원칙
- 서비스별 접근 제어
- 외부 공격 최소화
를 위해 필수적인 구성 요소다.
2) SG 한 줄 정의
Security Group은 AWS 리소스에 적용되는 상태 기반(Stateful) 가상 방화벽이다.
3) SG의 핵심 특징
(1) Stateful (상태 기반)
- 인바운드 허용 → 아웃바운드 자동 허용
- 응답 트래픽은 별도 허용 규칙 불필요
(2) Allow 규칙만 존재
- Deny 규칙 ❌
- 허용된 것만 통과
(3) 리소스 단위 적용
- Subnet이 아니라
- EC2 / ALB / RDS 단위로 적용
4) SG의 구성 요소
인바운드 규칙 (Inbound)
- 외부 → 리소스 접근 제어
- 예:
- 22 (SSH)
- 80 / 443 (HTTP/HTTPS)
- 3306 (MySQL)
아웃바운드 규칙 (Outbound)
- 리소스 → 외부 통신 제어
- 기본값: All Allow
5) SG 동작 예시 (실무에서 제일 중요)
웹 서비스 기본 구조
[Internet]
↓ 80/443
[ALB SG]
↓
[EC2 SG]
↓
[RDS SG]
SG 설정 예시
ALB SG
- Inbound: 80, 443 from 0.0.0.0/0
- Outbound: EC2 SG
EC2 SG
- Inbound: 8080 from ALB SG
- Outbound: RDS SG
RDS SG
- Inbound: 3306 from EC2 SG
- Outbound: 없음(또는 제한)
🔥 핵심 포인트
IP가 아니라 “SG를 기준으로 허용”
6) SG vs NACL (차이점)
| 구분 | SG | NACL |
| 적용 단위 | 리소스 | Subnet |
| 상태 | Stateful | Stateless |
| 규칙 | Allow only | Allow + Deny |
| 우선순위 | 없음 | 있음 |
실무에서는
NACL은 크게 건드리지 않고 SG로 대부분 제어
7) SG 설계 베스트 프랙티스
✅ 최소 권한
- 0.0.0.0/0 남발 ❌
- 필요한 포트만 허용
✅ SG 참조 사용
- IP 대신 SG ID 참조
- 서버 교체 시 설정 변경 최소화
✅ 역할별 SG 분리
- ALB SG
- APP SG
- DB SG
8) SG에서 자주 하는 실수
❌ EC2에 22번 포트를 전체 오픈
❌ RDS를 Public Subnet + SG 전체 허용
❌ IP 고정이라고 가정하고 CIDR 하드코딩
'Infra&Cloud > AWS' 카테고리의 다른 글
| AWS-ALB(Application Load Balancer) (0) | 2026.02.08 |
|---|---|
| AWS-RDS(Relational Database Service) (0) | 2026.02.08 |
| AWS-NACL(Network Access Control List) (0) | 2026.02.08 |
| AWS-Public/Private Subnet (0) | 2026.02.08 |
| AWS-VPC(Virtual Private Cloud) (0) | 2026.02.08 |