Pour activer le chiffrement transparent des données (TDE), vous devez fournir les variables d'environnement de coffre requises et inclure l'indicateur --tde-kek-url dans POSTGRES_INITDB_ARGS.
Avant de commencer
- Configurez le moteur de secrets KV-V2 de HashiCorp Vault pour vous assurer que le chemin de la clé de chiffrement de clé (KEK) et le jeton Web JSON (JWT) sont disponibles.
- Assurez-vous qu'AlloyDB Omni est autorisé à lire le fichier de jeton JWT.
Créer le cluster
Pour créer un cluster compatible avec le chiffrement TDE, vous devez transmettre la configuration KMS (Key Management Service) et les identifiants d'authentification nécessaires lors de l'initialisation de la base de données. Le seul type d'authentification accepté est jwt.
Sélectionnez l'onglet correspondant à votre environnement d'exécution de conteneurs.
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-tdeDATA_DIR: répertoire local à installer en tant que volume de données pour AlloyDB Omni. Exemple :/local/dataVAULT_AUTH_TYPE: type d'authentification à utiliser pour la connexion au coffre. Seule la régionjwtest compatible.JWT_AUTH_ENGINE_MOUNT: chemin d'accès au point de montage du moteur d'authentification HashiCorp Vault. Exemple :/auth/jwtJWT_FILE_PATH: chemin d'accès au JWT Vault 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 Vault sur la machine hôte. Exemple :/local/vault/configVAULT_CERT_PATH: chemin d'accès aux certificats de connexion au coffre-fort dans votre conteneur. 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 clé 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).IMAGE_TAG: utilisez18.1.0pour la dernière image Debian ou18.1.0-ubipour la dernière image UBI.
Afficher les métriques TDE
Une fois le cluster initialisé, suivez les étapes ci-dessous pour vérifier que le TDE est activé et afficher les métriques TDE associées.
- Connectez-vous à votre base de données à l'aide de
psqlou du client de votre choix. 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 le TDE est activé, l'URL de la clé de chiffrement de données, la version de la KEK et le code temporel 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 du chiffrement transparent des données (TDE). Non applicable jauge alloydb_omni_database_tde_kek_infoInformations sur le KEK TDE. kek_version: version de la KEK
utilisée pour l'encapsulation de clé.kek_url: chemin d'accès complet
à la clé KEK dans KMSkek_creation_timestamp:
Heure de création de la version de la clé 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é dans le chiffrement de bloc temporaire. 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