Saltar al contenido

¿Cómo puedo hacer un seguimiento de los intentos fallidos de inicio de sesión en mi instancia de base de datos de Amazon RDS para PostgreSQL?

3 minutos de lectura
0

Quiero hacer un seguimiento del número de conexiones fallidas a mi instancia de base de datos Amazon Relational Database Service (Amazon RDS) para PostgreSQL.

Resolución

PostgreSQL genera nuevos archivos de registro cada hora. Para realizar un seguimiento de los intentos fallidos de inicio de sesión en una instancia de base de datos que ejecuta PostgreSQL, activa el parámetro log_connections. El parámetro se encuentra en el grupo de parámetros personalizados asociado a la instancia de base de datos. Si un usuario intenta iniciar sesión en la instancia de base de datos con credenciales incorrectas, los intentos con errores se graban en el registro. Los intentos fallidos son similares a los del ejemplo siguiente: “error/postgresql.log.2018-04-19-10”. Para obtener más información, consulte Uso de grupos de parámetros.

Consulte el siguiente ejemplo de un intento de inicio de sesión fallido:

2018-04-19 10:12:31 UTC:123.45.67.8(6789):[unknown]@[unknown]:[12507]:LOG: connection received: host=123.45.67.8port=12345
2018-04-19 10:12:31 UTC:123.45.67.8(6789):test_user@Test_DB:[12507]:FATAL: password authentication failed for user "test_user"

También puede usar el parámetro log\ _connections de PostgreSQL para registrar los intentos de inicio de sesión correctos en una instancia de base de datos que ejecuta PostgreSQL.

Consulte el siguiente ejemplo de un intento de inicio de sesión exitoso:

2018-04-19 10:19:20 UTC:123.45.67.8(6789):[unknown]@[unknown]:[17196]:LOG: connection received: host=123.45.67.8 port=12345
2018-04-19 10:19:20 UTC:123.45.67.8(6789):test_user@Test_DB:[17196]:LOG: connection authorized: user=test_user database=Test_DB SSL enabled (protocol=xxxx, cipher=xxxx, compression=off)

Utilice los parámetros log_connections y log_disconnections para registrar la duración de la sesión de un usuario.

Consulte el siguiente ejemplo para conocer la duración de una sesión:

2018-04-19 10:19:43 UTC:123.45.67.8(6789):test_user@Test_DB:[17196]:LOG: disconnection: session time: 0:00:23.753 user=test_user database=Test_DB host=123.45.67.8 port=12345

Nota: La dirección IP de la máquina cliente es 123.45.67.8 y 6789 es el PID (ID de proceso) que se asigna al proceso de la base de datos PostgreSQL.

Análisis del archivo de registro

Utilice Interfaz de la línea de comandos de AWS (AWS CLI) o la consola de Amazon Aurora y RDS para descargar el registro. A continuación, utilice la utilidad grep para buscar las conexiones fallidas:

Nota: Si recibe errores al ejecutar los comandos de AWS CLI, asegúrese de usar la versión más reciente de AWS CLI.

$ grep -B 1 "authentication failed" postgresql.log.2018-04-19-10
2018-04-19 10:12:31 UTC:123.45.67.8(6789):[unknown]@[unknown]:[12507]:LOG: connection received: host=123.45.67.8port=12345
2018-04-19 10:12:31 UTC:123.45.67.8(6789):test_user@Test_DB:[12507]:FATAL: password authentication failed for user "test_user"

Nota:El parámetro- B 1 indica a grep que también muestre la línea que precede a las líneas que coinciden con el patrón que estás buscando. En este ejemplo, el patrón es error de autenticación.

También puedes usar la extensión log_fdw de PostgreSQL para acceder a estos registros como tablas externas. Si deseas conservar los archivos de registro de PostgreSQL durante más tiempo que el periodo de retención, publica los registros de Amazon RDS para PostgreSQL en los registros de Amazon CloudWatch.

Información relacionada

¿Cómo activo el registro de consultas en mis instancias de base de datos de Amazon RDS para PostgreSQL?

Archivos de registro de bases de datos de RDS para PostgreSQL

Exporting log data to Amazon S3 (Exportación de datos de registro a Amazon S3)

Publicación de registros de Aurora PostgreSQL en Registros de CloudWatch

OFICIAL DE AWSActualizada hace 3 años