Saltar al contenido

SCRAM en PostgreSQL en agentes privados de Jitterbit

Introducción

Esta página explica cómo cambiar la encriptación de contraseñas de tu instalación de PostgreSQL de MD5 a SCRAM. Sigue los pasos en estas secciones en secuencia. (Ejecuta el comando SQL como el usuario administrador de PostgreSQL.)

Requisitos previos

Parte 1: Reconfigurar PostgreSQL

  1. En una sesión de psql, verifica el método de encriptación actual:

    SHOW password_encryption;
    
    Salida esperada
     password_encryption
    ---------------------
     md5
    (1 row)
    
  2. Edita los archivos postgresql.conf y pg_hba.conf de la instancia de PostgreSQL. Estos suelen estar ubicados en el directorio /opt/jitterbit/DataInterchange/pgsql/data en Linux y Docker, y en la carpeta C:\Program Files\PostgreSQL\X\data en Windows (donde X es el número de versión principal).

    • En postgresql.conf, encuentra el parámetro password_encryption y cambia su valor de md5 a scram-sha-256.

    • En pg_hba.conf, cambia los valores en las columnas METHOD de md5 a scram-sha-md5 para las conexiones deseadas.

  3. En una sesión de psql, recarga la configuración:

    SELECT pg_reload_conf();
    
  4. Vuelve a verificar el método de encriptación actual:

    SHOW password_encryption;
    
    Salida esperada
     password_encryption
    ---------------------
     scram-sha-256
    (1 row)
    

Parte 2: Actualizar contraseñas de usuarios

  1. En una sesión de psql, lista las cuentas que utilizan encriptación de contraseñas MD5:

    SELECT rolname, rolpassword ~ '^SCRAM-SHA-256$' AS has_scram FROM pg_authid WHERE rolcanlogin;
    

    Consejo

    En un sistema estándar de agente privado, solo deberían aparecer dos usuarios listados, postgres y jitterbit.

    Salida esperada
      rolname  | has_scram
    -----------+-----------
     postgres  | f
     jitterbit | f
    (2 rows)
    
  2. Para cada cuenta con has_scram mostrando f, actualiza sus contraseñas utilizando el siguiente comando:

    ALTER ROLE <username> PASSWORD '<password>';
    
    • <username>: El nombre de usuario de PostgreSQL del usuario.

    • <password>: Una nueva contraseña para el usuario.

    Consejo

    Puedes reutilizar la contraseña existente de cada cuenta.

Parte 3: Reconfigurar PgBouncer (si está instalado)

Si estás utilizando PgBouncer, sigue estos pasos:

  1. Obtén la cadena de hash del verificador SCRAM y anótala:

    SELECT rolname, rolpassword FROM pg_authid WHERE rolname = 'jitterbit';
    

    Toma nota del valor de rolpassword. (Debería comenzar con SCRAM-SHA-256.)

  2. Edita el archivo users.txt de PgBouncer, que generalmente se encuentra en /opt/jitterbit/pgbouncer/share/doc/pgbouncer/ en Linux, y C:\Program Files\Jitterbit Agent\pgbouncer en Windows.

    Reemplaza el valor del hash con el valor copiado del paso anterior.

    Ejemplo de users.txt con hash original
    "jitterbit" "md5b51676b2b6ff8113190a8e4df1b3a144"
    
    Ejemplo de users.txt con hash actualizado
    "jitterbit" "SCRAM-SHA-256$4096:DaRaCof9KFmKvfxW/OIAsg==$gAmuj8MsIamBk/MsLmCrg2FO9FXeFBx+vmm0cUxXkXw=:mlH5eE3+AEdSniA0NPocfSt1BbcLAryftXhYWbMsaS0="
    

Parte 4: Reiniciar servicios

Reinicia el agente privado:

jitterbit restart
"C:\Program Files\Jitterbit Agent\StopServices.bat"
"C:\Program Files\Jitterbit Agent\StartServices.bat"