
이 그림은 AWS에서 보안 사고가 나면 자동으로 탐지 → 알림 → 포렌식 환경 생성 → 로그 아카이브까지 이어지는 멀티-계정 아키텍처이다.
여기는 실제로 서비스가 돌아가는 계정이다.

구성 요소:
Amazon EC2 / AWS Lambda
AWS CloudTrail + VPC Flow Logs (Logs)
Amazon GuardDuty
AWS Security Hub
화살표 의미:
파란 글씨 “Initiates collection and/or containment”:
어떤 심각한 Finding이 떴을 때,
이걸 트리거로 Lambda를 호출해서
SSHBruteForce 같은 Finding 생성Quarantine=True로 변경
여기는 보안팀이 쓰는 중앙 관리 계정이다.
구성 요소:
AWS Security Hub (중앙 Security Hub)
Amazon GuardDuty
Amazon EventBridge
CloudTrail / Flow Logs
AWS KMS
흐름:
Severity>=High, GD_MaliciousIPCaller.Custom)을 필터링해서 EventBridge Rule로 보냄.즉,
“여러 계정에서 올라오는 보안 경보를 한 계정에서 모아서 보고,
진짜 심각한 건 포렌식/수집 자동화로 넘긴다” 구조.
여기는 사건이 났을 때만 잠깐 리소스를 생성해서 조사하는 계정이다.

구성 요소:
AWS Step Functions
Start → 격리 확인 → 스냅샷 생성 → 포렌식 EC2 기동 → 볼륨 붙이기 → 아티팩트 수집 → 종료AWS Lambda
CreateSnapshot, ModifyInstanceAttribute, CopyObject 등을 수행.AWS KMS
Amazon EC2 (Temporary forensic EC2 instance)
“Spins up temporary forensic EC2 instance” 라고 적혀 있지?
Step Functions가 사건마다 일시적인 포렌식 전용 인스턴스를 띄워.
Amazon S3 (Artifacts)
CloudTrail / Flow Logs
흐름:
Security Tooling account의 EventBridge가
Forensics account의 Step Functions를 Invoke(“Initiates”).
Step Functions 시나리오 예:
CreateSnapshot API로 해당 인스턴스의 모든 EBS 볼륨 스냅샷GuardDuty가 “RDP Brute Force 성공 가능성” Finding 생성
EventBridge Rule:
if Severity >= High AND ResourceType == EC2 THEN trigger ForensicWorkflow
ForensicWorkflow(=Step Functions) 실행:
IsolateSecurityGroup Lambda가 격리 SG로 교체SnapshotVolumes 상태에서 모든 EBS 스냅샷StartForensicInstance 상태에서 “DFIR-Tool-AMI”로 EC2 기동AttachVolumes에서 스냅샷 볼륨을 forensic EC2에 부착CollectArtifacts에서 메모리 덤프/디스크 이미지 수집 → S3에 저장NotifyAnalyst 상태에서 SNS로 “수집 완료” 알림여기는 로그만 모아서 오래, 변경 불가능하게(Immutable) 보관하는 계정이다.
구성 요소:
Amazon S3 (Log archive bucket)
다른 계정들(Monitored, Security Tooling, Forensics)의 CloudTrail / Flow Logs가
전부 이 버킷으로 cross-account로 전송됨.
보통은
흐름:
이렇게 하면:
“사고가 난 계정에서 공격자가 CloudTrail 로그를 삭제해버렸다”
→ 그래도 Log Archive account에 복제된 로그는 안전하게 남아 있음.
포렌식 분석할 때,
Monitored account
Security Tooling account
Forensics account
Log Archive account