Avant de commencer
- Consultez Planifier l'installation d'AlloyDB Omni.
Configurez le moteur de secrets KV-V2 de HashiCorp Vault pour vous assurer que le chemin d'accès à la clé de chiffrement de clé (KEK) et le jeton Web JSON (JWT) sont disponibles.
Vérifiez qu'AlloyDB Omni est autorisé à lire le fichier de jeton JWT.
Créer le cluster
Pour créer un cluster compatible avec TDE, vous devez transmettre la configuration et les identifiants d'authentification nécessaires à Key Management Service (KMS) lors de l'initialisation de la base de données. Le seul type d'authentification compatible est jwt.
Installez AlloyDB Omni à l'aide de RPM pour préparer votre environnement et installer le package RPM AlloyDB Omni.
Initialisez la base de données.
KMS HashiCorp Vault
Utilisez cette approche pour les charges de travail de production.
Exécutez la commande suivante pour initialiser la base de données avec TDE activé :
sudo PGPASSWORD=POSTGRES_PASSWORD \ PGDATA=DATA_DIR \ VAULT_AUTH_TYPE=jwt \ VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ VAULT_JWT_PATH=JWT_FILE_PATH \ VAULT_ROLE=VAULT_ROLE \ VAULT_CERT_PATH=VAULT_CERT_PATH \ POSTGRES_INITDB_ARGS="--tde-kek-url=KEK_URL" \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
Remplacez les éléments suivants :
POSTGRES_PASSWORD: mot de passe de l'utilisateur de la base de données.DATA_DIR: répertoire local à monter en tant que volume de données pour AlloyDB Omni (par exemple,/local/data).VAULT_AUTH_TYPE: type d'authentification à utiliser pour la connexion au coffre-fort. Seuljwtest compatible.JWT_AUTH_ENGINE_MOUNT: chemin d'accès où le moteur d'authentification HashiCorp Vault est monté (par exemple,/auth/jwt).JWT_FILE_PATH: chemin d'accès où le JWT du coffre-fort est stocké sur vos nœuds (par 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: chemin d'accès où se trouvent les certificats de la connexion au coffre-fort dans votre conteneur (par exemple,/tde-tls). Si aucune valeur n'est définie, les certificats du magasin de confiance par défaut sont utilisés.KEK_URL: URL complète de la KEK dans HashiCorp Vault. Utilisezvaultcomme protocole pour spécifier HashiCorp Vault comme fournisseur KMS (par exemple,vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek).
Pour créer un fichier de remplacement pour
alloydbomni.service in /etc/systemd/system/alloydbomni18.service.d/override.conf, ajoutez les éléments suivants au fichieroverride.conf:[Service] Environment="VAULT_AUTH_TYPE" Environment="VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT" Environment="VAULT_JWT_PATH=JWT_FILE_PATH" Environment="VAULT_ROLE=VAULT_ROLE" Environment="VAULT_CERT_PATH=VAULT_CERT_PATH"
Pour appliquer les modifications, rechargez le daemon systemd.
sudo systemctl daemon-reload
KMS basé sur un fichier
Utilisez cette approche uniquement à des fins de test.
Pour tester TDE localement à l'aide d'une clé basée sur un fichier, vous devez d'abord générer une KEK de 32 octets sur votre ordinateur.
Créez le répertoire, générez la clé et définissez les autorisations appropriées.
KEK_DIR=KEK_DIR mkdir -p $KEK_DIR sudo chown 999:999 $KEK_DIR openssl rand -base64 32 | sudo tee $KEK_DIR/key sudo chmod 0755 $KEK_DIR/key
Initialisez la base de données en transmettant l'URI du fichier local en tant qu'URL de votre KEK.
sudo PGPASSWORD=POSTGRES_PASSWORD \ PGDATA=DATA_DIR \ POSTGRES_INITDB_ARGS="--tde-kek-url=file:///$KEK_DIR/key" \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
Remplacez les éléments suivants :
POSTGRES_PASSWORD: mot de passe de l'utilisateur de la base de données.DATA_DIR: répertoire local à monter en tant que volume de données pour AlloyDB Omni (par exemple,/local/data).KEK_DIR: répertoire dans lequel la KEK locale basée sur un fichier est stockée (par exemple,/tmp/alloydb/kms).
Une fois la base de données initialisée, suivez les instructions de la section Installer AlloyDB Omni à l'aide de RPM pour préparer la base de données, configurer l'hôte et démarrer le service
systemd.
Afficher les métriques TDE
Une fois le cluster initialisé, procédez comme suit pour vérifier que TDE est activé et afficher les métriques TDE associées.
- Connectez-vous à votre base de données à l'aide de
psqlou 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. Exécutez la commande suivante :
select * FROM pgsnap.g$tde_stats;Le résultat affiche les métriques TDE, par exemple si TDE 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_totalNombre de blocs de données déchiffrés. Non applicable compteur alloydb_omni_database_tde_data_blocks_encrypted_count_totalNombre de blocs de données chiffrés. Non applicable compteur alloydb_omni_database_tde_data_decryption_time_us_totalTemps total passé à déchiffrer les blocs de données. Non applicable microsecondes compteur alloydb_omni_database_tde_data_encryption_time_us_totalTemps total passé à chiffrer les blocs de données. Non applicable microsecondes compteur alloydb_omni_database_tde_enabledÉtat d'activation de TDE. Non applicable jauge alloydb_omni_database_tde_kek_infoInformations sur la KEK TDE. kek_version: version de la KEK
utilisée pour l'encapsulation de clé.kek_url: chemin d'accès complet
à la KEK dans KMSkek_creation_timestamp:
heure de création de la version de la KEK utilisée.
jauge alloydb_omni_database_tde_temp_blocks_decrypted_count_totalNombre de blocs temporaires déchiffrés. Non applicable compteur alloydb_omni_database_tde_temp_blocks_encrypted_count_totalNombre de blocs temporaires chiffrés. Non applicable compteur alloydb_omni_database_tde_temp_decryption_time_us_totalTemps total passé à déchiffrer les blocs temporaires. Non applicable microsecondes compteur alloydb_omni_database_tde_temp_encryption_time_us_totalTemps total passé à chiffrer les blocs temporaires. Non applicable microsecondes compteur alloydb_omni_database_tde_wal_blocks_decrypted_count_totalNombre de blocs WAL déchiffrés. Non applicable compteur alloydb_omni_database_tde_wal_blocks_encrypted_count_totalNombre de blocs WAL chiffrés. Non applicable compteur alloydb_omni_database_tde_wal_decryption_time_us_totalTemps total passé à déchiffrer les blocs WAL. Non applicable microsecondes compteur alloydb_omni_database_tde_wal_encryption_time_us_totalTemps total passé à chiffrer les blocs WAL. Non applicable microsecondes compteur