Case study · Platform and compliance

A locked-down AWS production platform for a credit union program

We rebuilt the program's production environment from scratch in Terraform: a dedicated network, a private encrypted database, no SSH access, and a deployment identity that can do one job only.

Client
US credit union rewards program
Service
Platform and compliance engineering
Duration
2 weeks (June 2026)
Team
1 senior platform engineer
Stack
Terraform, AWS (VPC, EC2, ALB, RDS MySQL, ECR, S3, CloudFront, Systems Manager, CloudWatch), Docker, Azure DevOps

01

Context

The program's services had grown on hand-built servers. As it moved to its second-generation platform, the client wanted production in its own AWS account, built so that every change could be reviewed as code.

02

Constraints

Regulatory
Credit unions assess the security of vendors that hold member data. The platform needed controls an assessor can check directly in code: network isolation, encryption, restricted access and backups.
Data
Member and booking data lives in a private database that only the application host can reach.
Integration
Partners allow-list the platform's public IP address, so that address had to survive the rebuild.

03

What we built

A greenfield Terraform stack in the client's AWS account: a new VPC with public subnets for the load balancer and host and private subnets for the database, one HTTPS load balancer routing each subdomain to its service, and a private S3 bucket served through CloudFront with Origin Access Control.

Access is closed by default. There is no SSH: administrators connect through Systems Manager Session Manager. Security groups are layered so the host only accepts traffic from the load balancer and the database only from the host. The CI pipeline has its own identity that can push images to six named container repositories and deploy to that one host, nothing else.

  • Terraform for the network, load balancer, host, database, container registry, CDN, IAM and monitoring
  • MySQL 8.0 on RDS in private subnets: encrypted, deletion-protected, 7-day backups, Performance Insights and enhanced monitoring
  • No SSH: admin access through Systems Manager Session Manager only, with IMDSv2 enforced
  • Layered security groups: load balancer to host to database
  • A least-privilege CI identity scoped to image pushes and deployments on one host
  • A private S3 assets bucket behind CloudFront with Origin Access Control
  • The existing public IP kept, so partner allow-lists continued to work

04

Architecture

Production network, access paths and supporting services as defined in Terraform. Account IDs are omitted.

Production network, access paths and supporting services as defined in Terraform. Account IDs are omitted.

Production network, access paths and supporting services as defined in Terraform. Account IDs are omitted.

05

Results

SSH ports open: admin access is through Session Manager only
0
services behind one HTTPS load balancer
6
of automated, encrypted database backups
7 days
to write the full production stack in Terraform
2 weeks

The client's production environment can be rebuilt from code, reviewed before every change, and audited without logging in to a server: who can reach what is visible in the Terraform.

Figures are as measured and approved by the client. We don't publish numbers we can't verify.

Next step

Tell us what has to pass audit.

Book a 30-minute call with an engineer, not a salesperson. If we're not the right fit, we'll say so.