Skip to content

AWS Production Security Gate ​

Production go-live on AWS is gated on the controls below. The gate has two parts: AWS-platform must-haves (mostly fin-infra/aws/ Terraform) and cross-cutting application blockers (blitz / blitz-ui) that would otherwise ship the same risks into production.

Rule: no item below may be 🔴 at go-live. Each maps to a finding in the findings register and a tracking issue. Owner: Sekhar Prakash (Security & Infrastructure).

Part A — Application blockers (must fix before prod) ​

These exist in staging today and are independent of AWS. They are the highest-priority items overall.

Gate itemWhy it blocks go-liveFinding
Bind request tenant to JWT claim + add RLS backstopCross-tenant data access is currently possible with one headerF-01
Enforce RBAC server-side on all finance endpointsAny authenticated user can post/delete journals, approve paymentsF-02
Parameterize all raw SQLInjection against tenant DBF-03
Lock down CORS (no wildcard + credentials) + CSRFCross-site authenticated requests to finance APIsF-04
Stop accepting client-set identity/audit fieldsImpersonation + audit-trail falsification across all modulesF-25
Allowlist /filter WHERE fieldsBOLA — enumerate any user's data via filterF-26
MFA for admin/approver rolesNo second factor on privileged financial actionsF-23

Part B — AWS platform must-haves (Day-1) ​

Gate itemControlFinding
Detection baselineCloudTrail (multi-region + log-file validation), GuardDuty, Security Hub, VPC Flow LogsF-11
Edge protectionAWS WAF (managed + rate rules) on ALB/CloudFront; Shield (Advanced optional)F-11 — 🟡 WAF now provisioned
TLS at edge ✅ALB + ACM cert, HTTPS-only, HTTP→HTTPS redirect — done (Phase 3)F-13 resolved 2026-07-10
IAM least privilegeRemove wildcard resources (kms:Decrypt *, ECS *, CloudFront *, PassRole arn:*); scope to prod account/ARNsF-12
Encryption (CMK)Customer-managed KMS keys + rotation for RDS, S3 (Restricted), Secrets ManagerF-18
RDS hardeningPrivate, encrypted, PITR, Multi-AZ, deletion protection (mostly ✓ designed)F-18
S3 hardeningBlock public (✓), versioning (✓), TLS-only bucket policy, server access logsF-18
SecretsSecrets Manager + rotation; never .env in repos, secrets in Terraform state, or secrets in imagesF-21, F-22
Container securityImage scanning in CI (fail on critical/high); non-root; read-only rootfs; dropped capabilities; digest pinningF-20
IdentityAWS Identity Center / SSO + enforced MFA; no IAM users except break-glassF-22
CI/CDTerraform plan approval gate before apply; HA NAT (2 AZs)F-22
  • Tamper-evidence on financial records + uniform audit trail (F-15)
  • Verify server-side approval/state-transition enforcement (F-16)
  • SPF/DKIM/DMARC + attachment scanning + email-workflow rate limits (F-17)
  • Security IR + breach-notification plan (Domain 12); documented RPO/RTO + restore drill (Domain 13)
  • Pre-production penetration test + vulnerability disclosure policy (F-24, fin-infra#39) — independent validation of the P0s before the first production tenant
  • LLM data-handling posture: prompt sanitization, PII redaction, per-tool agent RBAC, provider DPA (F-14)

Sign-off ​

Go-live security sign-off requires: Part A all 🟢, Part B all 🟢, Part C reviewed with any open items risk-accepted (with expiry) by the security owner (Sekhar Prakash). See the findings register for current status of each item.