Verwenden von Advanced Auditing in einem Amazon Aurora MySQL DB-Cluster - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Advanced Auditing in einem Amazon Aurora MySQL DB-Cluster

Sie können die Hochleistungsfunktion erweitertes Auditing in Amazon Aurora MySQL verwenden, um Datenbank-Aktivitäten zu überprüfen. Dafür müssen Sie die Sammlung der Prüfprotokolle aktivieren, indem Sie mehrere DB-Cluster-Parameter einstellen. Wenn erweitertes Auditing aktiviert ist, können Sie es verwenden, um eine beliebige Kombination von unterstützten Ereignissen zu protokollieren.

Sie können die Prüfprotokolle ansehen oder herunterladen, um die Prüfinformationen für jeweils eine DB-Instance zu überprüfen. Dazu können Sie die Verfahren in Überwachen von Amazon Aurora-Protokolldateien verwenden.

Tipp

Für einen Aurora-DB-Cluster, der mehrere DB-Instances enthält, ist es möglicherweise praktischer, die Prüfprotokolle für alle Instances im Cluster zu untersuchen. Dazu können Sie CloudWatch Logs verwenden. Sie können eine Einstellung auf Cluster-Ebene aktivieren, um die Aurora-MySQL-Prüfprotokolldaten in einer Protokollgruppe in CloudWatch zu veröffentlichen. Anschließend können Sie die Prüfprotokolle über die CloudWatch-Oberfläche anzeigen, filtern und durchsuchen. Weitere Informationen finden Sie unter Veröffentlichen von Amazon Aurora MySQL-Protokollen in Amazon CloudWatch Logs.

Aktivieren von erweitertem Auditing

Verwenden Sie die in diesem Abschnitt beschriebenen Parameter, um erweitertes Auditing für Ihr DB-Cluster zu aktivieren und zu konfigurieren.

Verwenden Sie den Parameter server_audit_logging zum Aktivieren oder Deaktivieren von Advanced Auditing.

Mit dem Parameter server_audit_events können Sie angeben, welche Ereignisse protokolliert werden.

Verwenden Sie die Parameter server_audit_incl_users und server_audit_excl_users, um anzugeben, wer überprüft werden soll. Standardmäßig werden alle Benutzer überprüft. Weitere Informationen darüber, wie diese Parameter funktionieren, wenn ein oder beide leer bleiben oder in beiden die gleichen Benutzernamen angegeben sind, finden Sie unter server_audit_incl_users und server_audit_excl_users.

Konfigurieren Sie das erweiterte Auditing, indem Sie diese Parameter in der vom DB-Cluster verwendeten Parametergruppe festlegen. Sie können die in Ändern von Parametern in einer DB-Parametergruppe gezeigte Prozedur verwenden, um DB-Cluster-Parameter mithilfe der AWS Management Console zu ändern. Mit dem AWS CLI-Befehl modify-db-cluster-parameter-group oder der Amazon-RDS-API-Operation ModifyDBClusterParameterGroup können Sie DB-Cluster-Parameter programmgesteuert ändern.

Das Ändern dieser Parameter erfordert keinen Neustart des DB-Clusters, wenn die Parametergruppe Ihrem Cluster zugeordnet ist. Wenn Sie die Parametergruppe zum ersten Mal mit dem Cluster verknüpfen, ist ein Neustart des Clusters erforderlich.

server_audit_logging

Aktiviert oder deaktiviert erweitertes Auditing. Dieser Parameter ist standardmäßig auf OFF eingestellt. Setzten Sie ihn auf ON, um erweiterte Prüfungen zu aktivieren.

In den Protokollen werden keine Prüfungsdaten angezeigt, es sei denn, Sie definieren auch eine oder mehrere Arten von Ereignissen mit dem Parameter server_audit_events.

Um sich zu vergewissern, dass Prüfungsdaten für eine DB-Instance protokolliert werden, sehen Sie nach, ob einige Protokolldateien für diese Instance Namen nach dem Schema audit/audit.log.other_identifying_information haben. Befolgen Sie zum Anzeigen der Namen der Protokolldateien die Anleitung unter Anzeigen und Auflisten von Datenbank-Protokolldateien.

server_audit_events

Beinhaltet die durch Kommas getrennte Liste von Ereignissen zum Protokollieren. Ereignisse müssen alle in Großbuchstaben angegeben werden und es sollte kein Leerraum zwischen den Listenelementen bestehen, zum Beispiel: CONNECT,QUERY_DDL. Dieser Parameter ist standardmäßig auf eine leere Zeichenfolge eingestellt.

Sie können eine beliebige Kombination der folgenden Ereignisse protokollieren:

  • CONNECT – Protokolliert sowohl erfolgreiche als auch fehlgeschlagene Verbindungen und Verbindungstrennungen. Dieses Ereignis beinhaltet Benutzerinformationen.

  • QUERY – Protokolliert alle Abfragen in Klartext, einschließlich Abfragen, die aufgrund der Syntax oder Berechtigungsfehlern fehlschlagen.

    Tipp

    Wenn dieser Ereignistyp aktiviert ist, enthalten die Prüfungsdaten Informationen über die kontinuierliche Überwachung und Zustandsprüfung, die Aurora automatisch durchführt. Wenn Sie nur an bestimmten Arten von Operationen interessiert sind, können Sie spezifischere Arten von Ereignissen verwenden. Sie können die CloudWatch-Oberfläche auch verwenden, um in den Protokollen nach Ereignissen zu suchen, die sich auf bestimmte Datenbanken, Tabellen oder Benutzer beziehen.

  • QUERY_DCL – Ähnlich dem QUERY-Ereignis, aber gibt nur Data Control Language (DCL)-Abfragen zurück (GRANT, REVOKE usw.).

  • QUERY_DDL – Ähnlich dem QUERY-Ereignis, aber gibt nur Data Definition Language (DDL)-Abfragen zurück (CREATE, ALTER usw.).

  • QUERY_DML – Ähnlich dem QUERY-Ereignis, aber gibt nur Data Manipulation Language (DML)-Abfragen zurück (INSERT, UPDATE usw. und auch SELECT).

  • TABLE – Protokolliert die Tabellen, die von der Ausführung von Abfragen betroffen sind.

server_audit_incl_users

Beinhaltet die durch Kommas getrennte Liste mit Benutzernamen für Benutzer, deren Aktivitäten überprüft werden. Zwischen den Listenelementen sollte kein Leerraum bestehen, zum Beispiel: user_3,user_4. Dieser Parameter ist standardmäßig auf eine leere Zeichenfolge eingestellt. Die maximale Länge beträgt 1024 Zeichen. Bestimmte Benutzernamen müssen mit entsprechenden Werten in der Spalte User der mysql.user-Tabelle übereinstimmen. Weitere Informationen zu Benutzernamen finden Sie unter Benutzernamen finden Sie unter Kontobenutzernamen und Passwörter in der MySQL-Dokumentation.

Wenn server_audit_incl_users und server_audit_excl_users keine Werte beinhalten (standardmäßige Einstellung), werden alle Benutzer überprüft.

Wenn Sie Benutzer zu server_audit_incl_users hinzufügen und für server_audit_excl_users keinen Wert eingeben, werden nur diese Benutzer überprüft.

Wenn Sie Benutzer zu server_audit_excl_users hinzufügen und für server_audit_incl_users keinen Wert eingeben, werden alle Benutzer überprüft, die nicht in server_audit_excl_users aufgeführt sind.

Wenn Sie dieselben Benutzer zu server_audit_excl_users und server_audit_incl_users hinzufügen, werden diese Benutzer überprüft. Wenn derselbe Benutzer in beiden Einstellungen aufgeführt ist, erhält server_audit_incl_users die höhere Priorität.

Verbinden und trennen Sie Ereignisse, die nicht von dieser Variable betroffen sind. Sie werden immer protokolliert, wenn dies festgelegt wurde. Ein Benutzer wird protokolliert, selbst wenn dieser Benutzer auch im Parameter server_audit_excl_users angegeben ist, da server_audit_incl_users höhere Priorität hat.

server_audit_excl_users

Beinhaltet die durch Kommas getrennte Liste mit Benutzernamen für Benutzer, deren Aktivitäten nicht überprüft werden. Zwischen den Listenelementen sollte kein Leerraum bestehen, zum Beispiel: rdsadmin,user_1,user_2. Dieser Parameter ist standardmäßig auf eine leere Zeichenfolge eingestellt. Die maximale Länge beträgt 1024 Zeichen. Bestimmte Benutzernamen müssen mit entsprechenden Werten in der Spalte User der mysql.user-Tabelle übereinstimmen. Weitere Informationen zu Benutzernamen finden Sie unter Benutzernamen finden Sie unter Kontobenutzernamen und Passwörter in der MySQL-Dokumentation.

Wenn server_audit_incl_users und server_audit_excl_users keine Werte beinhalten (standardmäßige Einstellung), werden alle Benutzer überprüft.

Wenn Sie Benutzer zu server_audit_excl_users hinzufügen und server_audit_incl_users leer lassen, werden nur die unter server_audit_excl_users aufgeführten Benutzer nicht überprüft. Alle anderen werden jedoch überprüft.

Wenn Sie dieselben Benutzer zu server_audit_excl_users und server_audit_incl_users hinzufügen, werden diese Benutzer überprüft. Wenn derselbe Benutzer in beiden Einstellungen aufgeführt ist, erhält server_audit_incl_users die höhere Priorität.

Verbinden und trennen Sie Ereignisse, die nicht von dieser Variable betroffen sind. Sie werden immer protokolliert, wenn dies festgelegt wurde. Ein Benutzer wird protokolliert, wenn dieser Benutzer auch im Parameter server_audit_incl_users festgelegt ist, da diese Einstellung eine höhere Priorität hat als server_audit_excl_users.

Anzeigen von Audit-Protokollen

Sie können Audit-Protokolle mithilfe der Konsole anzeigen und herunterladen. Wählen Sie auf der Seite Datenbanken die DB-Instance aus, um ihre Details anzuzeigen, und scrollen Sie dann in den Abschnitt Protokolle. Die von der Advanced-Auditing-Funktion erstellten Prüfprotokolle haben Namen nach dem Schema audit/audit.log.other_identifying_information.

Um eine Protokolldatei herunterzuladen, wählen Sie die Datei im Bereich Protokolle aus. Wählen Sie dann Herunterladen.

Sie können auch mit dem AWS CLI-Befehl describe-db-log-files eine Liste der Protokolldateien erhalten. Sie können den Inhalt einer Protokolldatei mit dem AWS CLI-Befehl download-db-log-file-portion herunterladen. Weitere Informationen erhalten Sie unter Anzeigen und Auflisten von Datenbank-Protokolldateien und Herunterladen einer Datenbank-Protokolldatei.

Details in Prüfprotokollen

Protokolldateien werden als CSV-Dateien (durch Kommata getrennte Werte) im UTF-8-Format dargestellt. Abfragen werden auch in einfache Anführungszeichen (') gesetzt.

Das Prüfprotokoll wird separat in der lokalen (vorübergehenden) Speicherung jeder Instance gespeichert. Jede Aurora-Instance verteilt Schreibvorgänge auf vier Protokolldateien gleichzeitig. Die maximale Größe der Protokolle beträgt insgesamt 100 MB. Wenn dieses nicht konfigurierbare Limit erreicht ist, rotiert Aurora die Dateien und generiert vier neue Dateien.

Tipp

Protokolldateieinträge folgen keiner sequenziellen Reihenfolge. Um die Einträge zu sortieren, verwenden Sie den Wert des Zeitstempels. Sie müssen eventuell alle Protokolldateien überprüfen, um die aktuellen Ereignisse zu sehen. Für mehr Flexibilität beim Sortieren und Durchsuchen der Protokolldaten aktivieren Sie die Einstellung zum Hochladen der Prüfprotokolle auf CloudWatch und sehen Sie sie sich über die CloudWatch-Oberfläche an.

Um Prüfdaten mit mehreren Feldtypen und mit Ausgabe im JSON-Format anzuzeigen, können Sie auch die Funktion Datenbankaktivitäts-Streams verwenden. Weitere Informationen finden Sie unter Überwachung von Amazon Aurora mithilfe von Datenbankaktivitätsstreams.

Die Prüfprotokolldateien beinhalten die folgenden durch Kommata getrennten Informationen in Zeilen in der festgelegten Reihenfolge:

Feld Beschreibung

timestamp

Der präzise Unix-Zeitstempel für das protokollierte Ereignis mit Mikrosekunden.

serverhost

Der Name der Instance, für die das Ereignis protokolliert wird.

username

Der verbundene Benutzername des Benutzers.

host

Der Host, von dem sich der Benutzer verbunden hat.

connectionid

Die Nummer der Verbindungs-ID für den protokollierte Vorgang.

queryid

Die Nummer der Abfragen-ID, die verwendet werden kann, um Ereignisse für relationale Tabellenereignisse und zugehörige Abfragen zu finden. Für TABLE-Ereignisse werden mehrere Zeilen hinzugefügt.

operation

Der dokumentierte Aktionstyp. Mögliche Werte sind: CONNECT, QUERY, READ, WRITE, CREATE, ALTER, RENAME und DROP.

Datenbank

Die aktive Datenbank, wie vom USE-Befehl eingestellt.

Objekt

Bei QUERY-Ereignissen gibt dieser Wert die Abfrage an, die die Datenbank ausgeführt hat. Bei TABLE-Ereignissen gibt er den Tabellennamen an.

retcode

Der zurückgegebene Code des protokollierten Vorgangs.