Vous pouvez sécuriser vos données au repos et protéger les informations sensibles en activant le chiffrement transparent des données (TDE) dans AlloyDB Omni. Ce document explique comment créer un cluster compatible avec le chiffrement TDE en fournissant les variables d'environnement de coffre requises et l'indicateur --tde-kek-url dans la variable d'environnement POSTGRES_INITDB_ARGS lors de l'initialisation de la base de données.
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.
- Vérifiez qu'AlloyDB Omni est autorisé à lire le fichier de jeton Web JSON (JWT), qui est le jeton d'authentification.
Créer le cluster
Pour créer un cluster compatible avec le chiffrement TDE, 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 accepté 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-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 où le moteur d'authentification HashiCorp Vault est installé. 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 du coffre-fort sur la machine hôte. Exemple :/local/vault/configVAULT_CERT_PATH: chemin d'accès aux certificats de la connexion au coffre-fort dans votre conteneur. Exemple :/tde-tls. Si ce paramètre n'est pas défini, 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.3.0pour la dernière image Debian ou18.3.0-ubipour la dernière image UBI.
Pour activer le TDE pour les données du cache du moteur de données en colonnes transférées vers le stockage SSD, connectez-vous à votre instance de base de données et exécutez la requête suivante :
ALTER SYSTEM SET google_columnar_engine.enable_tde_for_storage_cache = 'on';
Redémarrez votre serveur de base de données pour que les modifications prennent effet.
Documentation de référence sur les métriques TDE
Vous pouvez afficher toutes les métriques TDE dans l'agent de surveillance d'AlloyDB Omni. Le tableau suivant décrit 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 les blocs de données. | Non applicable | microsecondes | compteur |
alloydb_omni_database_tde_data_encryption_time_us_total |
Temps total passé à chiffrer les blocs de données. | Non applicable | microsecondes | compteur |
alloydb_omni_database_tde_enabled |
État de l'activation du TDE. | Non applicable | jauge | |
alloydb_omni_database_tde_kek_info |
Informations sur la clé KEK TDE. |
|
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 les blocs temporaires. | Non applicable | microsecondes | compteur |
alloydb_omni_database_tde_temp_encryption_time_us_total |
Durée totale passée dans le chiffrement de bloc temporaire. | 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 les blocs WAL. | Non applicable | microsecondes | compteur |
alloydb_omni_database_tde_wal_encryption_time_us_total |
Durée totale passée dans le chiffrement des blocs WAL. | Non applicable | microsecondes | compteur |
tde_chill_cache_blocks_encrypted |
Nombre de blocs de cache froid chiffrés. | Non applicable | compteur | |
tde_chill_cache_blocks_decrypted |
Nombre de blocs de cache de refroidissement déchiffrés. | Non applicable | compteur | |
tde_chill_cache_blocks_total_encryption_time_us |
Temps total passé dans le chiffrement des blocs du cache Chill. | Non applicable | microsecondes | compteur |
tde_chill_cache_blocks_total_decryption_time_us |
Temps total passé à déchiffrer le bloc du cache Chill. | Non applicable | microsecondes | compteur |
tde_ce_cache_ssd_blocks_encrypted |
Nombre de blocs de cache en colonnes chiffrés qui ont été transférés vers le stockage SSD. | Non applicable | compteur | |
tde_ce_cache_ssd_blocks_decrypted |
Nombre de blocs de cache en colonnes déchiffrés et transférés vers le stockage SSD. | Non applicable | compteur | |
tde_ce_cache_ssd_blocks_total_encryption_time_us |
Temps total passé à chiffrer les blocs de cache en colonnes déversés sur le stockage SSD. | Non applicable | microsecondes | compteur |
tde_ce_cache_ssd_blocks_total_decryption_time_us |
Temps total passé à déchiffrer les blocs de cache en colonnes déversés sur le stockage SSD. | Non applicable | microsecondes | compteur |