jamil3424-bit/banking-fraud-detection-dashboard
GitHub: jamil3424-bit/banking-fraud-detection-dashboard
基于 AWS 的双 Lambda 事件驱动银行欺诈检测管道,通过 DynamoDB Streams 自动串联确定性风险评分与通俗解释生成。
Stars: 0 | Forks: 0
# 银行欺诈检测仪表板
**状态:** ✅ 已完成
## 🎯 核心要点(快速回顾)
- 构建了完全事件驱动的双 Lambda 架构:一个函数以确定性方式评估风险,第二个函数通过 DynamoDB Streams 自动响应并生成通俗易懂的解释
- 将“快速、低成本、确定性”的评分逻辑与“解释”层解耦——这是一种在生产系统中广泛使用的模式,用于分离关注点并控制成本
- 对两个 Lambda 角色应用了最小权限 IAM(仅限特定的表/存储桶/操作,没有使用通配符权限)
- 将 AI 层设计为可替换的——目前使用模板逻辑,但采用了与 LLM API 调用完全相同的结构,从而避免在个人项目中产生不必要的经常性成本
- 全流程完成了 3 次端到端测试,无需任何手动触发——证实了这是真正的事件驱动行为,而不仅仅是孤立的函数测试
## 架构
1. 提交交易 → **Lambda 1** (`fraudDetectionScorer`) 根据 4 个欺诈信号计算确定性的风险评分,并将结果写入 DynamoDB
2. DynamoDB Streams 在每次新写入时自动触发事件
3. **Lambda 2** (`fraudExplanationGenerator`) 自动触发,读取风险数据,生成通俗易懂的解释,并更新同一个 DynamoDB 项目
## 使用的 AWS 服务
- **S3** — 原始交易数据存储
- **DynamoDB** — 启用了 Streams (NEW_IMAGE) 的标记交易存储
- **Lambda (x2)** — 解耦的评分 + 解释函数
- **IAM** — 两个自定义的最小权限角色(范围限定于确切的资源,而非通配符)
- **CloudWatch** — 两个函数的日志记录
## 技术栈
Python 3.12, boto3, AWS CLI, Git/GitHub
## 检测到的欺诈信号
- 收货地址最近被更改
- 来自新/未识别设备的购买
- 异常巨大的购买金额
- 多次失败的支付尝试
## 备注
本项目中的解释层特意采用了模板逻辑构建,而没有使用实时的 LLM API 调用,以避免在个人作品集项目中产生经常性成本。其代码结构(事件处理、DynamoDB 读写)与真实的 Claude/OpenAI API 集成完全相同——接入实时调用只需进行微小且独立的代码修改。
标签:AWS Lambda, DynamoDB Streams, Python, 事件驱动架构, 反欺诈检测, 无后门, 无服务器, 漏洞探索, 逆向工具