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
반응형
'클라우드 보안 실무 가이드 > AWS' 카테고리의 다른 글
[클라우드 보안 실무 #14] AWS WAF 예외 처리 방법 – XSS 필터 오탐 대응 전략 (0) | 2025.05.20 |
---|---|
[클라우드 보안 실무 #13] AWS Bedrock – 생성형 AI 도입, 실무에선 이렇게 씁니다 (0) | 2025.05.15 |
[클라우드 보안 실무 #11] AWS 보안 그룹, 제대로 설정하는 실무 가이드 (0) | 2025.05.14 |
[클라우드 보안 실무 #10] AWS KMS, 실전 암호화 시나리오 정리 (0) | 2025.05.10 |
[클라우드 보안 실무 #9] AWS KMS, 고객 키 관리 전략 – CMK, BYOK, 키 로테이션 실무 가이드 (2) | 2025.05.10 |