pg_vault_tde

Transparent Data Encryption (TDE) for PostgreSQL 17+.

pg_vault_tde is a PostgreSQL extension that transparently encrypts table data at rest, with zero modifications to PostgreSQL core. It plugs in as a Table Access Method (encrypted_heap) and an Index Access Method (tde_btree): every tuple is encrypted with AES-256-GCM before it reaches the storage manager, and decrypted after it leaves — application queries never change.

Encryption keys are managed by HashiCorp Vault / OpenBao, a local PKCS#12 wallet, or a PKCS#11 hardware security module (HSM), and are cached in shared memory with support for online rotation.

This wiki is the operational reference for DBAs and DevOps/platform engineers who install, configure, and run pg_vault_tde in production. It does not cover the C internals of the extension itself (see doc/pg_vault_tde.md in the source repository if you need to modify the extension’s code).


At a Glance

Current release v1.7
PostgreSQL 17 ✅ Supported
PostgreSQL 18 ✅ Supported
PostgreSQL 19 🔜 Planned
Tuple encryption AES-256-GCM
Index key encryption AES-256-SIV (equality-only)
Key backends HashiCorp Vault / OpenBao, local PKCS#12 wallet, PKCS#11 / HSM
License BSD (PostgreSQL License)

Where Do I Start?


Documentation Map

Setup

  • Installation — package/source install, shared_preload_libraries, CREATE EXTENSION
  • Getting Started — your first encrypted table, end to end

Key Management

Using Encryption

Operations

Reference


License & Copyright

BSD License (PostgreSQL License). Compatible with MIT, BSD, ISC, and Apache 2.0; not derived from any GPL/AGPL-licensed code.

Copyright © 2026 Miriade S.r.l.