클라우드 보안 실무 가이드/AWS 보안 실무 가이드
[클라우드 보안 실무 #12] AWS 보안 그룹 실전 예시 총정리 – 실수 없이 구성하는 인바운드·아웃바운드 전략
cloudindovi
2025. 5. 14. 16:44
728x90
반응형
AWS 보안 그룹을 구성할 때 가장 많은 질문은 다음과 같습니다:
"포트는 뭘 열어야 하지?", "DB 접근은 어떻게 제한하지?", "내부 서비스 간 통신은 어떻게 연결하지?"
이번 글에서는 실제 현업에서 자주 사용되는 보안 그룹 구성 예시를 상황별로 정리하고,
IaC 도구를 활용한 관리 방법까지 포함해 설명합니다.
🧱 예시 1 – 웹서버 (EC2 + ALB)
기본적인 웹 애플리케이션 구성입니다. 웹 트래픽은 ALB에서 수신 후 EC2로 전달됩니다.
# ALB 보안 그룹
인바운드: TCP 80, 443 → 0.0.0.0/0
아웃바운드: TCP 80, 443 → EC2 보안 그룹
# EC2 보안 그룹
인바운드: TCP 80, 443 → ALB 보안 그룹
아웃바운드: ALL → 0.0.0.0/0 (필요에 따라 제한)
🔍 포인트: EC2의 80/443 포트를 ALB 보안 그룹에서만 허용하는 구조로,
외부 직접 접근을 차단하며 ALB를 통해서만 트래픽 유입을 허용합니다.
🧱 예시 2 – DB 서버 (RDS/MySQL)
DB는 반드시 접근을 최소화해야 하며, 웹서버 또는 백엔드 서버만 허용 대상입니다.
# RDS 보안 그룹
인바운드: TCP 3306 → EC2 보안 그룹
아웃바운드: TCP 443 → AWS 서비스 (업데이트 등)
🔍 포인트: 보안 그룹 ID 간 참조를 활용하여 IP 범위가 아니라 "논리적 연결"로 제어
💡 자주 발생하는 실수 Top 3
- 서버 간 통신을 위해 0.0.0.0/0을 열어놓고 방치
- SSH (22번 포트) 글로벌 오픈
- “모든 포트를 허용” 설정 후 깜빡하고 저장
☑ 실무에서는 반드시 정기적인 보안 그룹 점검이 필요합니다.
👉 [#7] AWS WAF 실무 운영 전략 총정리 글도 참고해보세요.
🛠 Terraform 예시 – 보안 그룹 IaC 관리
코드 기반으로 보안 그룹을 정의하고 버전 관리까지 가능하게 합니다.
resource "aws_security_group" "web" {
name = "web-sg"
vpc_id = var.vpc_id
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "web"
}
}
✅ 변경 이력 추적, 코드 리뷰, 멀티환경 구성에 유리합니다.
📌 관련 실무 가이드
이 글은 [클라우드 보안 실무] 시리즈 중 하나입니다.
👉 전체 시리즈 목차 보기
도움이 되셨다면 댓글이나 구독 부탁드립니다! 🙏
728x90
반응형