Datenbank-Prüfungsprotokollierung - Amazon Redshift

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.

Datenbank-Prüfungsprotokollierung

Amazon-Redshift-Protokolle stellen Informationen zu Verbindungen und Benutzeraktivitäten in Ihrer Datenbank bereit. Diese Protokolle helfen Ihnen, die Datenbank zu Sicherheits- und Fehlerbehebungszwecken zu überwachen. Dieser Prozess wird häufig als Datenbankprüfung bezeichnet. Die Protokolle können an folgenden Orten gespeichert werden:

  • Amazon-S3-Buckets – Diese bieten Benutzern, die für die Überwachung der Aktivitäten in der Datenbank verantwortlich sind, Zugriff mit Datensicherheitsfunktionen.

  • Amazon CloudWatch — Mithilfe der integrierten Funktionen, z. B. Visualisierungsfunktionen und Einstellungsaktionen CloudWatch, können Sie Daten zur Auditprotokollierung anzeigen.

Anmerkung

SYS_ CONNECTION _ LOG sammelt Verbindungsprotokolldaten für Amazon Redshift Serverless. Beachten Sie, dass Audit-Logging-Daten für Amazon Redshift Serverless nicht an Protokolldateien gesendet werden können, sondern nur an. CloudWatch

Amazon-Redshift-Protokolle

Amazon Redshift protokolliert Informationen in den folgenden Protokolldateien:

  • Verbindungsprotokoll – Protokolliert Authentifizierungsversuche, Verbindungen und Verbindungstrennungen.

  • Benutzerprotokoll – Protokolliert Informationen über Änderungen an Datenbankbenutzerdefinitionen.

  • Benutzeraktivitätenprotokoll – Protokolliert jede Abfrage vor ihrer Ausführung in der Datenbank.

Die Verbindungs- und Benutzerprotokolle sind vor allem aus Zwecken der Sicherheit nützlich. Mit dem Verbindungsprotokoll können Sie Informationen über die Benutzer, die sich mit der Datenbank verbinden, und die zugehörigen Verbindungsinformationen überwachen. Diese Informationen können ihre IP-Adresse beim Stellen der Anfrage, die Art der verwendeten Authentifizierung und vieles mehr sein. Sie können das Benutzerprotokoll verwenden, um Änderungen der Definitionen von Datenbankbenutzern zu überwachen.

Das Benutzeraktivitätsprotokoll ist vor allem aus Zwecken der Fehlerbehebung nützlich. Es verfolgt Informationen über die Arten von Abfragen nach, die von Benutzern und vom System in der Datenbank ausgeführt werden.

Das Verbindungsprotokoll und das Benutzerprotokoll korrespondieren mit Informationen, die in den Systemtabellen in Ihrer Datenbank gespeichert sind. Sie können dieselben Informationen auch über die Systemtabellen erhalten. Die Protokolldateien bieten jedoch einen einfacheren Mechanismus für Abruf und Prüfung. Die Protokolldateien sind von Amazon-S3-Berechtigungen anstatt Datenbankberechtigungen abhängig, um Abfragen für die Tabellen ausführen zu können. Zusätzlich reduzieren Sie die Auswirkungen von Interaktionen auf die Datenbank, da Sie die Informationen in Protokolldateien anzeigen, statt Abfragen für die Systemtabellen auszuführen.

Anmerkung

Protokolldateien sind nicht so aktuell wie die Systemprotokolltabellen, die STL_ USERLOG und STL _ _ sind. CONNECTION LOG Datensätze, die älter sind als, aber nicht einschließlich, der letzte Datensatz, der in Protokolldateien kopiert wurde.

Anmerkung

Für Amazon Redshift Serverless LOG sammelt SYS_ CONNECTION _ Verbindungsprotokolldaten. Wenn Sie Auditprotokollierungsdaten für Amazon Redshift Serverless sammeln, können diese nicht an Protokolldateien gesendet werden, sondern nur an. CloudWatch

Verbindungsprotokoll

Protokolliert Authentifizierungsversuche sowie Verbindungen und Verbindungstrennungen. Die folgende Tabelle beschreibt die Informationen im Verbindungsprotokoll. Weitere Informationen zu diesen Feldern finden Sie unter STL_ CONNECTION _ LOG im Amazon Redshift Database Developer Guide. Weitere Informationen zu den gesammelten Verbindungsprotokolldaten für Amazon Redshift Serverless finden Sie unter SYS_ _ CONNECTION. LOG

Spaltenname Beschreibung
event Verbindungs- oder Authentifizierungsereignis.
recordtime Uhrzeit, zu der das Ereignis aufgetreten ist.
remotehost Name oder IP-Adresse des Remote-Hosts.
remoteport Portnummer für den Remote-Host.
pid Die mit der Anweisung verbundene Prozess-ID.
dbname Datenbankname.
username Benutzername.
authmethod Authentifizierungsmethode.
duration Dauer der Verbindung in Mikrosekunden.
sslversion Version von Secure Sockets Layer (SSL).
sslcipher SSLChiffre.
mtu Maximale Übertragungseinheit ()MTU.
sslcompression SSLArt der Komprimierung.
sslexpansion SSLErweiterungstyp.
iamauthguid Das Tool AWS Identity and Access Management (IAM) Authentifizierungs-ID für AWS CloudTrail Anfrage. Dies ist die Kennung für den GetClusterCredentialsAPIAufruf zur Erstellung der Anmeldeinformationen, die für eine bestimmte Verbindung verwendet werden.
application_name Der ursprüngliche oder aktualisierte Name der Anwendung für eine Sitzung.
os_version Die Version des Betriebssystems, das sich auf dem Clientcomputer befindet, der eine Verbindung zu Ihrem Amazon-Redshift-Cluster herstellt.
driver_version Die Version von ODBC oder dem JDBC Treiber, der über Ihre SQL Client-Tools von Drittanbietern eine Verbindung zu Ihrem Amazon Redshift Redshift-Cluster herstellt.
plugin_name Der Name des Plug-Ins, mit dem Sie eine Verbindung zu Ihrem Amazon-Redshift-Cluster herstellen.
protocol_version Die interne Protokollversion, die der Amazon-Redshift-Treiber beim Herstellen der Verbindung mit dem Server verwendet.
sessionid Der global eindeutige Bezeichner für die aktuelle Sitzung.
Kompression Der für die Verbindung verwendete Komprimierungsalgorithmus.

Benutzerprotokoll

Zeichnet die Details der folgenden Änderungen an einem Datenbankbenutzer auf:

  • Benutzer erstellen

  • Benutzer entfernen

  • Benutzer ändern (umbenennen)

  • Benutzer ändern (Eigenschaften ändern)

Spaltenname Beschreibung
userid ID des von der Änderung betroffenen Benutzers.
username Benutzername des von der Änderung betroffenen Benutzers.
oldusername Bei einer Umbenennungsaktion der ursprüngliche Benutzername. Bei anderen Aktionen ist dieses Feld leer.
Aktion Erfolgte Aktion. Zulässige Werte:
  • Ändern

  • Erstellen

  • Entfernen

  • Umbenennen

usecreatedb „True“ (1) zeigt an, dass der Benutzer über Berechtigungen zum Erstellen von Datenbanken verfügt.
usesuper „True“ (1) zeigt an, dass es sich um einen Superuser handelt.
usecatupd „True“ (1) zeigt an, dass der Benutzer Systemkataloge aktualisieren kann.
valuntil Ablaufdatum des Passworts.
pid Prozess-ID.
xid Transaktions-ID.
recordtime UhrzeitUTC, zu der die Abfrage gestartet wurde.

Fragen Sie die USERLOG Systemansicht SYS_ ab, um zusätzliche Informationen zu Änderungen an Benutzern zu erhalten. Diese Ansicht enthält Protokolldaten von Amazon Redshift Serverless.

Benutzeraktivitätsprotokoll

Protokolliert jede Abfrage vor ihrer Ausführung in der Datenbank.

Spaltenname Beschreibung
recordtime Uhrzeit, zu der das Ereignis aufgetreten ist.
db Database name (Datenbankname).
user Benutzername.
pid Die mit der Anweisung verbundene Prozess-ID.
userid Benutzer-ID.
xid Transaktions-ID.
query Ein Präfix vonLOG: gefolgt vom Text der Abfrage, einschließlich Zeilenumbrüchen.

Audit-Logs und Amazon CloudWatch

Prüfungsprotokollierung ist in Amazon Redshift standardmäßig nicht aktiviert. Wenn Sie die Protokollierung in Ihrem Cluster aktivieren, exportiert Amazon Redshift Protokolle nach Amazon CloudWatch oder erstellt und lädt Protokolle auf Amazon S3 hoch, die Daten vom Zeitpunkt der Aktivierung der Audit-Protokollierung bis heute erfassen. Jedes Protokollierungsupdate stellt eine Fortsetzung der vorherigen Protokolle dar.

Die Audit-Protokollierung bei CloudWatch oder in Amazon S3 ist ein optionaler Prozess. Die Protokollierung in Systemtabellen ist nicht optional und erfolgt automatisch. Weitere Informationen zur Protokollierung in Systemtabellen finden Sie in der Systemtabellenreferenz im Datenbankentwicklerhandbuch zu Amazon Redshift.

Das Verbindungsprotokoll, das Benutzerprotokoll und das Benutzeraktivitätsprotokoll werden zusammen aktiviert, indem AWS Management Console, die Amazon Redshift API Redshift-Referenz oder die AWS Command Line Interface (AWS CLI). Für das Benutzeraktivitätsprotokoll müssen Sie auch den enable_user_activity_logging Datenbankparameter aktivieren. Wenn Sie nur die Prüfprotokollierungsfunktion, aber nicht den zugehörigen Parameter aktivieren, protokolliert der Datenbank-Audit die Protokollinformationen nur für das Verbindungsprotokoll und das Benutzerprotokoll, nicht aber für das Protokoll der Benutzeraktivität. Der Parameter enable_user_activity_logging ist standardmäßig nicht aktiviert (false). Sie können ihn auf true festlegen, um das Benutzeraktivitätsprotokoll zu aktivieren. Weitere Informationen finden Sie unter Amazon-Redshift-Parametergruppen.

Wenn Sie die Protokollierung aktivieren CloudWatch, exportiert Amazon Redshift Cluster-Verbindungs-, Benutzer- und Benutzeraktivitätsprotokolldaten in eine Amazon CloudWatch Logs-Protokollgruppe. Die Protokolldaten ändern sich in Bezug auf das Schema nicht. CloudWatch wurde für die Überwachung von Anwendungen entwickelt, und Sie können damit Echtzeitanalysen durchführen oder es so einrichten, dass Aktionen ausgeführt werden. Sie können Amazon CloudWatch Logs auch verwenden, um Ihre Protokolldatensätze in einem dauerhaften Speicher zu speichern.

Die Verwendung CloudWatch zum Anzeigen von Protokollen ist eine empfohlene Alternative zum Speichern von Protokolldateien in Amazon S3. Es ist kein großer Konfigurationsaufwand erforderlich, zudem kommt dies möglicherweise Ihren Überwachungsanforderungen zugute, insbesondere wenn Sie das Tool bereits zur Überwachung anderer Services und Anwendungen verwenden.

Gruppen protokollieren und Ereignisse in Amazon protokollieren CloudWatch

Nachdem Sie ausgewählt haben, welche Amazon Redshift Redshift-Protokolle exportiert werden sollen, können Sie Protokollereignisse in Amazon CloudWatch Logs überwachen. Eine neue Protokollgruppe für Amazon Redshift Serverless wird automatisch mit folgendem Präfix erstellt. log_type steht dabei für den Protokolltyp.

/aws/redshift/cluster/<cluster_name>/<log_type>

Wenn Sie beispielsweise das Verbindungsprotokoll exportieren möchten, werden die Protokolldaten in der folgenden Protokollgruppe gespeichert.

/aws/redshift/cluster/cluster1/connectionlog

Protokollereignisse werden mithilfe des Protokollstreams in eine Protokollgruppe exportiert. Um in Protokollereignissen für Ihren serverlosen Endpunkt nach Informationen zu suchen, verwenden Sie die Amazon CloudWatch Logs-Konsole, AWS CLI, oder die Amazon CloudWatch LogsAPI. Weitere Informationen zum Suchen und Filtern von Protokolldaten finden Sie unter Erstellen von Metriken aus Protokollereignissen mithilfe von Filtern.

In CloudWatch können Sie Ihre Protokolldaten mit einer Abfragesyntax durchsuchen, die für Granularität und Flexibilität sorgt. Weitere Informationen finden Sie unter CloudWatch Logs Insights-Abfragesyntax.

Migration zu Amazon CloudWatch Audit Logging

In allen Fällen, in denen Sie Protokolle an Amazon S3 senden und die Konfiguration ändern, z. B. um Protokolle an zu senden, sind Protokolle CloudWatch, die in Amazon S3 verbleiben, davon nicht betroffen. Sie können die Protokolldaten weiterhin in den Amazon-S3-Buckets abfragen, in denen sie sich befinden.

Protokolldateien in Amazon S3

Die Anzahl und die Größe der Amazon-Redshift-Protokolldateien in Amazon S3 ist stark von der Aktivität in Ihrem Cluster abhängig. Wenn der Cluster aktiv ist und eine große Zahl von Protokollen generiert, erstellt Amazon Redshift die Protokolldateien möglicherweise häufiger. Sie erhalten möglicherweise eine Reihe von Protokolldateien für dieselbe Art von Aktivität, beispielsweise mehrere Verbindungsprotokolle innerhalb einer Stunde.

Wenn Amazon Redshift Amazon S3 zum Speichern von Protokollen nutzt, fallen Kosten für den Speicher an, den Sie in Amazon S3 nutzen. Bevor Sie die Protokollierung in Amazon S3 konfigurieren, sollten Sie einplanen, wie lange Sie die Protokolldateien speichern müssen. Finden Sie in diesem Zusammenhang heraus, wann die Protokolldateien Ihren Prüfungsanforderungen entsprechend gelöscht oder archiviert werden können. Der von Ihnen erstellte Plan ist stark von der Art der gespeicherten Daten abhängig, beispielsweise Daten, die Compliance- oder regulatorischen Anforderungen unterliegen. Weitere Informationen über die Amazon-S3-Preise finden Sie unter Amazon Simple Storage Service (S3) – Preise.

Einschränkungen bei der Aktivierung der Protokollierung in Amazon S3

Für die Audit-Protokollierung gelten folgende Einschränkungen:

  • Sie können nur die Verschlüsselung mit Amazon S3-verwalteten Schlüsseln (SSE-S3) (-256) verwenden. AES

  • Für die Amazon-S3-Buckets muss die S3-Objektsperre-Funktion deaktiviert sein.

Bucket-Berechtigungen für die Amazon-Redshift-Prüfungsprotokollierung

Wenn Sie die Protokollierung in Amazon S3 aktivieren, sammelt Amazon Redshift Protokollinformationen und lädt sie in Protokolldateien hoch, die in Amazon S3 gespeichert werden. Sie können einen vorhandenen oder einen neuen Bucket verwenden. Amazon Redshift benötigt die folgenden IAM Berechtigungen für den Bucket:

  • s3:GetBucketAcl Der Service erfordert Leseberechtigungen für den Amazon S3 Bucket, um den Bucket-Eigentümer identifizieren zu können.

  • s3:PutObject Der Service benötigt Put-Objekt-Berechtigungen, um die Protokolle hochladen zu können. Außerdem muss der Benutzer oder die IAM Rolle, die die Protokollierung aktiviert, über s3:PutObject Berechtigungen für den Amazon S3 S3-Bucket verfügen. Bei jedem Hochladen von Protokollen legt der Service, ob der aktuelle Bucket-Eigentümer mit dem Bucket-Eigentümer zum Zeitpunkt der Aktivierung der Protokollierung übereinstimmt. Wenn diese Besitzer nicht übereinstimmen, erhalten Sie einen Fehler.

Wenn Sie beim Aktivieren der Prüfungsprotokollierung die Option zum Erstellen eines neuen Buckets auswählen, werden die korrekten Berechtigungen für ihn angewendet. Wenn Sie Ihren eigenen Bucket in Amazon S3 erstellen oder einen vorhandenen Bucket verwenden, müssen Sie jedoch eine Bucket-Richtlinie hinzufügen, die den Namen des Buckets enthält. Protokolle werden mit Service-Prinzipal-Anmeldeinformationen geliefert. Für die meisten AWS-Regionen, fügen Sie den Redshift-Serviceprinzipalnamen hinzu, redshift.amazonaws.com.

Die Bucket-Richtlinie verwendet das folgende Format. ServiceName and BucketName sind Platzhalter für Ihre eigenen Werte. Geben Sie auch die zugehörigen Aktionen und Ressourcen in der Bucket-Richtlinie an.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "ServiceName" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::BucketName", "arn:aws:s3:::BucketName/*" ] } ] }

Im folgenden Beispiel sehen Sie eine Bucket-Richtlinie für die Region USA Ost (Nord-Virginia) und einen Bucket namens AuditLogs.

{ "Version": "2008-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::AuditLogs", "arn:aws:s3:::AuditLogs/*" ] } ] }

Regionen, die standardmäßig nicht aktiviert sind, auch als „Opt-In-Regionen“ bezeichnet, benötigen einen regionsspezifischen Service-Prinzipal-Namen. Für diese enthält der Service-Prinzipal-Name die Region im Format redshift.region.amazonaws.com. Zum Beispiel redshift.ap-east-1.amazonaws.com für die Region Asien-Pazifik (Hongkong). Eine Liste der Regionen, die standardmäßig nicht aktiviert sind, finden Sie unter Verwalten AWS-Regionen in der Allgemeine AWS-Referenz.

Anmerkung

Der regionsspezifische Service-Prinzipal-Name entspricht der Region, in der sich der Cluster befindet.

Bewährte Methoden für Protokolldateien

Wenn Redshift Protokolldateien auf Amazon S3 hochlädt, können große Dateien in Teilen hochgeladen werden. Wenn ein mehrteiliger Upload nicht erfolgreich ist, können Teile einer Datei im Amazon S3 Bucket verbleiben. Dies kann zu zusätzlichen Speicherkosten führen. Daher ist es wichtig zu verstehen, was passiert, wenn ein mehrteiliger Upload fehlschlägt. Eine ausführliche Erklärung zum mehrteiligen Upload für Prüfungsprotokolle finden Sie unter Hochladen und Kopieren von Objekten mit mehrteiligen Uploads und Abbrechen eines mehrteiligen Uploads.

Weitere Informationen zum Erstellen von S3 Buckets und zum Hinzufügen von Bucket-Richtlinien finden Sie unter Erstellen eines Buckets und Bearbeiten von Bucket-Berechtigungen im Amazon-Simple-Storage-Service-Benutzerhandbuch.

Bucket-Struktur für die Amazon-Redshift-Prüfungsprotokollierung

Standardmäßig organisiert Amazon Redshift die Protokolldateien im Amazon-S3-Bucket unter Verwendung der folgenden Bucket- und Objektstruktur:

AWSLogs/AccountID/ServiceName/Region/Year/Month/Day/AccountID_ServiceName_Region_ClusterName_LogType_Timestamp.gz

Ein Beispiel ist: AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Wenn Sie ein Amazon-S3-Schlüsselpräfix bereitstellen, stellen Sie das Präfix an den Anfang des Schlüssels.

Wenn Sie beispielsweise ein Präfix oder eigenes Präfix angeben: myprefix/AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Das Amazon-S3-Schlüsselpräfix darf nicht mehr als 512 Zeichen enthalten. Es darf keine Leerzeichen ( ), doppelten Anführungszeichen (“), einzelne Anführungszeichen (‘) oder Backslashes (\)enthalten. Einige Sonderzeichen und Steuerzeichen sind ebenfalls nicht zulässig. Die Hexadezimalcodes für diese Zeichen sind:

  • x00 bis x20

  • x 22 %

  • x 27 %

  • x5c

  • x7f oder höher

Überlegungen zur Auditprotokollierung in Amazon S3

Die Amazon-Redshift-Prüfungsprotokollierung kann aus folgenden Gründen unterbrochen werden:

  • Amazon Redshift verfügt nicht über die Berechtigung, Protokolle in den Amazon S3 Bucket hochzuladen. Stellen Sie sicher, dass der Bucket mit der richtigen IAM Richtlinie konfiguriert ist. Weitere Informationen finden Sie unter Bucket-Berechtigungen für die Amazon-Redshift-Prüfungsprotokollierung.

  • Der Bucket-Eigentümer hat gewechselt. Amazon Redshift überprüft beim Hochladen von Protokollen, ob der Bucket-Eigentümer derselbe wie zum Zeitpunkt der Aktivierung der Protokollierung ist. Wenn sich der Bucket-Eigentümer geändert hat, kann Amazon Redshift keine Protokolle hochladen, bis Sie einen anderen Bucket für die Prüfungsprotokollierung konfiguriert haben.

  • Der Bucket kann nicht gefunden werden. Wenn der Bucket in Amazon S3 gelöscht wird, kann Amazon Redshift keine Protokolle hochladen. Sie müssen den Bucket entweder neu erstellen oder Amazon Redshift so konfigurieren, dass Protokolle in einen anderen Bucket hochgeladen werden.

APIruft mit AWS CloudTrail

Amazon Redshift ist integriert in AWS CloudTrail, ein Service, der eine Aufzeichnung der Aktionen bereitstellt, die von einem Benutzer, einer Rolle oder einem AWS Dienst in Amazon Redshift. CloudTrail erfasst alle API Aufrufe von Amazon Redshift als Ereignisse. Weitere Informationen zur Amazon Redshift Redshift-Integration mit AWS CloudTrail, siehe Protokollieren mit CloudTrail.

Sie können die Audit-Protokollierung der Amazon Redshift-Datenbank CloudTrail unabhängig oder zusätzlich zur Amazon Redshift Redshift-Datenbank verwenden.

Weitere Informationen dazu finden CloudTrail Sie im AWS CloudTrail Benutzerleitfaden.