Crea un clúster habilitado para TDE

Selecciona una versión de la documentación:

Puedes proteger tus datos en reposo y la información sensible habilitando la encriptación de datos transparente (TDE) en AlloyDB Omni. En este documento, se describe cómo crear un clúster habilitado para TDE proporcionando las variables de entorno de la bóveda requeridas y la marca --tde-kek-url en la variable de entorno POSTGRES_INITDB_ARGS durante la inicialización de la base de datos.

Antes de comenzar

Crea el clúster

Para crear un clúster habilitado para TDE, debes pasar la configuración necesaria de Key Management Service (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 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 la bóveda. Solo se admite jwt.
  • 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 tu bóveda que permite que HashiCorp Vault verifique la autenticidad del token de JWT.
  • VAULT_CERT_PATH_ON_DISK: Es la ruta de acceso a los certificados de la bóveda 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 la bóveda en tu contenedor. Por ejemplo, /tde-tls. Si no se establece, se usan los certificados del almacén de confianza predeterminado.
  • KEK_URL: Es la URL completamente calificada de la KEK en HashiCorp Vault. Usa vault como el protocolo para especificar HashiCorp Vault como el proveedor de KMS (por ejemplo, vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek).
  • IMAGE_TAG: Usa 18.3.0 para la imagen de Debian más reciente o 18.3.0-ubi para la imagen de UBI más reciente.

Para habilitar la TDE en los datos de la 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 del TDE

Puedes ver todas las métricas del TDE en el agente de supervisión de AlloyDB Omni. En la siguiente tabla, se describe cada métrica.

Nombre Descripción Etiqueta Unidad Tipo
alloydb_omni_database_tde_data_blocks_decrypted_count_total Cantidad de bloques de datos que se desencriptaron. 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 Es el 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 Es el estado de habilitación de la TDE. No aplicable indicador
alloydb_omni_database_tde_kek_info Es la información de la KEK de la TDE.
  • kek_version: Es la versión de la KEK
    que se usa para la protección de claves.
  • kek_url: Ruta de acceso completamente calificada
    a la KEK en KMS
  • kek_creation_timestamp:
    Fecha y hora de creación de la versión de KEK en uso.
indicador
alloydb_omni_database_tde_temp_blocks_decrypted_count_total Cantidad de bloques temporales que se desencriptaron. 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 Es el tiempo total dedicado a la desencriptación de bloques temporales. No aplicable microsegundos contador
alloydb_omni_database_tde_temp_encryption_time_us_total Es el 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 que se desencriptaron. 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 Es el tiempo total dedicado a la desencriptación de bloques de WAL. No aplicable microsegundos contador
alloydb_omni_database_tde_wal_encryption_time_us_total Es el 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é de Chill encriptados. No aplicable contador
tde_chill_cache_blocks_decrypted Cantidad de bloques de caché de Chill que se desencriptaron. 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 del bloque de caché de Chill. No aplicable microsegundos contador
tde_ce_cache_ssd_blocks_encrypted Es la cantidad de bloques de caché de columnas que se volcaron en el almacenamiento SSD y que estaban encriptados. No aplicable contador
tde_ce_cache_ssd_blocks_decrypted Cantidad de bloques de caché de columnas volcados en el almacenamiento SSD que se desencriptaron. No aplicable contador
tde_ce_cache_ssd_blocks_total_encryption_time_us Tiempo total dedicado a encriptar los bloques de caché de columnas volcados al almacenamiento SSD. No aplicable microsegundos contador
tde_ce_cache_ssd_blocks_total_decryption_time_us Tiempo total dedicado a descifrar los bloques de caché de columnas que se volcaron al almacenamiento SSD. No aplicable microsegundos contador