HIPAA-Compliant Multi-Tenant Cloud EHR Platform

In Plain Language

Processing protected health information (ePHI) in multi-tenant cloud environments requires defense-in-depth cryptography. This case study details the architecture of an enterprise Electronic Health Record (EHR) platform that achieved SOC-2 Type II and HIPAA Security Rule compliance using column-level AES-256 GCM envelope encryption, automated AWS KMS key rotation, and HL7 FHIR R4 REST APIs.

Protecting ePHI in a Multi-Tenant Cloud Architecture

A healthcare SaaS provider needed to scale their clinical documentation platform across hundreds of hospital networks. Standard disk-level database encryption (TDE) was insufficient because database administrators could theoretically inspect plaintext patient records. The platform required client-side column-level envelope encryption where data keys are managed independently per healthcare tenant.

Zero-Trust Security Architecture Highlights

Security Pattern #1

Multi-tenant PostgreSQL database with AES-256 GCM column-level ePHI encryption

Security Pattern #2

AWS KMS envelope encryption with automatic 90-day cryptographic key rotation

Security Pattern #3

OpenTelemetry distributed request tracing with automated ePHI parameter redacting collectors

Security Pattern #4

FHIR R4 standardized interoperability REST endpoints with OAuth2 / SMART on FHIR tokens

AES-256 GCM Column Envelope Encryption Implementation

Patient identifiers (SSN, MRN, clinical notes) are encrypted application-side using tenant-specific Data Encryption Keys (DEKs) encrypted by AWS KMS Master Keys:

export async function encryptEphiField(
  plaintext: string,
  tenantKmsKeyId: string
): Promise<{ cipherText: string; encryptedDataKey: string; iv: string }> {
  // 1. Request a one-time Data Encryption Key (DEK) from AWS KMS
  const kmsClient = new KMSClient({ region: 'us-east-1' });
  const dataKeyCommand = new GenerateDataKeyCommand({
    KeyId: tenantKmsKeyId,
    KeySpec: 'AES_256',
  });
  const { Plaintext: rawDek, CiphertextBlob: encryptedDek } = await kmsClient.send(dataKeyCommand);

  // 2. Encrypt the sensitive payload using AES-256 GCM
  const iv = crypto.randomBytes(12);
  const cipher = crypto.createCipheriv('aes-256-gcm', rawDek!, iv);
  const encryptedPayload = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()]);
  const authTag = cipher.getAuthTag();

  return {
    cipherText: Buffer.concat([encryptedPayload, authTag]).toString('base64'),
    encryptedDataKey: Buffer.from(encryptedDek!).toString('base64'),
    iv: iv.toString('base64'),
  };
}

HL7 FHIR R4 Interoperability Endpoints

To fulfill 21st Century Cures Act information blocking rules, all clinical data is accessible via authenticated SMART on FHIR OAuth2 endpoints returning standard Patient and Encounter JSON resources.

SOC-2 Type II & HIPAA Compliance Outcome

Unqualified Clean SOC-2 Type II Audit Report

Achieved SOC-2 Type II and HIPAA Security Rule compliance with zero external non-conformities. The independent third-party audit confirmed zero security exceptions across 12 consecutive months of continuous operation.

Try This with AI: Prisma Column Encryption Middleware

Copy this prompt into your AI coding assistant to implement transparent database encryption.

Write a Prisma client middleware in TypeScript that intercepts all database read/write queries, automatically encrypts any model fields tagged with '@ephi' using AWS KMS envelope encryption on writes, and transparently decrypts them on reads.

Community Discussion & Feedback

Attributed peer feedback and official Netspective architecture notes.

Was this documentation helpful?(100% found this helpful • 0 ratings)

Leave Feedback or Question

○ Loading user info...
0/2000 chars

Discussion (0)

Loading discussion thread...