Wie kann ich fehlgeschlagene Anmeldeversuche bei meiner Amazon RDS for PostgreSQL-DB-Instance verfolgen?
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
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren