워크샵 소개
이 워크샵은 가상의 온라인 패션몰 AnyCompany Fashion에서 발생한 보안 인시던트를 Amazon Bedrock AgentCore 기반의 SecOps 트리아지 에이전트로 조사하는 셀프페이스드 핸즈온입니다. 참가자는 플랫폼/보안 엔지니어 역할로, “배포 → 도구 연결 → 기억 → 관측·평가”라는 에이전트 운영 루프를 한 바퀴 돌립니다.
인시던트 스파인 — 블랙프라이데이 D-1 크리덴셜 스터핑
섹션 제목: “인시던트 스파인 — 블랙프라이데이 D-1 크리덴셜 스터핑”블랙프라이데이 세일 D-1 새벽, /api/login 경로에서 401 인증 실패가 평소 대비
급증합니다. 마케팅팀은 “세일 알림 트래픽”이라고 하지만, WAF·ALB·앱 인증 로그를
가로질러 보면 동일 IP 대역(203.0.113.x, 198.51.100.9)에서 자동화된 크리덴셜
스터핑의 흔적이 남습니다. 그리고 며칠 뒤, 다른 IP(192.0.2.55)에서
/api/products?id=... 경로로 이상 페이로드가 들어오면서 2차 인시던트(SQL
인젝션) 가 발생합니다.
이 워크샵은 이 두 인시던트를 하나의 서사로 관통합니다.
- 1차 조사(M1–M2) — 401 폭증 알림에서 시작해, 도구 없는 에이전트가 환각으로 대답하는 모습(M1)과, Gateway로 로그 조회 도구가 붙은 뒤 4단계 조사(컨텍스트 → 로그 심층 → 상관관계 → 근본 원인)로 크리덴셜 스터핑을 지목하는 모습(M2)을 대비합니다.
- 2차 인시던트 가속(M3) — 1차 조사 요약이 AgentCore Memory에 저장된 상태에서, SQLi 알림이 도착하면 회상(recall)이 조사 방향을 앞당깁니다.
- 품질 검증(M4) — 관측성 트레이스로 세션 스팬을 확인하고, 빌트인 evaluator로 응답 품질을 측정하며, 판정 티어 모델을 Claude Fable 5 vs GPT 5.6 Sol로 교체 비교합니다.
- 보너스(M5) — 조사 결과 JSON을 완결형 인시던트 리포트(마크다운)로 자동 렌더하고, 실무 확장 예시로 agents-as-tools 멀티에이전트 브릿지 스켈레톤을 훑습니다.
- 정리(M6) — 워크샵에서 만든 리소스를 역순 삭제 체크리스트로 정리합니다.
워크샵에 등장하는 IP, 계정, 로그 수치는 전부 합성 데모 값입니다. RFC 5737 테스트 대역(203.0.113.0/24, 198.51.100.0/24, 192.0.2.0/24)만 사용합니다.
AnyCompany Fashion — 3-tier 아키텍처
섹션 제목: “AnyCompany Fashion — 3-tier 아키텍처”조사 대상 시스템은 실무에서 흔한 3-tier 웹 서비스 구성입니다.
- 프론트 계층 — CloudFront + Application Load Balancer(ALB), 앞단에 AWS WAF. 사용자 요청과 WAF 판정, ALB 액세스 로그를 남깁니다.
- 애플리케이션 계층(WAS) — Amazon ECS/Fargate 위에서 도는 애플리케이션
서버. 자체 인증 로직의 성공/실패 로그(
/fashion/app-auth)를 남깁니다. - 데이터 계층 — 상품 카탈로그·주문 정보는 Oracle Database(감사 로그
/fashion/oracle-audit), 세션·이벤트 스파인은 Amazon Aurora PostgreSQL (pgaudit확장으로/fashion/apg-pgaudit).
워크샵의 모의 CloudFormation 스택(aiops-workshop-security)은 이 5개 로그
그룹과 CloudWatch filter_log_events API를 통해 실제 조회가 가능한 Lambda
(aiops-log-query)를 만듭니다. 로그는 합성 데이터 생성기
(data-gen/generate_logs.py)가 시딩합니다. filter_log_events는 방금 시딩된
이벤트도 즉시 반영되기 때문에 워크샵 재현성이 좋습니다(Logs Insights는 신선
이벤트를 인덱싱하는 데 수 분 지연이 생기므로 이 랩에서는 사용하지 않습니다,
실측 기준일 2026-07-16).
페르소나 — 플랫폼/보안 엔지니어
섹션 제목: “페르소나 — 플랫폼/보안 엔지니어”여러분은 AnyCompany Fashion의 플랫폼/보안 엔지니어입니다. SecOps 팀이 매일 받는 수백 건의 알림을 사람 손으로 다 볼 수는 없기에, “경고 수백 건(증상) → 공격 1건(원인)” 관점에서 알림을 트리아지·근본 원인 분석까지 이어 주는 에이전트를 구축하려 합니다. 이 워크샵은 그 첫 스프린트에 해당합니다.
다루는 AgentCore 서비스 지도
섹션 제목: “다루는 AgentCore 서비스 지도”| AgentCore 서비스 | 이 워크샵에서의 역할 | 관련 모듈 |
|---|---|---|
| Runtime | 에이전트 실행 환경 (Strands Agents SDK 호스팅, CDK 기반 배포) | M1, M2, M3 |
| Identity | Bedrock API 키를 token vault에 보관하고 @requires_api_key로 안전 주입 |
M1 |
| Gateway | 5개 로그 그룹을 조회하는 Lambda 도구 3종 + web-search 커넥터를 MCP 도구로 노출 (IAM 인바운드 auth) |
M2 |
| Memory | 1차 조사 요약을 저장했다가 2차 인시던트에서 UNTRUSTED 회상으로 주입 | M3 |
| Observability + Evaluations | 세션 스팬 추적, Builtin.Helpfulness / Builtin.ToolSelectionAccuracy 평가, 판정 티어 모델 비교 |
M4 |
| (보너스) 인시던트 리포트 + 멀티에이전트 브릿지 | 조사 결과 JSON → 완결형 IR 리포트, agents-as-tools 스켈레톤 | M5 |
사용하는 모델
섹션 제목: “사용하는 모델”| 티어 | 모델 | 형식 |
|---|---|---|
| 판정(Verdict) 티어 | Claude Fable 5 | global.anthropic.claude-fable-5 (global 인퍼런스 프로파일) |
| 판정 fallback | Claude Opus 4.8 | global.anthropic.claude-opus-4-8 |
| 조사(Investigator) 티어 | GPT 5.6 Luna | openai.gpt-5.6-luna (Bedrock Mantle Responses) |
| M4 비교 대상 | GPT 5.6 Sol | openai.gpt-5.6-sol |
| 리포트(M5) | Claude Fable 5 | 판정 티어와 동일 |
- Claude 계열은 온디맨드 호출 대신
global.anthropic.claude-*형태의 cross-region/global 인퍼런스 프로파일로 호출합니다 (2026-07-16 실측 확인). - GPT 계열은 Bedrock Mantle 엔드포인트(
bedrock-mantle.us-east-1.api.aws/openai/v1)로 호출되며, Bedrock API 키로 인증합니다. OpenAI 계정이 필요 없고 데이터는 AWS 밖으로 나가지 않습니다(Zero Operator Access).
모듈 지도
섹션 제목: “모듈 지도”| 모듈 | 시간 | 내용 | 다루는 신기능 |
|---|---|---|---|
| M0 사전 준비 | 실습 외 | 계정, 리전, 모델 준비, Bedrock API 키, 도구 설치, IAM 정책, 모의 보안 로그 CFN 배포 | — |
| M1 배포 | 20분 | 새 AgentCore CLI로 스캐폴드 → 로컬 테스트 → Runtime 배포. 도구 없는 에이전트의 환각 관찰 | AgentCore CLI, Identity token vault |
| M2 도구 연결·조사 ★ | 25분 | Gateway로 5개 로그 그룹을 조회하는 도구 3종 + web-search 커넥터 등록. 조사 티어(Luna)+판정 티어(Fable 5) 하이브리드로 4단계 조사 수행 |
Gateway (IAM auth), Web Search |
| M3 Memory | 20분 | 1차 조사 요약을 Memory event로 저장 → 2차 인시던트(SQLi)에서 UNTRUSTED 회상으로 조사 가속 | Memory, 프롬프트 인젝션 방어 패턴 |
| M4 관측·평가 | 20분 | 세션 스팬 다운로드 → 온디맨드 evaluate() → 판정 티어 모델 비교 (Fable 5 vs Sol) |
Observability, Evaluations |
| M5 보너스 | 15분 | 조사 결과 JSON → 완결형 IR 리포트 자동 렌더, agents-as-tools 멀티에이전트 브릿지 스켈레톤 | Multi-agent 패턴 |
| M6 정리 | 10분 | cleanup.sh로 역순 삭제 → 콘솔 확인 → Bedrock API 키 삭제 |
— |
준비되셨다면 M0 사전 준비부터 시작해 주세요.