Comment crypter une base de données au repos dans PostgreSQL sur Ubuntu 22.04

Comment crypter une base de données au repos dans PostgreSQL sur Ubuntu 22.04

Introduction

La sécurité des données est un aspect crucial de la gestion de base de données. Pour protéger les données sensibles contre les accès non autorisés, le cryptage au repos est une mesure essentielle. PostgreSQL, un système de gestion de base de données open source réputé, offre des fonctionnalités robustes de cryptage pour garantir la confidentialité des données stockées sur le disque.

Ce tutoriel vous guidera pas à pas pour crypter une base de données PostgreSQL au repos sur un serveur Ubuntu 22.04. Nous couvrirons la configuration du cryptage, la création d’une nouvelle base de données cryptée et la gestion des clés de cryptage.

Prérequis

* Un serveur Ubuntu 22.04 avec PostgreSQL installé
* Privilèges d’utilisateur root ou accès sudo
* Un éditeur de texte (comme nano ou vim)

H2. Configuration du cryptage

H3. Création d’un répertoire de clés

Tout d’abord, créons un répertoire pour stocker les clés de cryptage :

bash
sudo mkdir /etc/postgresql/keys
sudo chown postgres:postgres /etc/postgresql/keys

H4. Génération d’une clé de cryptage

Nous allons maintenant générer une clé de cryptage à l’aide de la commande :

bash
openssl enc -aes-256-cbc -in /dev/null -out /etc/postgresql/keys/encryption.key -pass pass:strong-password

Assurez-vous de remplacer « strong-password » par un mot de passe fort.

H5. Modification du fichier de configuration de PostgreSQL

Ouvrez le fichier de configuration de PostgreSQL :

bash
sudo nano /etc/postgresql/14/main/postgresql.conf

Ajoutez les lignes suivantes dans la section [pg_hba.conf] :

Enable encryption for all connections

host all all all md5 encryption

Enregistrez et quittez le fichier.

H2. Création d’une base de données cryptée

H3. Création de la base de données

Connectez-vous à PostgreSQL en tant qu’utilisateur postgres :

bash
sudo su postgres
psql

Créez une nouvelle base de données cryptée avec la commande :


CREATE DATABASE encrypted_database ENCRYPTION = 'pgcrypto' WAL;

H4. Activation du cryptage pour les tables

Par défaut, les tables ne sont pas cryptées. Pour activer le cryptage pour une table spécifique, utilisez la commande :


ALTER TABLE table_name ENCRYPTED WITH (ALGORITHM = 'aes-256-cbc', CIPHERTEXT = 'pgcrypto')

H2. Gestion des clés de cryptage

H3. Affichage des clés

Pour afficher la clé de cryptage actuelle, utilisez la commande :


psql -d encrypted_database -c "SHOW ENCRYPTION KEY"

H4. Modification de la clé de cryptage

Si nécessaire, vous pouvez modifier la clé de cryptage avec la commande :


ALTER DATABASE encrypted_database SET ENCRYPTION KEY = 'new_encryption_key';

Conclusion

Le cryptage des bases de données au repos dans PostgreSQL est un moyen efficace de protéger les données sensibles contre les accès non autorisés. En suivant les étapes décrites dans ce tutoriel, vous pouvez configurer le cryptage pour vos bases de données PostgreSQL et garantir la sécurité de vos données.

N’oubliez pas que le choix de l’algorithme de cryptage et la gestion des clés sont des aspects critiques pour la sécurité des données. Assurez-vous d’utiliser des algorithmes de cryptage solides et de suivre les meilleures pratiques de gestion des clés.

FAQ

Q1. Quel est l’avantage du cryptage au repos pour les bases de données ?

R. Le cryptage au repos protège les données stockées sur le disque contre l’accès non autorisé, même en cas de vol ou de compromission du serveur.

Q2. Quels algorithmes de cryptage sont pris en charge par PostgreSQL ?

R. PostgreSQL prend en charge les algorithmes de cryptage suivants : aes-256-cbc, aes-192-cbc, aes-128-cbc, tripledes-cbc, des-ede3-cbc.

Q3. Comment puis-je crypter les données existantes dans une base de données ?

R. Vous pouvez utiliser la commande ALTER TABLE pour activer le cryptage pour les tables existantes.

Q4. Comment puis-je vérifier si une base de données est cryptée ?

R. Utilisez la commande SHOW ENCRYPTION KEY pour vérifier l’état de cryptage d’une base de données.

Q5. Qu’arrive-t-il aux données si je perds la clé de cryptage ?

R. Les données cryptées seront inaccessibles si la clé de cryptage est perdue. Il est donc crucial de sauvegarder la clé en toute sécurité.

Q6. Existe-t-il des outils tiers pour gérer le cryptage des bases de données PostgreSQL ?

R. Oui, des outils tiers tels que pgcrypto_helper peuvent simplifier la gestion du cryptage des bases de données PostgreSQL.

Q7. Quelles sont les considérations de performances lors du cryptage des bases de données ?

R. Le cryptage peut avoir un impact sur les performances des requêtes. Il est important de tester et d’évaluer l’impact sur votre charge de travail particulière.

Q8. Comment puis-je automatiser le cryptage des nouvelles bases de données ?

R. Vous pouvez utiliser des scripts ou des outils de configuration pour automatiser la création de nouvelles bases de données avec cryptage activé.