AWS의 Security Groups: 작은 변화, 큰 보안 영향
Source: Dev.to
🧠 Security Group이란 무엇인가요?

Security Group은 가상 방화벽으로, AWS의 리소스(EC2, Load Balancer, RDS 등)로 들어오고 나가는 트래픽을 제어합니다.
전체 네트워크가 아니라 인스턴스 또는 서비스 수준에서 작동하며, 대부분의 AWS 아키텍처에서 실제 첫 번째 방어선입니다.
📌 stateful합니다
입입을 허용하면 응답은 자동으로 허용됩니다.

🛠️ 어떻게 사용하나요?
Security Group은 명시적인 규칙을 기반으로 합니다:
- 포트
- 프로토콜
- 출발지 / 목적지
간단한 예시
Application Load Balancer에서만 HTTP/HTTPS 트래픽을 허용합니다:

인스턴스에 대한 다른 직접 접근을 차단합니다.
트래픽을 명시적으로 “거부”하지는 않습니다: 허용되지 않은 모든 것은 차단됩니다.
✅ 핵심 모범 사례
- 최소 권한 원칙 – 반드시 필요한 포트만 열어야 합니다.
- Security Group을 참조하고 IP를 사용하지 않기 – 예: Load Balancer의 SG에서 애플리케이션 SG로 트래픽을 허용합니다.
- 편의상 0.0.0.0/0을 절대 사용하지 않기 – 특히 민감한 포트(22, 3389, 데이터베이스)에서는.
- 역할당 하나의 Security Group – 모든 곳에서 사용하는 “와일드카드” SG를 피합니다.
- 규칙 문서화 – 컨텍스트가 없는 SG는 기술 부채가 됩니다.
🧩 실제 예시 (일반적인 아키텍처)

ALB (공용)
인터넷에서 80/443을 허용합니다.
EC2 App .NET (프라이빗)
ALB의 SG에서만 80/443을 허용합니다.
결과
- 애플리케이션은 인터넷에서 접근할 수 없습니다.
- 모든 트래픽이 제어된 지점을 통과합니다.
🚨 왜 제대로 설정하는 것이 이렇게 중요한가요?
- 잘못 구성된 Security Group은 애플리케이션을 노출시킵니다.
- 많은 보안 사고가
0.0.0.0/0으로 시작됩니다. - 생성하기는 쉽지만, 깨지기도 쉽습니다.
💡 AWS에서는 보안이 서비스 부족 때문이 아니라, 잘못 정의된 규칙 때문에 실패하는 경우가 많습니다.
🏁 마무리
WAF, Zero Trust, 복잡한 아키텍처를 고민하기 전에, Security Group을 올바르게 사용하는 법을 배우세요.
AWS에서는 좋은 Security Group이 매우 나쁜 상황을 구제해줄 수 있습니다.