Recupera registros de solución de problemas
Para solucionar problemas de TDE, puedes recopilar registros según el tipo de implementación.
Recopila los registros de systemd para el servicio de AlloyDB Omni y filtra los mensajes relacionados con TDE:
sudo journalctl -u alloydbomni18 | grep "TDE"
Los registros pueden contener entradas como las siguientes:
TDE: TdeContext initialization failedTDE: Vault server unreachableTDE: CipherTrust request failedTDE: Certificate expired
Situaciones de error
En esta sección, se describen situaciones comunes de error de TDE y se proporcionan correcciones sugeridas.
Errores de JWT (HashiCorp Vault)
Si ves fallas de autenticación o inicialización de HashiCorp Vault en los registros recopilados, a menudo están relacionadas con problemas de JSON Web Token (JWT).
Descripción
Es posible que veas errores como los siguientes:
| Error | Descripción | Motivo |
|---|---|---|
TDE: Failed to register Key Store with URL: VAULT_URL, error code: 3, error message: JWT cannot be empty |
No se encontró el JWT o está vacío | Falta el token JWT o está vacío. |
TDE: Failed to register Key Store with URL: VAULT_URL, error code: 3, error message: Invalid JWT format. Expected JWS compact serialization (three dot-separated segments: header, payload, and signature) with base64url encoded values. |
Formato JWT con formato incorrecto | El token JWT no está en el formato de serialización compacta JWS correcto. |
TDE: Failed to register Key Store with URL: VAULT_URL, error code: 3, error message: Vault request failed with HTTP code: 400, Vault errors: ["error validating token: invalid expiration time (exp) claim: token is expired"] |
JWT vencido | El token JWT ya venció. |
TDE: Failed to register Key Store with URL: VAULT_URL, error code: 3, error message: Vault request failed with HTTP code: 400, Vault errors: ["error validating token: error verifying token signature: failed to verify id token signature"] |
Firma de JWT no válida | El servidor de Vault no pudo verificar la firma del token JWT. |
TDE: Failed to register Key Store with URL: VAULT_URL, error code: 9, error message: Failed to get Vault configuration parameter 'VAULT_JWT' |
Problema de permisos | AlloyDB Omni no tiene permiso para leer el archivo de token JWT o no se configuró la variable de entorno VAULT_JWT. |
Solución recomendada
Para resolver problemas de JWT, haz lo siguiente:
Recupera el JWT activo:
Verifica que la ruta de acceso del token JWT esté definida en tu entorno o configuración del servicio, por ejemplo, en
override.conf:cat PATH_TO_JWT_FILE
Reemplaza
PATH_TO_JWT_FILEpor la ruta de acceso a tu token JWT en el host.Examina la estructura de JWT: Asegúrate de que el token sea válido y cumpla con el formato de serialización compacta de JWT.
Verifica el estado del token: Asegúrate de que el token esté activo y no haya vencido.
Errores de credenciales de CipherTrust (Thales CipherTrust Manager)
Si ves fallas de autenticación o inicialización de Thales CipherTrust Manager en los registros recopilados, suelen deberse a credenciales de usuario faltantes o no válidas (username y password).
Descripción
Es posible que veas errores como los siguientes:
| Error | Descripción | Motivo |
|---|---|---|
TDE: Failed to register Key Store with URL: CIPHERTRUST_URL, error code: 3, error message: CipherTrust user cannot be empty |
Falta el nombre de usuario | La variable de entorno CIPHERTRUST_USER o la clave username en el secreto de Kubernetes están vacías. |
TDE: Failed to register Key Store with URL: CIPHERTRUST_URL, error code: 3, error message: CipherTrust password cannot be empty |
Falta la contraseña | La variable de entorno CIPHERTRUST_PASSWORD o la clave password en el secreto de Kubernetes están vacías. |
TDE: Failed to register Key Store with URL: CIPHERTRUST_URL, error code: 9, error message: Failed to get CipherTrust configuration parameter 'CIPHERTRUST_USER'O TDE: Failed to register Key Store with URL: CIPHERTRUST_URL, error code: 9, error message: Failed to get CipherTrust configuration parameter 'CIPHERTRUST_PASSWORD' |
No se configuró la variable de entorno | Falta la variable de entorno CIPHERTRUST_USER o CIPHERTRUST_PASSWORD. |
TDE: Failed to register Key Store with URL: CIPHERTRUST_URL, error code: 16, error message: CipherTrust request failed with HTTP code: 401 |
Credenciales no válidas | El extremo de autenticación de Thales CipherTrust Manager (/api/v1/auth/tokens) rechazó el username o la password. |
Solución recomendada
Verifica que CIPHERTRUST_USER y CIPHERTRUST_PASSWORD estén configurados en /etc/systemd/system/alloydbomni18.service.d/override.conf:
systemctl show alloydbomni18 -p Environment
Errores de URL de KMS
Si la base de datos no se inicializa o no se inicia, es posible que se deba a una URL de clave de encriptación de clave (KEK) del servicio de administración de claves (KMS) mal configurada.
Descripción
Es posible que veas errores como los siguientes:
| Error | Descripción | Motivo |
|---|---|---|
TDE: Failed to register Key Store with URL: KMS_URL, error code: 12, error message: Unsupported key store type |
Tipo de almacén de claves no compatible | Ocurre cuando el protocolo de URL de KEK no es vault ni ciphertrust. Por ejemplo, usar http:// o https:// en lugar de vault:// o ciphertrust://, o bien omitir el esquema por completo. |
TDE: Failed to register Key Store with URL: KMS_URL, error code: 3, error message: Invalid Vault address format. Expected hostname or hostname:portO TDE: Failed to register Key Store with URL: KMS_URL, error code: 3, error message: Invalid CipherTrust address format. Expected hostname or hostname:port |
Formato de dirección de KMS no válido | Ocurre cuando la parte de la dirección de KMS de la URL tiene un formato incorrecto. Por ejemplo, si incluye el esquema de protocolo nuevamente, como vault://https://vault.example.com:8200/... o ciphertrust://https://ciphertrust.example.com:443/.... |
TDE: Failed to read KEK, error code: 3, error message: Invalid key path format. Must start with '/', not end with '/', and contain only valid characters |
Formato de ruta de acceso de clave no válido | Ocurre cuando la parte de la ruta de acceso de la URL de KMS tiene un formato incorrecto. La ruta de acceso debe comenzar con una barra diagonal / y no debe terminar con una barra diagonal. |
TDE: Failed to register Key Store with URL: KMS_URL, error code: 13, error message: curl_easy_perform() failed: Could not resolve hostname |
Falla en la resolución del nombre de host | Ocurre cuando no se puede resolver el nombre de host de KMS en la URL de KEK. Esto puede suceder si la URL tiene un formato incorrecto o si hay un problema de configuración de DNS. |
Solución recomendada
- Verifica el esquema de URL de KEK: Asegúrate de que la URL comience con
vault://(para HashiCorp Vault) ociphertrust://(para Thales CipherTrust Manager). No useshttps://como prefijo.- Correcto (Vault):
vault://vault.example.com:8200/v1/secret/data/key - Correcto (CipherTrust):
ciphertrust://ciphertrust.example.com:443/api/v1/vault/secrets/key - Incorrecto:
https://vault.example.com:8200/v1/secret/data/key
- Correcto (Vault):
- Verifica el formato de la dirección: Asegúrate de que el host y el puerto se especifiquen correctamente inmediatamente después del prefijo
vault://ociphertrust://. - Verifica el formato de la ruta de acceso: Asegúrate de que la ruta de acceso comience con
/y no tenga una barra diagonal final (por ejemplo, usa/v1/secret/data/keypara HashiCorp Vault o/api/v1/vault/secrets/keypara Thales CipherTrust Manager, sin una/final). - Verifica la resolución del host: Asegúrate de que el nombre de host de KMS especificado en la URL sea correcto y que se pueda resolver desde el servidor de la base de datos.
KEK no codificado en base64
Si el KEK almacenado en tu KMS externo no está codificado correctamente en base64, AlloyDB Omni no podrá decodificarlo cuando lo recuperes. Esto impide que desencapsule las claves de encriptación de datos (DEK) locales y provoca una falla de inicio.
Descripción
Es posible que veas errores como los siguientes en los registros de diagnóstico de la base de datos (postgresql.log):
| Error | Descripción | Motivo |
|---|---|---|
TDE: Failed to read KEK, error code: 13, error message: Error decoding base64 key string |
Error al decodificar la cadena de claves base64 | Ocurre cuando el administrador de claves intenta decodificar el secreto recuperado del KMS con Base64, pero la cadena no es un Base64 válido. |
Solución recomendada
- Recupera el valor de KEK: Recupera e inspecciona el valor de KEK directamente desde tu KMS (HashiCorp Vault o Thales CipherTrust Manager).
- Actualiza el valor en KMS: Asegúrate de que el KEK almacenado en tu KMS esté codificado en base64. Si se almacena como texto binario sin procesar o texto sin formato, actualiza el valor en el KMS con su equivalente codificado en base64.
- Convierte la clave sin procesar a Base64:
Reemplazaecho -n "RAW_KEY" | base64
<var>RAW_KEY</var>por el valor de clave sin codificar. - Actualiza el secreto en tu KMS a la cadena codificada en base64 generada.
- Convierte la clave sin procesar a Base64:
Falta la versión de KEK en KMS
El error de falta de versión de KEK ocurre cuando AlloyDB Omni intenta desencapsular las DEK locales con una versión histórica específica de la KEK, pero esa versión se borra, se destruye o falta en el KMS externo. Esto es más común durante las operaciones de restablecimiento de copia de seguridad o la inicialización de la réplica en espera.
Descripción
Es posible que veas errores como los siguientes en los registros de diagnóstico de la base de datos (postgresql.log):
| Error | Descripción | Motivo |
|---|---|---|
TDE: Failed to read KEK, error code: 5, error message: Vault request failed with HTTP code: 404, Response body: {... "destroyed":true, "version":4 ...}O TDE: Failed to read KEK, error code: 5, error message: CipherTrust request failed with HTTP code: 404, CipherTrust error: "NCERRResourceNotFound: ..." |
Falta la versión de clave o se destruyó | Falta la versión de KEK solicitada, se borró o se destruyó de forma permanente en el KMS. |
Solución recomendada
- Verifica la versión de KEK en KMS: Asegúrate de que la versión de KEK solicitada esté presente y activa (no borrada ni destruida) en tu KMS.
- Restablece la versión de KEK faltante: Restablece o recupera la versión de KEK solicitada en tu KMS si se borró, pero no se destruyó.
- Controla las claves destruidas: Si la versión de clave solicitada se destruye de forma permanente en tu KMS, los datos o la copia de seguridad encriptados en esa versión no se podrán recuperar de forma permanente.
Certificados TLS o SSL incorrectos o faltantes
El error de certificado TLS o certificado SSL incorrecto o faltante ocurre cuando AlloyDB Omni no puede establecer una conexión TLS segura con tu KMS externo (HashiCorp Vault o Thales CipherTrust Manager) porque faltan certificados, vencieron, no son de confianza o están mal configurados.
Descripción
Es posible que veas errores como los siguientes en los registros de diagnóstico de la base de datos (postgresql.log):
| Error | Descripción | Motivo |
|---|---|---|
TDE: Failed to read KEK, error code: 13, error message: curl_easy_perform() failed: SSL peer certificate or SSH remote key was not OKO TDE: Failed to read KEK, error code: 13, error message: curl_easy_perform() failed: Peer certificate cannot be authenticated with given CA certificates |
No se pudo verificar el certificado del servidor de KMS | No se puede verificar el certificado del servidor de KMS con el certificado de la AC proporcionado. |
TDE: Failed to register Key Store with URL: KMS_URL, error code: 13, error message: curl_easy_perform() failed: Problem with the local SSL certificate |
Problema con el certificado SSL local | Ocurre si se requiere un certificado de cliente y tiene problemas. |
Solución recomendada
Para resolver problemas de verificación de TLS, asegúrate de que el usuario postgres proporcione, instale y pueda leer los certificados correctos.
Linux espera que los certificados se proporcionen en la ruta de acceso especificada en la variable de entorno VAULT_CERT_PATH (para HashiCorp Vault) o CIPHERTRUST_CERT_PATH (para Thales CipherTrust Manager).
-
Confirma que
VAULT_CERT_PATHoCIPHERTRUST_CERT_PATHestén configurados correctamente en tu entorno o anulación de servicio:systemctl show alloydbomni18 -p Environment
-
Verifica que los archivos de certificado existan y que el usuario
postgrespueda leerlos:ls -la CERT_PATH
Asegúrate de que los nombres de archivo
ca.crt,tls.crtytls.keyestén presentes y que tengan permisos de lectura para el usuariopostgres.
Reemplaza CERT_PATH por la ruta de acceso al directorio de certificados TLS en tu host (por ejemplo, /tde-tls).