aws-samples/sample-agentic-ai-security-operations-using-quick-suite
GitHub: aws-samples/sample-agentic-ai-security-operations-using-quick-suite
基于AWS CDK的Agentic SOC研讨会基础设施,用于一键部署模拟攻击环境并指导构建AI驱动的多工具安全运营Agent。
Stars: 2 | Forks: 0
# Agentic SOC 研讨会 — CDK 基础设施
本仓库包含 Agentic SOC 研讨会的 AWS CDK 基础设施。它负责配置运行该研讨会所需的所有 AWS 资源,包括身份验证、日志记录、攻击模拟,以及用于构建 AI 驱动的安全运营中心 (SOC) Agent 的支持性基础设施。
## 目录
1. [前置条件](#prerequisites)
2. [设置](#setup)
3. [项目结构](#project-structure)
4. [架构](#architecture)
5. [部署基础设施](#deploy-the-infrastructure)
6. [构建你的 SOC Agent](#build-your-soc-agent)
7. [故障排除](#troubleshooting)
## 前置条件
在开始之前,请确保您已安装并配置了以下内容:
- Python 3.12+
- Node.js(CDK CLI 所需)
- AWS CDK CLI:`npm install -g aws-cdk`
- 具有足够权限以部署堆栈的 AWS 凭证
## 设置
### 1. 配置您的 AWS 环境
```
# 配置你的 AWS CLI 凭证
aws configure
# 或设置 named profile
export AWS_PROFILE=
```
### 2. 创建并激活虚拟环境
```
python3 -m venv .venv
source .venv/bin/activate
```
### 3. 安装 Python 依赖
```
pip install -r requirements.txt
```
## 项目结构
```
.
├── workshop_constructs/ # Reusable CDK constructs
│ ├── authentication_construct.py # Cognito user pool and OAuth clients
│ ├── logging_infrastructure_construct.py # CloudTrail, VPC Flow Logs, Glue, Athena
│ ├── attack_prerequisites_construct.py # Attacker IAM user, EC2 role, S3 buckets
│ ├── attack_post_cleanup_construct.py # Deletes attacker user after simulation
│ ├── business_metadata_mcp_construct.py # DynamoDB + Lambda + AgentCore Gateway
│ ├── sagemaker_construct.py # SageMaker Studio domain and notebooks
│ └── agentcore_resources_construct.py # IAM roles for AgentCore Runtime and Gateways
├── core_infrastructure_stack.py # Core stack definition
├── attack_simulation_stack.py # Attack simulation stack definition
├── lambdas/ # Lambda function handlers
├── app.py # Stack orchestration entry point
├── cdk.json # CDK configuration and context
└── README.md # This file
```
## 架构
本研讨会按顺序使用两个 CloudFormation 堆栈进行部署:
### 1. 核心基础设施堆栈 (`AgenticSOCWorkshopCore`)
配置研讨会开始前所需的所有基础资源:
- **身份验证** — 带有 M2M 和 3-legged OAuth 客户端的 Cognito 用户池,用于 Agent 网关
- **日志基础设施** — CloudTrail(包含 S3 数据事件)、VPC Flow Logs、Glue 数据目录,以及用于日志查询的 Athena
- **攻击前置条件** — 攻击者 IAM 用户 (`attacker-adam`)、EC2 实例配置文件,以及敏感数据 S3 存储桶
- **业务元数据网关** — 加载了账户元数据的 DynamoDB 表,通过 Bedrock AgentCore MCP Gateway 暴露
- **SageMaker Studio** — 预加载了研讨会笔记本的 JupyterLab 环境
- **AgentCore 资源** — 用于 AgentCore Runtimes 和 Gateways 的 IAM 执行角色
- **QuickSight** — 仪表板的订阅设置
- **GuardDuty** — 威胁检测器(默认启用,请参阅 [GuardDuty 说明](#guardduty-deployment))
### 2. 攻击模拟堆栈 (`AgenticSOCWorkshopAttackSim`)
运行自动化攻击场景并在完成后进行清理:
- **攻击模拟 Lambda** — 使用 `attacker-adam` 凭证执行真实的攻击序列,生成供参与者调查的 GuardDuty 发现和 CloudTrail 事件
- **攻击后清理** — 在模拟完成后删除 `attacker-adam` IAM 用户,以便参与者练习调查已注销的威胁行为者
攻击堆栈依赖于核心堆栈,必须作为第二个进行部署。
## 部署基础设施
请按顺序部署堆栈。攻击堆栈依赖于核心堆栈创建的资源。
### 步骤 1 — 部署核心基础设施
```
cdk deploy AgenticSOCWorkshopCore --context @aws-cdk/core:stackName=workshop-core-infra-template
```
此过程大约需要 10–15 分钟。完成后,堆栈输出将显示研讨会模块所需的 URL 和凭证。
#### GuardDuty 部署
GuardDuty 检测器部署默认启用(在 `cdk.json` 中设置)。如果您的账户已经启用了 GuardDuty,请跳过检测器以避免冲突:
```
cdk deploy AgenticSOCWorkshopCore \
--context @aws-cdk/core:stackName=workshop-core-infra-template \
--context guardduty=false
```
### 步骤 2 — 部署攻击模拟
核心堆栈完全部署完成后,运行攻击模拟:
```
cdk deploy AgenticSOCWorkshopAttackSim --context @aws-cdk/core:stackName=workshop-attack-sim-template
```
这个由 Lambda 支持的自定义资源将在部署期间自动执行攻击序列。`attacker-adam` IAM 用户将在模拟结束时被删除 —— 这是故意的,也是研讨会场景的一部分。
## 构建您的 SOC Agent
随着基础设施的部署和攻击模拟的完成,您已经准备好构建 AI 驱动的 SOC Agent 了。
### 您将构建什么
本研讨会将指导您构建一个多工具 SOC Agent,它能够:
- 查询**业务元数据网关**以查找账户所有权和分类
- 针对 CloudTrail 和 VPC Flow Logs 运行 **Athena 查询**以调查可疑活动
- 通过 3-legged OAuth 网关采取**自动化遏制措施**(例如,隔离受损的 EC2 实例)
- 关联跨数据源的发现以生成事件摘要
### 开始使用
1. **完整的研讨会指南** — 关于完整的端到端说明(包括如何连接 Agent 聊天界面),请参阅此处的研讨会内容:
👉 [认识 Alex — Agentic SOC 研讨会](https://catalog.us-east-1.prod.workshops.aws/workshops/ee74880e-0eec-4b8b-9900-975dc0ee6d45/en-US/20-meet-alex)
2. **遵循研讨会模块** — 笔记本将使用堆栈输出(网关 URL、OAuth 凭证、IAM 角色 ARN)作为配置值,逐步引导您完成每项 Agent 功能。
## 故障排除
### 堆栈卡在 ROLLBACK_COMPLETE 状态
如果部署失败并且堆栈处于 `ROLLBACK_COMPLETE` 状态,请在重试之前将其删除:
```
aws cloudformation delete-stack --stack-name AgenticSOCWorkshopCore
aws cloudformation wait stack-delete-complete --stack-name AgenticSOCWorkshopCore
```
如果存在带有硬编码名称(例如,`workshop-sensitive-data-store-`)的 S3 存储桶仍保留自上次失败的部署中,请先将其删除:
```
aws s3 rb s3://workshop-sensitive-data-store-$(aws sts get-caller-identity --query Account --output text) --force
```
### 其他有用的命令
```
# 部署前预览更改
cdk diff AgenticSOCWorkshopCore
cdk diff AgenticSOCWorkshopAttackSim
# Synthesize CloudFormation templates 而不部署
cdk synth AgenticSOCWorkshopCore
cdk synth AgenticSOCWorkshopAttackSim
# 列出所有 stacks
cdk list
# Tear down (先 attack stack,然后 core)
cdk destroy AgenticSOCWorkshopAttackSim
cdk destroy AgenticSOCWorkshopCore
```
标签:ATT&CK模拟, AWS CDK, CloudTrail, Cognito, C语言, IAM角色, Python, SageMaker, SOC自动化, VPC Flow Logs, 云基础设施部署, 云靶场, 亚马逊云科技, 大语言模型安全, 无后门, 智能安全运营中心, 机密管理, 红队模拟, 网络安全攻防演练, 逆向工具