Summary
AWS 보안 그룹 규칙 추가는 EC2 서비스의 네트워킹 보안 정책을 관리하는 중요한 작업입니다. 인바운드/아웃바운드 트래픽에 대해 특정 포트, 프로토콜, 소스/대상을 지정하여 접근 제어를 구성할 수 있으며, AWS 콘솔, CLI, CloudFormation 등 다양한 방법으로 수행 가능합니다.
Details
1. AWS 콘솔을 통한 보안 그룹 규칙 추가
기본 단계
- EC2 콘솔 접속 → 네트워킹 및 보안 → 보안 그룹
- 대상 보안 그룹 선택 → 규칙을 추가할 보안 그룹 클릭
- 인바운드 규칙 또는 아웃바운드 규칙 탭 선택
- 규칙 편집 버튼 클릭 → 규칙 추가
규칙 설정 항목
- 유형: HTTP, HTTPS, SSH, Custom TCP/UDP 등
- 프로토콜: TCP, UDP, ICMP
- 포트 범위: 단일 포트(80) 또는 범위(8000-8080)
- 소스/대상:
> IP 주소: 192.168.1.100/32
> CIDR 블록: 10.0.0.0/16
> 다른 보안 그룹: sg-12345678
> 접두사 목록: pl-12345678
2. AWS CLI를 통한 보안 그룹 규칙 추가
인바운드 규칙 추가(예시)
# HTTP 트래픽 허용 (포트 80)
aws ec2 authorize-security-group-ingress \
--group-id sg-12345678 \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0
# SSH 접근을 특정 IP로 제한
aws ec2 authorize-security-group-ingress \
--group-id sg-12345678 \
--protocol tcp \
--port 22 \
--cidr 203.0.113.100/32
아웃바운드 규칙 추가(예시)
# HTTPS 아웃바운드 트래픽 허용
aws ec2 authorize-security-group-egress \
--group-id sg-12345678 \
--protocol tcp \
--port 443 \
--cidr 0.0.0.0/0
3. 일반적인 보안 그룹 규칙 예시
웹 서버용 보안 그룹
- 인바운드:
> HTTP (80): 로드 밸런서 보안 그룹
> HTTPS (443): 로드 밸런서 보안 그룹
> SSH (22): Bastion 보안 그룹 또는 특정 관리 IP(SSH 접근이 필요한 경우)
- 아웃바운드:
> HTTPS (443): 0.0.0.0/0 (패키지 업데이트, 외부 API 호출용)
> 또는 필요한 대상 IP 및 포트만 선택적 허용
데이터베이스용 보안 그룹
- 인바운드:
> MySQL/Aurora (3306): 웹/애플리케이션 서버 보안 그룹만
> PostgreSQL (5432): 웹/애플리케이션 서버 보안 그룹만
- 아웃바운드: 필요한 대상 IP 및 포트만 선택적 허용
Internet-facing 구성의 로드 밸런서용 보안 그룹
- 인바운드:
> 설정한 리스너 포트를 0.0.0.0/0에서 허용
> (HTTP: 80, HTTPS: 443 등 구성에 따라 상이)
- 아웃바운드:
> 대상 그룹의 인스턴스 포트 및 헬스 체크 포트
> 대상: 대상 인스턴스의 보안 그룹 (보안 그룹 ID 참조 권장)
Guidance
보안 모범 사례
1. 최소 권한 원칙
- 필요한 포트와 프로토콜만 허용
- 소스를 필요한 범위로 좁게 지정
> 가능한 경우: 특정 IP 주소(/32) 또는 작은 CIDR 블록
> 내부 통신: 보안 그룹 ID 참조 (IP보다 관리 용이)
> 0.0.0.0/0은 반드시 필요한 경우에만 사용
- 관리용 포트(SSH, RDP)는 특정 IP로만 제한
2. 계층화된 보안
- 웹 계층, 애플리케이션 계층, 데이터베이스 계층별 분리
- 각 계층 간 필요한 포트만 허용
- Network ACL과 조합하여 심층 방어
3. 규칙 명명 및 태그 관리
- 규칙별 설명(Description) 추가
- 목적에 맞는 보안 그룹 이름 사용
- 태그를 활용한 관리 체계 구축
4. 주의사항
- 보안 그룹 규칙 변경은 즉시 적용되므로 프로덕션 환경에서는 검증 후 적용 권장
- 규칙 변경은 즉시 적용되나, 연결 추적(Connection Tracking)으로 인해 기존 세션은 유지될 수 있음
고려사항
1. 보안 그룹 특성
- Stateful(상태 저장): 인바운드 허용 시 응답 트래픽 자동 허용
- 모든 규칙 평가: 허용 규칙 중 하나라도 일치하면 트래픽 허용
2. 제한사항
- 보안 그룹당 최대 60개 인바운드 규칙 (Service Quotas에서 증가 요청 가능)
- 보안 그룹당 최대 60개 아웃바운드 규칙 (Service Quotas에서 증가 요청 가능)
- VPC당 최대 2,500개 보안 그룹 (Service Quotas에서 증가 요청 가능)
3. 변경 사항 추적
- CloudTrail을 통한 API 호출 로깅
- Config Rules로 규정 준수 모니터링
- 정기적인 보안 그룹 감사
댓글
댓글 0개
댓글을 남기려면 로그인하세요.