Chiffrement transparent des données pour AlloyDB Omni

Sélectionnez une version de la documentation :

Pour protéger les informations sensibles et répondre à des exigences de conformité strictes sans modifier le code de votre application, utilisez le chiffrement transparent des données (TDE) afin de sécuriser les données au repos dans AlloyDB Omni. Cette présentation explique comment le TDE chiffre automatiquement les fichiers de base de données, les journaux et les caches avant leur écriture sur le disque, ce qui garantit une sécurité en profondeur avec une surcharge opérationnelle minimale.

Hiérarchie des clés

AlloyDB Omni implémente une hiérarchie de clés à deux niveaux qui maintient une séparation stricte des tâches entre la base de données et l'infrastructure de sécurité gérée par l'utilisateur.

  • Clés de chiffrement de données (DEK) : clés générées et détenues par AlloyDB Omni. Ces clés chiffrent les fichiers de données réels, les WAL, et les fichiers temporaires. AlloyDB Omni stocke les DEK sur le disque, mais les encapsule avec votre KEK.
  • Clé de chiffrement de clé (KEK) : clé principale que vous gérez dans un service de gestion des clés (KMS) externe. AlloyDB Omni utilise votre KEK pour chiffrer les DEK. AlloyDB Omni n'accède à cette clé qu'au démarrage pour déchiffrer les DEK. Votre KEK n'est jamais stockée de manière persistante sur le disque de la base de données.
    • L'emplacement et les paramètres d'accès de la KEK sont définis dans la TdeConfig ressource personnalisée.

Fonctionnement du TDE avec AlloyDB Omni

Lorsque le TDE est activé, AlloyDB Omni sécurise vos données à l'aide d'un modèle de chiffrement en couches qui s'intègre à un KMS externe.

  • Initialisation et récupération des clés : lors de la phase de démarrage ou d'initialisation du cluster, le moteur AlloyDB Omni établit une connexion sécurisée à votre KMS. Il s'authentifie à l'aide d'un jeton Web JSON (JWT) pour HashiCorp Vault ou d'un nom d'utilisateur et d'un mot de passe pour Thales CipherTrust Manager, puis récupère la KEK.
  • Déchiffrement des DEK : AlloyDB Omni utilise votre KEK pour déchiffrer les DEK, qui sont stockées sur le stockage local dans un état chiffré. Ces DEK sont ensuite chargées en mémoire.
  • Opérations de données transparentes :
    • Écriture sur le disque : lorsque la base de données écrit des blocs de données, des enregistrements WAL ou des fichiers temporaires sur le disque physique, elle chiffre automatiquement les données à l'aide d'algorithmes AES-256 avant de les écrire.
    • Lecture à partir du disque : lorsque la base de données doit lire des données en mémoire, elle déchiffre automatiquement les blocs à l'aide des DEK stockées en mémoire.
    • Chiffrement du cache : le TDE est également compatible avec le cache du disque, y compris les informations du moteur de données en colonnes stockées dans le cache. Les données écrites dans la couche de stockage du cache froid sont chiffrées, et les données transférées dans le cache SSD du moteur de données en colonnes sont chiffrées avant d'être écrites sur le SSD et déchiffrées lors de la lecture.
  • Optimisations des performances : le TDE inclut des optimisations permettant de maintenir des performances élevées tout en sécurisant les données. Il utilise une protection AES-256-XTS optimisée pour les blocs de données et les caches, et propose des optimisations d'écriture synchrone pour minimiser la latence sur les chemins rapides.

  • Limites de sécurité : votre KEK n'est jamais stockée sur le disque de la base de données locale, ce qui garantit que même si le support de stockage physique est compromis, les données restent illisibles sans accès autorisé au KMS externe.

Champ d'application et spécifications du chiffrement

AlloyDB Omni utilise des algorithmes AES-256 standards pour sécuriser vos données.

  • Fichiers de données (tables et index) : AES-256-XTS.
  • Journaux WAL (Write-Ahead Logs) : AES-256-CTR.
  • Fichiers temporaires : AES-256-XTS ou AES-256-CTR selon le type de données temporaires.
  • Fichiers de cache du moteur de données en colonnes : AES-256-XTS.
  • Fichiers de cache froid : AES-256-XTS.
  • Encapsulation de clés : AES-256-KWP.

Sauvegarde et haute disponibilité

Lorsque le TDE est activé, les sauvegardes créées à l'aide de pgBackRest héritent de la configuration de chiffrement du cluster source. Cela garantit que vos données de sauvegarde restent protégées avec le même niveau de sécurité que votre base de données principale.

Vous ne pouvez restaurer les sauvegardes que si la ressource `TdeConfig` utilisée au moment de la sauvegarde est disponible dans le même espace de noms que le cluster cible.

Pour les configurations de haute disponibilité, la TdeConfig doit être présente dans le même espace de noms que la DBCluster ressource.

KMS et authentification compatibles

AlloyDB Omni est compatible avec les fournisseurs de KMS externes et les méthodes d'authentification suivants :

  • **HashiCorp Vault** : compatible avec le moteur de secrets KV-V2 avec authentification par jeton Web JSON (jwt) .
  • Thales CipherTrust Manager: Compatible avec la gestion des secrets avec authentification par nom d'utilisateur et mot de passe (password) .

Compatibilité avec les outils PostgreSQL

Les clusters pour lesquels le TDE est activé sont compatibles avec tous les outils PostgreSQL intégrés via la ressource TdeConfig.

Limites

  • Vous ne pouvez pas activer le TDE sur des clusters existants.
  • Une fois le TDE activé, vous ne pouvez plus le désactiver.
  • Les mises à niveau de version majeure ne sont pas compatibles avec les clusters pour lesquels le TDE est activé.
  • Vous ne pouvez pas restaurer des sauvegardes chiffrées sur des serveurs non chiffrés ni des sauvegardes non chiffrées sur des serveurs chiffrés.
  • La rotation des DEK n'est pas compatible.
  • La rotation des KEK est compatible tant que le chemin de l'URL de la KEK reste le même.
  • Vous ne pouvez pas utiliser CREATE DATABASE avec la stratégie FILE_COPY.
  • Sur les clusters pour lesquels le TDE est activé, les sauvegardes Barman ne sont compatibles qu'avec le mode rsync. La méthode de sauvegarde postgres n'est pas compatible.

Étape suivante