개요
AWS 클라우드에서 3-Tier 아키텍처를 구성하여 웹 애플리케이션의 확장성과 보안을 극대화하는 설계에 대해 설명합니다. 이 아키텍처는 VPC를 통해 네트워크를 격리하고, 퍼블릭 및 프라이빗 서브넷을 통해 보안을 강화하며, Bastion Host와 NAT Gateway를 이용하여 효율적인 접근 제어와 보안 정책을 적용하고 있습니다.
웹 서버는 프레젠테이션 계층, 애플리케이션 서버는 비즈니스 로직 계층, RDS는 데이터 계층을 구성하며, 각 계층 간의 접근을 최소화하여 보안을 유지합니다. 다양한AWS 관리 및 모니터링 서비스(CloudWatch, CloudTrail, Config, GuardDuty)를 통해 보안 상태를 지속적으로 점검하고 있습니다.
네트워크와 보안 구성
VPC: AWS의 가상 프라이빗 클라우드로, 이 아키텍처의 네트워크 격리를 제공합니다.
서브넷 구성: 퍼블릭 서브넷과 프라이빗 서브넷으로 나뉘며, 퍼블릭 서브넷에는 NAT Gateway와 Bation Host 웹 서버와 애플리케이션 서버가, 프라이빗 서브넷에는 데이터베이스(RDS MySQL)가 위치합니다.
가용 영역 (AZ): 고가용성을 위해 여러 가용 영역에 퍼블릭 및 프라이빗 서브넷을 분산 배치하여 장애 발생 시 신속한 대응이 가능하게 합니다.
Bastion Host: 외부 관리자가 SSH로 접근할 수 있도록 프라이빗 서브넷 내 리소스에 대한 접근 경로를 제공합니다. Bastion Host를 통해 직접 접근 없이도 안전하게 네트워크 내 리소스에 접근할 수 있습니다.
- 로컬에 있는 키페어로 Bastion Host 접속
- 키페어를 Bastion Host에 복사하여 웹서버에 접속
NAT Gateway: 프라이빗 서브넷 내 리소스가 외부 인터넷에 접근할 수 있도록 하며, 직접적인 인터넷 트래픽을 차단하여 보안을 강화합니다.
- NAT Gateway를 통해 웹서버에서 8.8.8.8 구글서버에 ping test 성공한 모습
데이터베이스(RDS): AWS RDS는 데이터 암호화, VPC 내 격리, Multi-AZ 배포, 백업 및 액세스 제어(IAM, 보안 그룹)를 통해 데이터의 기밀성, 무결성, 가용성을 보장하여 안전한 데이터 저장을 지원합니다.
- 앱서버에 mysql 설치 후 RDS로 접속성공, Database 확인 쿼리 전송
Route 53: 도메인 이름 시스템(DNS) 서비스로, 트래픽을 안전하게 라우팅하고 Failover 설정을 통해 고가용성을 제공합니다.
Certificate Manager: SSL/TLS 인증서를 무료로 발급, 관리하여 애플리케이션과 사용자 간의 HTTPS 암호화 통신을 통해 데이터 전송의 기밀성과 무결성을 보장합니다.
보안 그룹: 모든 인스턴스에 대해 인바운드 및 아웃바운드 트래픽을 제어하는 보안 그룹이 적용되어 있습니다. 웹 서버, 애플리케이션 서버, 데이터베이스 각각에 대해 최소한의 접근 권한을 설정하여 보안을 강화했습니다.
ALB (Application Load Balancer): 여러 웹 서버 및 애플리케이션 서버에 트래픽을 분산하여 고가용성을 제공하며, SSL 인증서를 적용하여 HTTPS를 통해 안전한 통신을 보장합니다.
IAM
SSO (Single Sign-On): AWS SSO를 통해 다중 계정을 통합 관리하고, 접근 권한을 중앙에서 일괄적으로 제어할 수 있도록 설정합니다. 이를 통해 권한 관리의 효율성과 보안을 동시에 확보할 수 있습니다.
MFA (Multi-Factor Authentication): 모든 주요 IAM 사용자와 SSO 계정에 대해 다중 인증을 활성화하여 계정 탈취 위험을 줄였습니다.
AWS 서비스 보안 구성(CloudWatch, CloudTrail, Config, WAF, GuardDuty, SNS)
AWS Config: 리소스의 구성 변경을 추적하고, 보안 규정을 준수하지 않는 리소스를 감지하면 알림을 전송합니다. 예를 들어, 퍼블릭으로 설정된 S3 버킷이나 암호화가 되지 않은 EBS 볼륨 등이 발견되면 알림을 받도록 설정합니다.
CloudWatch: AWS 리소스의 메트릭을 실시간으로 모니터링하며, 주요 메트릭(CPU 사용률, 네트워크 트래픽 등)에 대해 임계값을 초과할 경우 경고를 발생시켜SNS를 통해 알림을 전송합니다.
CloudTrail: 모든 API 호출을 기록하여 보안 사고를 분석하고 감사에 활용할 수 있도록 구성되었습니다. 기록된 데이터는 S3 버킷에 저장되며, 필요할 경우 분석을 통해 보안 점검에 활용됩니다.
WAF (Web Application Firewall): SQL 인젝션, XSS 등 일반적인 웹 애플리케이션 공격으로부터 웹 서버를 보호하며, 트래픽이 ALB를 통해 전달되기 전에 필터링됩니다.
- ALB에 연결된 WAF가 XSS 공격을 감지하고 접근을 차단함
GuardDuty: AWS 계정 내 비정상적인 활동을 자동으로 탐지하여, 위험이 발생했을 때 알림을 통해 대응할 수 있도록 구성합니다.
SNS (Simple Notification Service): CloudWatch, Config, GuardDuty에서 발생하는 경고와 알림을 보안 팀이나 관리자가 실시간으로 받을 수 있도록 설정되었습니다. 또한 SNS 주제를 구독한 Lambda 함수를 통해 알림을 받을 뿐만 아니라 자동화된 대응 작업을 수행할 수 있습니다.
참고한 보안구성 가이드: https://www.skshieldus.com/uploads/files/20240416/20240416180036051.pdf
ISMS-P
'Cloud' 카테고리의 다른 글
Zero Trust 보안 설계 (1) | 2024.11.26 |
---|---|
Terraform과 Github Actions 활용한 자산식별, ISMS-P, 배포 자동화 (4) | 2024.11.13 |
AWS 기본 아키텍처 설계 (1) | 2024.11.13 |
온프레미스와 클라우드 (2) | 2024.11.12 |
클라우드 보안 (5) | 2024.11.12 |