Dubboi-2020/ai-sec-lab001
GitHub: Dubboi-2020/ai-sec-lab001
基于 AWS EKS 和 Bedrock 的全自动化 AI 安全实战实验室,通过 8 个模块帮助安全工程师学习生成式 AI 系统的攻击、防御与加固。
Stars: 0 | Forks: 0
# AI 安全实验室 001
一个全自动化的、可拆卸/重建的实战安全工程实验室,用于学习生成式 AI 系统在 AWS 中的工作原理,以及如何使用 DevSecOps 最佳实践来保护它们。
## 你将学到什么
| 领域 | 主题 |
|--------|--------|
| 生成式 AI 基础 | LLM 如何工作、工具使用、RAG、OWASP LLM Top 10 |
| AWS AI 服务 | Amazon Bedrock、Guardrails(输入 + 输出过滤)、调用日志 |
| 容器安全 | Trivy CVE 扫描、Kubesec 清单评分、Cosign 镜像签名 |
| Kubernetes 安全 | EKS 加固、IRSA、OPA 策略、NetworkPolicies、ImagePolicyWebhook |
| API 安全 | AWS WAF、API Gateway、Cognito 身份验证、使用计划 |
| DevSecOps 流水线 | CI/CD 中的安全门禁、左移扫描、准入控制 |
| 可观测性 | CloudWatch 仪表盘、CloudTrail、Security Hub、EventBridge 告警 |
| 事件响应 | 检测、遏制、调查实时的提示注入攻击 |
## 架构
```
User Request
│
▼
┌─────────────┐
│ AWS WAF │ OWASP rules · rate limiting · prompt size limit
└──────┬──────┘
▼
┌─────────────────┐
│ API Gateway │ Cognito JWT auth · throttling · request validation
└────────┬────────┘
▼
┌──────────────────────────┐
│ Bedrock Guardrails │ PII redaction · prompt injection · topic deny-list
│ (Input Filter) │
└────────────┬─────────────┘
▼
┌────────────────────────────────────────┐
│ Amazon EKS (t3.small nodes) │
│ ┌──────────────┐ ┌────────────────┐ │
│ │ Agentic AI │ │ Amazon Bedrock │ │
│ │ App (FastAPI)│◄─►│ Claude Sonnet │ │
│ └──────────────┘ └────────────────┘ │
│ IRSA · NetworkPolicy · OPA │
└────────────────────┬───────────────────┘
▼
┌──────────────────────────┐
│ Bedrock Guardrails │ Hallucination · toxicity · grounding
│ (Output Filter) │
└────────────┬─────────────┘
▼
┌──────────────────────────┐
│ CloudWatch · CloudTrail │ Audit · anomaly detection · alerting
│ Security Hub │
└──────────────────────────┘
CI/CD: Source → [Gate 1: Trivy] → [Gate 2: Kubesec] → ECR + Cosign → [Gate 3: ImagePolicyWebhook] → EKS
```
## 前置条件
- AWS CLI 已配置具有 Admin 或 PowerUser 权限的配置文件
- [OpenTofu](https://opentofu.org/docs/intro/install/) >= 1.6
- [kubectl](https://kubernetes.io/docs/tasks/tools/) >= 1.28
- [Helm](https://helm.sh/docs/intro/install/) >= 3.12
- [Docker](https://docs.docker.com/get-docker/)
- Make
```
# 验证工具
aws --version && tofu --version && kubectl version --client && helm version && docker --version
```
## 快速开始
```
# 1. Clone repo
git clone https://github.com/YOUR_ORG/ai-sec-lab001.git
cd ai-sec-lab001
# 2. 复制并填写您的 config
cp .env.example .env
# 编辑 .env — 至少设置 AWS_PROFILE 和 AWS_REGION
# 3. 构建整个 lab(约 15 分钟)
make build
# 4. 完成 lab 练习
make lab-status
# 5. 完成后 Tear everything down
make destroy
```
## Makefile 目标
| 目标 | 描述 |
|--------|-------------|
| `make build` | 完整的实验室构建:基础设施 + Helm 部署 |
| `make destroy` | 拆除所有 AWS 资源 |
| `make deploy-insecure` | 部署易受攻击的代理以进行练习 |
| `make deploy-secure` | 部署加固的代理 |
| `make scan` | 在本地运行 Trivy + Kubesec 安全门禁 |
| `make lab-status` | 打印 URL、凭据和后续步骤 |
| `make incident` | 触发实时的提示注入用于事件响应练习 |
| `make reset` | 重新部署 Helm charts,无需重建基础设施 |
| `make cost-estimate` | 运行 infracost 预估 |
## 实验室练习
1. **模块 1** — [LLM 基础与 OWASP LLM Top 10](docs/modules/01-llm-fundamentals.md)
2. **模块 2** — [Bedrock Guardrails:输入与输出过滤](docs/modules/02-bedrock-guardrails.md)
3. **模块 3** — [容器安全:Trivy、Kubesec、Cosign](docs/modules/03-container-security.md)
4. **模块 4** — [EKS 加固:IRSA、OPA、NetworkPolicies](docs/modules/04-eks-hardening.md)
5. **模块 5** — [API 安全:WAF、API GW、Cognito](docs/modules/05-api-security.md)
6. **模块 6** — [DevSecOps 流水线](docs/modules/06-devsecops-pipeline.md)
7. **模块 7** — [可观测性与告警](docs/modules/07-observability.md)
8. **模块 8** — [事件响应:提示注入攻击](docs/modules/08-incident-response.md)
## 成本明细(预估)
| 资源 | 类型 | 美元/小时 |
|----------|------|------|
| EKS 集群 | 1 个集群 | $0.10 |
| EC2 Worker 节点 | 2× t3.small | $0.04 |
| NAT Gateway | 1× | $0.045 |
| API Gateway | 按请求 | ~$0.00 |
| Bedrock | 按 Token | ~$0.01 |
| WAF | 按规则/请求 | ~$0.01 |
| **总计** | | **~$2–5/小时** |
## 仓库结构
```
ai-sec-lab001/
├── Makefile # Build / destroy / lab commands
├── .env.example # Environment variable template
├── infra/
│ └── tofu/
│ ├── modules/ # Reusable Tofu modules
│ │ ├── vpc/
│ │ ├── eks/
│ │ ├── bedrock/
│ │ ├── waf/
│ │ ├── api-gateway/
│ │ ├── cognito/
│ │ └── security-hub/
│ └── envs/lab/ # Lab environment root config
├── helm/
│ ├── charts/
│ │ ├── insecure-agent/ # Deliberately vulnerable agent
│ │ ├── secure-agent/ # Hardened agent
│ │ ├── opa-policies/ # OPA Gatekeeper policies
│ │ └── network-policies/ # Kubernetes NetworkPolicies
│ └── values/ # Per-environment values overrides
├── cicd/
│ ├── github-actions/ # Workflow files
│ └── scripts/ # Gate scripts (Trivy, Kubesec, Cosign)
├── src/
│ ├── agent/ # FastAPI agentic app source
│ └── api/ # Lambda authorizer source
├── monitoring/
│ ├── dashboards/ # CloudWatch dashboard JSON
│ └── alerts/ # EventBridge + SNS alert rules
└── docs/
├── modules/ # Lab exercise guides
└── runbooks/ # IR runbooks
```
标签:AI安全, Amazon Bedrock, Amazon Cognito, API Gateway, API安全, API集成, AppImage, AWS WAF, AWS安全, Bedrock Guardrails, Chat Copilot, Chrome Headless, CI/CD安全, CISA项目, CloudTrail, Cosign, DevSecOps, ECS, EKS安全, Helm, IRSA, JSON输出, K8s安全加固, Kubernetes安全, Kubesec, Llama, OPA, OpenTofu, OWASP LLM Top 10, Prompt注入, Security Hub, Terraform, Web应用防火墙, Web截图, 上游代理, 云计算, 可观测性, 大语言模型安全, 子域名突变, 安全实验室, 安全工程, 安全左移, 安全态势管理, 容器安全, 左移安全, 教学实验, 机密管理, 生成式AI安全, 网络策略, 虚拟机, 规则引擎, 请求拦截, 逆向工具, 镜像签名, 靶场