PostgreSQL 17 : sécuriser vos données avec TDE et mTLS

5 min de lecture
Rédigé par Laurent Glesner - Consultant PC SOFT chez EloNeva
comprendre-en-5mn PostgreSql sécurité Windev

En bref

  • Le TDE chiffre automatiquement les données stockées sur disque, sans changer vos applications.
  • Le mTLS impose un certificat client pour se connecter, ce qui réduit fortement les accès non autorisés.
  • Combinés avec une gestion stricte des secrets, vous obtenez une base prête pour des contextes sensibles.

Introduction

Quand une base de données contient des informations clients, financières ou stratégiques, la question n’est plus “si” mais “quand” un incident arrivera (erreur humaine, serveur volé, fuite de sauvegarde, accès non maîtrisé).

Le sujet concerne directement un décideur parce qu’une base mal protégée transforme un simple incident technique en crise : arrêt d’activité, atteinte à la réputation, perte de confiance, et parfois obligations légales.

Ici, l’objectif est simple : déployer PostgreSQL 17 dans une configuration “par défaut sécurisée”, avec chiffrement des données au repos (TDE) et connexions fortement contrôlées (mTLS), le tout industrialisé via Docker.

Comprendre en une image

Imaginez votre base de données comme un coffre dans une salle sécurisée :

  • Le TDE, c’est le coffre qui chiffre automatiquement tout ce qu’il contient : même si quelqu’un vole le coffre (disque, volume, sauvegarde), il ne peut pas lire le contenu.
  • Le mTLS, c’est le vigile à l’entrée qui n’accepte que les personnes avec un badge infalsifiable (certificat client), et pas seulement un mot de passe.

L’intérêt : vous réduisez le risque “catastrophique” (données lisibles après vol ou fuite) et le risque “opportuniste” (tentatives de connexion non autorisées).

Les 4 piliers de sécurité de cette architecture

1) TDE : chiffrement transparent des données (au repos)

Le Transparent Data Encryption (TDE) chiffre les données stockées sur disque, automatiquement et de manière continue.

Ce que cela change pour l’entreprise :

  • Vous protégez les données même si un disque, un volume Docker ou une sauvegarde est exfiltré.
  • Vous réduisez l’exposition lors d’erreurs courantes : copie d’un dossier de données, snapshot mal contrôlé, stockage de backup accessible.

Point de vigilance :

  • Le chiffrement repose sur une gestion de clés : si la clé est mal protégée, la protection perd sa valeur. La gouvernance de la clé (stockage, rotation, accès) est donc un vrai sujet.

2) mTLS : authentification forte par certificats (en plus du TLS)

Le TLS chiffre la communication. Le mTLS ajoute une règle : le client doit aussi prouver son identité par certificat.

Concrètement :

  • Certificat client obligatoire : pas de certificat, pas d’accès.
  • Correspondance certificat ↔ utilisateur PostgreSQL : le nom dans le certificat (CN) doit correspondre à un utilisateur autorisé.
  • Chiffrements modernes uniquement : on évite les configurations “compatibles” qui affaiblissent la sécurité.

Bénéfice métier :

  • Vous réduisez drastiquement les risques liés aux mots de passe (vol, réutilisation, phishing, partage entre équipes).

Point de vigilance :

  • Les certificats sont une logistique : génération, distribution, renouvellement, révocation en cas de compromission.

3) Secrets : éviter les “mots de passe qui traînent”

La configuration s’appuie sur des pratiques simples mais très efficaces :

  • Mots de passe générés aléatoirement (plutôt que choisis).
  • Isolation via Docker Secrets (plutôt que variables d’environnement partagées).
  • Hash modernes côté base (SCRAM-SHA-256).

Bénéfice métier :

  • Vous limitez les fuites “accidentelles” (fichiers, logs, copier-coller, dépôts Git).

4) Réseau : exposer le strict nécessaire, au bon endroit

L’exposition est pensée “contrôle d’accès” :

  • Passage par un proxy (Traefik).
  • Filtrage par liste d’IP autorisées.
  • Réseau Docker isolé et port maîtrisé.

Bénéfice métier :

  • Une surface d’attaque plus faible, donc moins de surprises.

Pourquoi c’est important pour votre entreprise

Les bénéfices concrets

  • Réduction du risque de fuite de données : vol de disque, fuite de backup, copie non autorisée.
  • Réduction du risque d’accès non autorisé : le certificat devient un “facteur” matériel/logiciel difficile à improviser.
  • Meilleure conformité et auditabilité : vous démontrez des contrôles de sécurité concrets (au repos + en transit).
  • Industrialisation : configuration reproductible, cohérente entre environnements.

Les limites à connaître

  • Complexité opérationnelle : certificats + clés demandent une discipline (inventaire, renouvellement, révocation).
  • Impact organisationnel : il faut clarifier “qui a accès à quoi” et formaliser les rôles (admin, application, sauvegarde).
  • Sécurité ≠ invincibilité : cela n’empêche pas une mauvaise requête, un compte trop permissif, ou une application vulnérable.

Cas d’usage concrets

1) Données sensibles (clients, RH, finance)

Vous cherchez à limiter l’impact d’un incident “infrastructure” (vol, exfiltration de stockage, fuite de sauvegarde). TDE + sauvegardes chiffrées renforcent nettement la posture.

2) Accès externes contrôlés (prestataires, multi-sites, télétravail)

Vous voulez éviter “un mot de passe partagé” ou une règle réseau trop large. Le mTLS permet de gérer l’accès par certificats nominaux : vous pouvez couper l’accès d’un acteur sans toucher aux autres.

3) Industrialisation Dev/Staging/Prod

Vous souhaitez que la sécurité ne dépende pas d’un “héros” qui configure à la main. Docker Compose + génération encadrée des certificats vous donnent un socle reproductible (à adapter pour la production).

Comment décider

Les bons critères de décision

  • Criticité des données : à partir du moment où une fuite serait un incident majeur, TDE et mTLS deviennent pertinents.
  • Exposition réseau : si la base est accessible au-delà d’un réseau interne strict, le mTLS est un très bon levier.
  • Capacité d’exploitation : avez-vous (en interne ou via un partenaire) la capacité de gérer le cycle de vie des certificats et des clés ?
  • Traçabilité attendue : audit, assurance, exigences clients, conformité.

Options simples (du plus “léger” au plus “robuste”)

  • TLS simple + mots de passe forts : mieux que rien, mais plus exposé aux erreurs et au vol d’identifiants.
  • mTLS + gestion stricte des rôles : gros gain sur les accès.
  • mTLS + TDE + sauvegardes chiffrées : posture complète sur les scénarios les plus fréquents (accès + vol/fuite).

Pièges à éviter

  • Mettre la clé de chiffrement au même endroit que les données.
  • Laisser des certificats “valables partout” sans inventaire ni date de renouvellement.
  • Créer des comptes PostgreSQL trop puissants “pour aller vite”.
  • Oublier que la sauvegarde est souvent le maillon faible (elle doit être chiffrée et contrôlée).

Conclusion

Sécuriser PostgreSQL ne se résume pas à “activer le SSL”. Dans une approche réaliste, il faut protéger ce qui circule (mTLS) et ce qui est stocké (TDE), tout en cadrant les secrets et l’exposition réseau.

Pour un dirigeant, l’enjeu est stratégique : réduire la probabilité d’un incident grave et surtout en réduire l’impact, avec une architecture reproductible et auditable.

Point d’action : identifiez vos trois risques principaux (accès non autorisé, fuite de sauvegarde, compromission d’hôte) et alignez votre choix (TLS/mTLS/TDE) sur ces risques plutôt que sur la “mode” technique.