Para habilitar la encriptación de datos transparente (TDE), debes proporcionar las variables de entorno de Vault requeridas e incluir la marca --tde-kek-url en POSTGRES_INITDB_ARGS.
Antes de comenzar
- Configura el motor de secretos KV-V2 de HashiCorp Vault para asegurarte de que la ruta de acceso 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 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 compatible 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 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: Usa18.1.0para la imagen más reciente de Debian o18.1.0-ubipara la imagen más reciente de UBI.
Visualiza las métricas de TDE
Una vez que se inicializa el clúster, completa los siguientes pasos para verificar que TDE esté habilitado y ver las métricas relacionadas con TDE.
- Conéctate a tu base de datos con
psqlo tu cliente preferido. Para obtener instrucciones detalladas sobre cómo conectarte a tus instancias, consulta Ejecuta AlloyDB Omni y conéctate a él. Ejecuta el siguiente comando:
select * FROM pgsnap.g$tde_stats;Si TDE se habilita correctamente, el resultado muestra métricas de TDE, como si TDE está habilitado, la URL de KEK, la versión de KEK y la marca de tiempo de creación de KEK.
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_totalCantidad de bloques de datos desencriptados No aplicable contador alloydb_omni_database_tde_data_blocks_encrypted_count_totalCantidad de bloques de datos encriptados No aplicable contador alloydb_omni_database_tde_data_decryption_time_us_totalTiempo total invertido en el desencriptado de bloques de datos No aplicable microsegundos contador alloydb_omni_database_tde_data_encryption_time_us_totalTiempo total invertido en el encriptado de bloques de datos No aplicable microsegundos contador alloydb_omni_database_tde_enabledEstado habilitado de TDE No aplicable indicador alloydb_omni_database_tde_kek_infoInformación de KEK de TDE kek_version: Versión de la KEK
que se usa para el ajuste de claveskek_url: Ruta de acceso completamente calificada
a la KEK en KMSkek_creation_timestamp:
Hora de creación de la versión de KEK en uso.
indicador alloydb_omni_database_tde_temp_blocks_decrypted_count_totalCantidad de bloques temporales desencriptados No aplicable contador alloydb_omni_database_tde_temp_blocks_encrypted_count_totalCantidad de bloques temporales encriptados No aplicable contador alloydb_omni_database_tde_temp_decryption_time_us_totalTiempo total invertido en el desencriptado de bloques temporales No aplicable microsegundos contador alloydb_omni_database_tde_temp_encryption_time_us_totalTiempo total invertido en el encriptado de bloques temporales No aplicable microsegundos contador alloydb_omni_database_tde_wal_blocks_decrypted_count_totalCantidad de bloques de WAL desencriptados No aplicable contador alloydb_omni_database_tde_wal_blocks_encrypted_count_totalCantidad de bloques de WAL encriptados No aplicable contador alloydb_omni_database_tde_wal_decryption_time_us_totalTiempo total invertido en el desencriptado de bloques de WAL No aplicable microsegundos contador alloydb_omni_database_tde_wal_encryption_time_us_totalTiempo total invertido en el encriptado de bloques de WAL No aplicable microsegundos contador