Para habilitar la encriptación de datos transparente (TDE), debes proporcionar las variables de entorno de Vault requeridas y agregar la marca --tde-kek-url dentro de POSTGRES_INITDB_ARGS.
Antes de comenzar
- Configura el motor de secretos KV-V2 de HashiCorp Vault para asegurarte de que la ruta de la clave de encriptación de claves (KEK) y el token web JSON (JWT) estén disponibles.
- Asegúrate de que AlloyDB Omni tenga permiso para leer el archivo de token JWT.
Crea el clúster
Para crear un clúster habilitado para TDE, debes pasar la configuración necesaria del servicio de administración de claves (KMS) y las credenciales de autenticación durante la inicialización de la base de datos. El único tipo de autenticación admitido es jwt.
Selecciona la pestaña de tu entorno de ejecución de contenedor.
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
Reemplaza lo siguiente:
CONTAINER_NAME: Es el nombre del contenedor que se creará. Por ejemplo,alloydb-tde.DATA_DIR: Es el directorio local que se debe activar como el volumen de datos para AlloyDB Omni. Por ejemplo,/local/data.VAULT_AUTH_TYPE: Es el tipo de autenticación que se usará para la conexión de Vault. Solo se admitejwt.JWT_AUTH_ENGINE_MOUNT: Es la ruta de acceso en la que se activa el motor de autenticación de HashiCorp Vault. Por ejemplo,/auth/jwt.JWT_FILE_PATH: Es la ruta de acceso en la que se almacena el JWT de Vault en tus nodos. Por ejemplo,tde-tls/jwt-token.- (Opcional)
VAULT_ROLE: Es el rol de cliente definido en la configuración de Vault que permite que HashiCorp Vault verifique la autenticidad del token JWT. VAULT_CERT_PATH_ON_DISK: Es la ruta de acceso a los certificados de Vault en la máquina host. Por ejemplo,/local/vault/config.VAULT_CERT_PATH: Es la ruta de acceso en la que se encuentran los certificados para la conexión de Vault en tu contenedor. Por ejemplo,/tde-tls. Si no se configura, se usan los certificados en el almacén de confianza predeterminado.KEK_URL: Es la URL completamente calificada de la KEK en HashiCorp Vault. Usavaultcomo protocolo para especificar HashiCorp Vault como proveedor de KMS, por ejemplo,vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.IMAGE_TAG: Usa18.3.0para la imagen más reciente de Debian o18.3.0-ubipara la imagen más reciente de UBI.
Para habilitar TDE para los datos de caché del motor de columnas que se transfieren al almacenamiento SSD, conéctate a tu instancia de base de datos y ejecuta la siguiente consulta:
ALTER SYSTEM SET google_columnar_engine.enable_tde_for_storage_cache = 'on';
Reinicia el servidor de la base de datos para que se apliquen los cambios.
Referencias de métricas de TDE
Puedes ver todas las métricas de TDE en el agente de supervisión de AlloyDB Omni. En la siguiente tabla, se explica qué significa cada métrica.
| Nombre | Descripción | Etiqueta | Unidad | Tipo |
|---|---|---|---|---|
alloydb_omni_database_tde_data_blocks_decrypted_count_total |
Cantidad de bloques de datos desencriptados. | No aplicable | contador | |
alloydb_omni_database_tde_data_blocks_encrypted_count_total |
Cantidad de bloques de datos encriptados. | No aplicable | contador | |
alloydb_omni_database_tde_data_decryption_time_us_total |
Tiempo total dedicado a la desencriptación de bloques de datos. | No aplicable | microsegundos | contador |
alloydb_omni_database_tde_data_encryption_time_us_total |
Tiempo total dedicado a la encriptación de bloques de datos. | No aplicable | microsegundos | contador |
alloydb_omni_database_tde_enabled |
Estado habilitado de TDE. | No aplicable | indicador | |
alloydb_omni_database_tde_kek_info |
Información de KEK de TDE. |
|
indicador | |
alloydb_omni_database_tde_temp_blocks_decrypted_count_total |
Cantidad de bloques temporales desencriptados. | No aplicable | contador | |
alloydb_omni_database_tde_temp_blocks_encrypted_count_total |
Cantidad de bloques temporales encriptados. | No aplicable | contador | |
alloydb_omni_database_tde_temp_decryption_time_us_total |
Tiempo total dedicado a la desencriptación de bloques temporales. | No aplicable | microsegundos | contador |
alloydb_omni_database_tde_temp_encryption_time_us_total |
Tiempo total dedicado a la encriptación de bloques temporales. | No aplicable | microsegundos | contador |
alloydb_omni_database_tde_wal_blocks_decrypted_count_total |
Cantidad de bloques de WAL desencriptados. | No aplicable | contador | |
alloydb_omni_database_tde_wal_blocks_encrypted_count_total |
Cantidad de bloques de WAL encriptados. | No aplicable | contador | |
alloydb_omni_database_tde_wal_decryption_time_us_total |
Tiempo total dedicado a la desencriptación de bloques de WAL. | No aplicable | microsegundos | contador |
alloydb_omni_database_tde_wal_encryption_time_us_total |
Tiempo total dedicado a la encriptación de bloques de WAL. | No aplicable | microsegundos | contador |
tde_chill_cache_blocks_encrypted |
Cantidad de bloques de caché inactiva encriptados. | No aplicable | contador | |
tde_chill_cache_blocks_decrypted |
Cantidad de bloques de caché inactiva desencriptados. | No aplicable | contador | |
tde_chill_cache_blocks_total_encryption_time_us |
Tiempo total dedicado a la encriptación de bloques de caché inactiva. | No aplicable | microsegundos | contador |
tde_chill_cache_blocks_total_decryption_time_us |
Tiempo total dedicado a la desencriptación de bloques de caché inactiva. | No aplicable | microsegundos | contador |
tde_ce_cache_ssd_blocks_encrypted |
Cantidad de bloques de caché columnar transferidos al almacenamiento SSD que se encriptaron. | No aplicable | contador | |
tde_ce_cache_ssd_blocks_decrypted |
Cantidad de bloques de caché columnar transferidos al almacenamiento SSD que se desencriptaron. | No aplicable | contador | |
tde_ce_cache_ssd_blocks_total_encryption_time_us |
Tiempo total dedicado a la encriptación de bloques de caché columnar transferidos al almacenamiento SSD. | No aplicable | microsegundos | contador |
tde_ce_cache_ssd_blocks_total_decryption_time_us |
Tiempo total dedicado a la desencriptación de bloques de caché columnar transferidos al almacenamiento SSD. | No aplicable | microsegundos | contador |