03 / 09
보안 관련 요소
Edge/Network/IAM/Secret 다층 방어 구조, WAF, OAC, Security Group 분리, IAM Role 설계, Secrets Manager
다층 방어 구조 (Defense in Depth)
보안 구조는 단일 계층이 아니라, Edge / Network / IAM / Secret 관리로 분리된 다층 방어 구조로 설계하였습니다. 각 계층이 독립적으로 방어 역할을 수행하며, 하나의 계층이 뚫리더라도 다음 계층에서 차단할 수 있는 구조입니다.
Edge 보안 — CloudFront + WAF
가장 외부 계층에서 CloudFront와 AWS WAF를 결합하여 트래픽을 제어하였습니다. 공격 트래픽이 ALB 및 ECS까지 도달하기 전에 차단하는 것이 핵심입니다.
백엔드 리소스 보호
공격 트래픽이 ALB/ECS에 도달하기 전 차단
불필요한 비용 방지
악성 요청으로 인한 컴퓨팅 비용 발생 차단
보안 정책 중앙화
CloudFront 레벨에서 모든 보안 정책을 통합 관리
IP 기반 접근 제어 — 허용된 IP 대역만 접근 가능하도록 WAF 규칙 구성
Rate Limiting — 비정상적인 대량 요청 자동 차단
Bot Control — AWS WAF Bot Control로 자동화된 봇 트래픽 식별 및 차단
Request Body 제한 — 과도한 페이로드 요청 차단
OAC (Origin Access Control)
S3 오리진에 대한 접근을 CloudFront를 통해서만 허용하기 위해 OAC를 적용하였습니다. 기존 OAI 방식에서 OAC로 전환하여 보안성과 관리 편의성을 확보하였습니다.
기존 방식 (OAI)
• S3 버킷 정책에 OAI Principal 직접 지정
• KMS 암호화 미지원
• 레거시 방식으로 관리 복잡
개선 방식 (OAC)
• IAM 기반 서명으로 S3 접근 제어
• SSE-KMS 암호화 지원
• CloudFront 배포별 독립 관리
OAC 적용으로 S3 버킷의 퍼블릭 접근을 완전히 차단하고, CloudFront를 통한 접근만 허용하여 정적 리소스에 대한 보안 경계를 명확히 하였습니다.
네트워크 보안 — VPC 격리 & Security Group
Public Subnet에는 ALB만 배치하고, Private Subnet에 ECS, DB, ElastiCache를 배치하여 외부 직접 접근을 차단하였습니다. 서비스별 Security Group을 분리하여 최소 권한 원칙을 적용하였습니다.
| Security Group | 대상 | 인바운드 허용 |
|---|---|---|
| ALB SG | Application Load Balancer | CloudFront IP 대역 (80/443) |
| ECS SG | ECS Fargate Tasks | ALB SG에서만 허용 |
| DB SG | RDS (MariaDB) | ECS SG에서만 허용 (3306) |
| Cache SG | ElastiCache | ECS SG에서만 허용 (6379) |
환경 분리 개선
stg / prod 보안그룹을 완전 분리하고, 환경 간 접근을 차단하여 운영 안정성과 보안성을 강화하였습니다.
IAM 및 권한 관리
ECS Task Role과 Execution Role을 분리하고, 환경별로 독립 Role을 사용하여 권한 오용을 방지하였습니다.
ECS Task Role
애플리케이션이 AWS 리소스에 접근할 때 사용
• S3 버킷 접근
• SES 메일 발송
• 기타 AWS 서비스 호출
ECS Task Execution Role
ECS가 실행 시 필요한 권한
• ECR 이미지 Pull
• Secrets Manager 접근
• CloudWatch Logs 기록
stg / prod 각각 독립 Role 사용 — 환경 간 권한 침범 차단
Secrets 접근 범위 분리 — 각 환경의 Secret에만 접근 가능
최소 권한 원칙 적용 — 필요한 리소스에만 접근 허용
Secret 관리 — Secrets Manager
민감 정보는 Secrets Manager를 통해 관리하고, ECS Task에서 환경변수로 주입하는 방식을 적용하였습니다. stg / prod 환경별로 Secret을 완전 분리하여 보안 경계를 명확히 하였습니다.
| 항목 | 관리 방식 | 환경 분리 |
|---|---|---|
| Cache 비밀번호 | Secrets Manager | stg / prod 별도 |
| DB 접속 정보 | Secrets Manager | stg / prod 별도 |
| API 키 / 토큰 | Secrets Manager | stg / prod 별도 |
Summary
Edge 차단 + 네트워크 격리 + IAM 최소 권한 + Secret 분리로 구성된 다층 보안 구조를 적용하였습니다. 각 계층이 독립적으로 방어 역할을 수행하며, 환경 간 보안 경계를 명확히 분리하여 운영 안정성을 확보하였습니다.