Créer un cluster compatible avec le chiffrement TDE

Sélectionnez une version de la documentation :

Pour activer le chiffrement transparent des données (TDE), vous devez fournir les variables d'environnement de coffre-fort requises et inclure l'indicateur --tde-kek-url dans POSTGRES_INITDB_ARGS.

Avant de commencer

Créer le cluster

Pour créer un cluster compatible avec le chiffrement transparent des données, vous devez transmettre la configuration Key Management Service (KMS) et les identifiants d'authentification nécessaires lors de l'initialisation de la base de données. Le seul type d'authentification compatible est jwt.

Sélectionnez l'onglet correspondant à votre environnement d'exécution de conteneur.

Docker

docker run -d --name CONTAINER_NAME \
--network host \
-v DATA_DIR:/var/lib/postgresql/data \
-v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \
-e VAULT_AUTH_TYPE=jwt \
-e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
-e VAULT_JWT_PATH=JWT_FILE_PATH \
-e VAULT_ROLE=VAULT_ROLE \
-e VAULT_CERT_PATH=VAULT_CERT_PATH \
-e POSTGRES_INITDB_ARGS=" \
--tde-kek-url=KEK_URL" \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
--network host \
-v DATA_DIR:/var/lib/postgresql/data \
-v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \
-e VAULT_AUTH_TYPE=jwt \
-e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
-e VAULT_JWT_PATH=JWT_FILE_PATH \
-e VAULT_ROLE=VAULT_ROLE \
-e VAULT_CERT_PATH=VAULT_CERT_PATH \
-e POSTGRES_INITDB_ARGS=" \
--tde-kek-url=KEK_URL" \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
--network host \
-v DATA_DIR:/var/lib/postgresql/data \
-v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \
-e VAULT_AUTH_TYPE=jwt \
-e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
-e VAULT_JWT_PATH=JWT_FILE_PATH \
-e VAULT_ROLE=VAULT_ROLE \
-e VAULT_CERT_PATH=VAULT_CERT_PATH \
-e POSTGRES_INITDB_ARGS=" \
--tde-kek-url=KEK_URL" \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
--network host \
-v DATA_DIR:/var/lib/postgresql/data \
-v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \
-e VAULT_AUTH_TYPE=jwt \
-e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
-e VAULT_JWT_PATH=JWT_FILE_PATH \
-e VAULT_ROLE=VAULT_ROLE \
-e VAULT_CERT_PATH=VAULT_CERT_PATH \
-e POSTGRES_INITDB_ARGS=" \
--tde-kek-url=KEK_URL" \
google/alloydbomni:IMAGE_TAG

Remplacez les éléments suivants :

  • CONTAINER_NAME : nom du conteneur à créer. Exemple : alloydb-tde.
  • DATA_DIR: répertoire local à monter en tant que volume de données pour AlloyDB Omni. Exemple : /local/data.
  • VAULT_AUTH_TYPE: type d'authentification à utiliser pour la connexion au coffre-fort. Seul jwt est compatible.
  • JWT_AUTH_ENGINE_MOUNT: chemin d'accès où le moteur d'authentification HashiCorp Vault est monté. Exemple : /auth/jwt.
  • JWT_FILE_PATH: chemin d'accès où le JWT du coffre-fort est stocké sur vos nœuds. Exemple : tde-tls/jwt-token.
  • (Facultatif) VAULT_ROLE : rôle client défini dans la configuration de votre coffre-fort qui permet à HashiCorp Vault de vérifier l'authenticité du jeton JWT.
  • VAULT_CERT_PATH_ON_DISK: chemin d'accès aux certificats du coffre-fort sur la machine hôte. Exemple : /local/vault/config.
  • VAULT_CERT_PATH: chemin d'accès où se trouvent les certificats pour la connexion au coffre-fort dans votre conteneur. Exemple : /tde-tls. Si aucune valeur n'est définie, les certificats du trust store par défaut sont utilisés.
  • KEK_URL : URL complète de la KEK dans HashiCorp Vault. Utilisez vault comme protocole pour spécifier HashiCorp Vault comme fournisseur KMS. Exemple : vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.
  • IMAGE_TAG : utilisez 18.1.0 pour la dernière image Debian ou 18.1.0-ubi pour la dernière image UBI.

Afficher les métriques TDE

Une fois le cluster initialisé, procédez comme suit pour vérifier que le chiffrement transparent des données est activé et afficher les métriques TDE associées.

  1. Connectez-vous à votre base de données à l'aide de psql ou de votre client préféré. Pour obtenir des instructions détaillées sur la connexion à vos instances, consultez Exécuter AlloyDB Omni et s'y connecter.
  2. Exécutez la commande suivante :

    select * FROM pgsnap.g$tde_stats;
    

    Le résultat affiche les métriques TDE, par exemple si le chiffrement transparent des données est activé, l'URL de la KEK, la version de la KEK et l'horodatage de création de la KEK.

    Le tableau suivant explique la signification de chaque métrique.

    Nom Description Libellé Unité Type
    alloydb_omni_database_tde_data_blocks_decrypted_count_total Nombre de blocs de données déchiffrés. Non applicable compteur
    alloydb_omni_database_tde_data_blocks_encrypted_count_total Nombre de blocs de données chiffrés. Non applicable compteur
    alloydb_omni_database_tde_data_decryption_time_us_total Temps total passé à déchiffrer des blocs de données. Non applicable microsecondes compteur
    alloydb_omni_database_tde_data_encryption_time_us_total Temps total passé à chiffrer des blocs de données. Non applicable microsecondes compteur
    alloydb_omni_database_tde_enabled État activé du chiffrement transparent des données. Non applicable jauge
    alloydb_omni_database_tde_kek_info Informations sur la KEK du chiffrement transparent des données.
    • kek_version: version de la KEK
      utilisée pour l'encapsulation de clé.
    • kek_url: chemin d'accès complet
      à la KEK dans KMS
    • kek_creation_timestamp :
      heure de création de la version de la KEK utilisée.
    jauge
    alloydb_omni_database_tde_temp_blocks_decrypted_count_total Nombre de blocs temporaires déchiffrés. Non applicable compteur
    alloydb_omni_database_tde_temp_blocks_encrypted_count_total Nombre de blocs temporaires chiffrés. Non applicable compteur
    alloydb_omni_database_tde_temp_decryption_time_us_total Temps total passé à déchiffrer des blocs temporaires. Non applicable microsecondes compteur
    alloydb_omni_database_tde_temp_encryption_time_us_total Temps total passé à chiffrer des blocs temporaires. Non applicable microsecondes compteur
    alloydb_omni_database_tde_wal_blocks_decrypted_count_total Nombre de blocs WAL déchiffrés. Non applicable compteur
    alloydb_omni_database_tde_wal_blocks_encrypted_count_total Nombre de blocs WAL chiffrés. Non applicable compteur
    alloydb_omni_database_tde_wal_decryption_time_us_total Temps total passé à déchiffrer des blocs WAL. Non applicable microsecondes compteur
    alloydb_omni_database_tde_wal_encryption_time_us_total Temps total passé à chiffrer des blocs WAL. Non applicable microsecondes compteur