AES-256-GCM envelope encryption via AWS KMS; TLS 1.2/1.3
- Encrypted PHI columns across each schema: 46 Dashboard, 47 Edu
- Unique data encryption key per operation, zeroed from memory after use
- Separate customer-managed KMS keys — the Dashboard and Edu platforms each have their own application-layer PHI key, plus a dedicated disk-layer key for database storage and an isolated CloudTrail audit-log key
- TLS 1.2/1.3 enforced at ALB and CloudFront; 1.3 negotiated when client supports it
- S3 bucket policies reject any non-encrypted upload