Wie kann ich fehlgeschlagene Anmeldeversuche bei meiner Amazon RDS for PostgreSQL-DB-Instance verfolgen?

Lesedauer: 3 Minute
0

Ich möchte die Anzahl der fehlgeschlagenen Verbindungen zu meiner Amazon Relational Database Service (Amazon RDS) für PostgreSQL-DB-Instance verfolgen.

Behebung

PostgreSQL generiert jede Stunde neue Protokolldateien. Um fehlgeschlagene Anmeldeversuche bei einer DB-Instance nachzuverfolgen, auf der PostgreSQL ausgeführt wird, aktivieren Sie den Parameter log_connections. Der Parameter befindet sich in der benutzerdefinierten Parametergruppe, die der DB-Instance zugeordnet ist. Wenn ein Benutzer dann versucht, sich mit den falschen Anmeldeinformationen bei Ihrer DB-Instance anzumelden, werden die fehlgeschlagenen Versuche im Protokoll aufgezeichnet. Die fehlgeschlagenen Versuche ähneln dem folgenden Beispiel: „error/postgresql.log.2018-04-19-10.“ Weitere Informationen finden Sie unter Arbeiten mit Parametergruppen.

Sehen Sie sich das folgende Beispiel für einen fehlgeschlagenen Anmeldeversuch an:

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"

Sie können auch den PostgreSQL log_connections-Parameter verwenden, um erfolgreiche Anmeldeversuche an einer DB-Instance aufzuzeichnen, auf der PostgreSQL ausgeführt wird.

Sehen Sie sich das folgende Beispiel für einen erfolgreichen Anmeldeversuch an:

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)

Verwenden Sie die Parameter log_connections und log_disconnections, um die Dauer einer Benutzersitzung aufzuzeichnen.

Sehen Sie sich das folgende Beispiel für die Dauer einer Sitzung an:

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

**Hinweis:**Die IP-Adresse des Client-Rechners lautet 123.45.67.8, und 6789 ist die PID (Prozess-ID), die dem PostgreSQL-Datenbankprozess gegeben wird.

Analysieren der Protokolldatei

Verwenden Sie die AWS Kommandozeilen-Schnittstelle (Command Line Interface) (AWS CLI) oder die Amazon RDS-Konsole, um das Protokoll herunterzuladen. Verwenden Sie dann das grep-Hilfsprogramm, um die fehlgeschlagenen Verbindungen zu durchsuchen:

**Hinweis:**Wenn beim Ausführen von AWS-CLI-Befehlen Fehler auftreten, stellen Sie sicher, dass Sie die neueste Version von AWS CLI verwenden.

$ 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"

Hinweis:Der Parameter- B 1 weist grep an, auch die Zeile anzuzeigen, die den Zeilen vorausgeht, die dem gesuchten Muster entsprechen. In diesem Beispiel lautet das Muster fehlgeschlagene Authentifizierung.

Sie können auch die PostgreSQL-Erweiterung log_fdw verwenden, um auf diese Protokolle als Fremdtabellen zuzugreifen. Wenn Sie PostgreSQL-Protokolldateien länger als den Aufbewahrungszeitraum aufbewahren möchten, veröffentlichen Sie Amazon RDS für PostgreSQL-Protokolle in Amazon CloudWatch-Protokollen.

Verwandte Informationen

Wie verwende ich Amazon RDS, um die Abfrageprotokollierung für PostgreSQL zu aktivieren

RDS für PostgreSQL-Datenbankprotokolldateien

Exportieren von Protokolldaten nach Amazon S3

Veröffentlichen von Aurora PostgreSQL-kompatiblen Protokollen in CloudWatch Logs