Use PostgreSQL security features—encryption, row-level security, auditing, and backups—to run ParadeDB in a HIPAA-compliant manner.
ParadeDB is a PostgreSQL extension, so every HIPAA safeguard you apply to the core database—encryption, access controls, auditing, and backups—also covers vector indexes. No extra binaries or processes are introduced, simplifying compliance audits.
Encrypt PHI at the column and storage levels. Use pgcrypto
for field-level encryption and put sensitive tables in an encrypted tablespace. Keep keys outside PostgreSQL to satisfy HIPAA key-management rules.
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE TABLESPACE hipaa_encrypted LOCATION '/data/hipaa' WITH (encrypted=true);
CREATE TABLE Customers (
id serial PRIMARY KEY,
name text,
email bytea, -- encrypted
created_at timestamptz DEFAULT now()
) TABLESPACE hipaa_encrypted;
RLS prevents a user from accessing another patient’s data. Tie each row to a customer_id and activate policies that reference a session variable.
ALTER TABLE Customers ENABLE ROW LEVEL SECURITY;
CREATE POLICY customer_isolation ON Customers
USING (id = current_setting('app.customer_id')::int);
Create an audit table and trigger to log SELECT, INSERT, UPDATE, and DELETE on PHI tables. Log the user, timestamp, action, and row identifier. Forward logs to an immutable store for 6 years, meeting HIPAA §164.316(b)(2).
CREATE TABLE audit_log (
id bigserial PRIMARY KEY,
user_name text,
action text,
table_name text,
row_id bigint,
audit_time timestamptz DEFAULT now()
);
Use pg_basebackup
or pg_dump
on an encrypted channel (TLS 1.2+). Store the backup in a versioned, access-controlled bucket with server-side encryption (SSE-S3 or SSE-KMS). Test restores quarterly.
Rotate keys yearly, patch PostgreSQL promptly, restrict superuser access, use SSL for clients, and monitor vectors for sensitive content to avoid embedding PHI in plaintext.
No. HIPAA certifies processes, not software. ParadeDB inherits PostgreSQL’s controls, but compliance depends on your configuration and administrative safeguards.
Yes, if you encrypt the vector column or the tablespace and apply the same access controls as other PHI columns.
RLS adds a minor planner overhead. Index-based vector queries remain fast; benchmark critical paths to size hardware appropriately.