Fraud Detection AWS Platform
A fraud transaction scoring platform built on AWS with a Python worker running in private EC2 subnets — no SSH, no bastion, zero inbound exposure. Operator access is exclusively through SSM Session Manager over VPC Interface Endpoints. The processing pipeline runs SQS → EC2 → DynamoDB, provisioned by 11 single-responsibility Terraform modules and deployed via OIDC-based GitHub Actions CI/CD with no static credentials (a dual-role read-only-plan / admin-apply model scoped to exact OIDC sub claims, with terraform plan posted as a PR comment). Hardened AL2023 ARM64 Golden AMIs are produced by an EC2 Image Builder pipeline with a CIS baseline and an ARM64 validation gate before ASG rolling updates, and security/observability is wired through GuardDuty, AWS Backup, and EventBridge → SNS → Lambda → Slack alerting.
Architecture
A Python scoring worker runs in private EC2 subnets behind an Auto Scaling group, consuming from SQS and writing scored results to DynamoDB. There is no public ingress — operators reach instances only through SSM Session Manager over VPC Interface Endpoints. Hardened ARM64 Golden AMIs flow from an EC2 Image Builder pipeline with a CIS baseline and a validation gate before ASG rolling updates. GuardDuty, AWS Backup, and EventBridge → SNS → Lambda → Slack provide threat detection, recovery, and alerting.
Screenshots
Live console captures from the running platform.
Operational Value
Problem Solved
Scores fraud transactions on infrastructure with zero inbound exposure and no static credentials anywhere in the delivery path.
- ✓ Zero inbound exposure — no SSH, no bastion; SSM-only operator access over VPC Interface Endpoints
- ✓ 11 single-responsibility Terraform modules with OIDC-based CI/CD (no static credentials)
- ✓ Hardened AL2023 ARM64 Golden AMIs gated by an ARM64 validation step before reaching the fleet
- ✓ HIGH/CRITICAL GuardDuty findings routed to Slack via EventBridge → SNS → Lambda
Cost Impact
AWS Budgets capped at $100/month
Reliability Impact
AWS Backup with a 7-day warm / 30-day cold KMS-encrypted vault
Detailed case study documentation is in progress. See the GitHub repository for implementation details and README.