A compliance-critical system needs every security layer on at once — defense in depth. There's no WAF and no NAT yet: add them. By the end: nothing reaches the ALB except through the WAF; app, database, cache and S3 are all unreachable from the internet; there's no open inbound SSH; the database, cache and S3 are encrypted at rest, with TLS in transit on the ALB, app and database; and private-subnet egress works. Miss any single layer and the volcano stays hot.
All challenges
Defense in depth
expertScenario & brief
3,000 rps peakp99 ≤ 200ms99.95% availdurability: criticalbudget $250/mo
Add components
Decide what this architecture actually needs — not every option belongs here.
Load Balancer
Networking
System health
Erupting · SLA breach
4
/ 100
Score
SLA not met yet
Monthly cost
$22
Budget $250/mo · within budget
Metrics
Security posture0
Connectivity25
Requirements met7
Requirements
WAF enabled at the edge — disabled (need enabled) ALB accepts only from the WAF — from internet (need only from waf) ALB serves TLS — cleartext (need encrypted in transit) App servers private — public subnet (need private subnet) No public SSH on app servers — public SSH open (need no public SSH) App traffic encrypted in transit — cleartext (need encrypted in transit) Database private — public subnet (need private subnet) Database not internet-reachable — internet-reachable (need not internet-reachable) Database encrypted at rest — plaintext (need encrypted at rest) Database encrypted in transit — cleartext (need encrypted in transit) Cache encrypted at rest — plaintext (need encrypted at rest) S3 bucket not public — internet-reachable (need not internet-reachable) S3 encrypted at rest — plaintext (need encrypted at rest) Private subnets egress via NAT — no NAT (need private egress via NAT)
Advisor
WAF enabled at the edge: Add / turn this protection on. ALB accepts only from the WAF: Restrict the security group to accept traffic only from waf. ALB serves TLS: Require TLS/HTTPS in transit. App servers private: Move it to the private subnet. No public SSH on app servers: Close public SSH — use SSM Session Manager or a bastion host instead. App traffic encrypted in transit: Require TLS/HTTPS in transit.
Discussion
Sign in to join the discussion.
No comments yet. Be the first to start the discussion.
For learning purposes only. Costs and capacities are illustrative, not live AWS prices. Not affiliated with or endorsed by Amazon Web Services.