HIPAA-Prüfungsprotokollierung

Für Arbeitsbereiche, die das Compliance-Sicherheitsprofil mit dem HIPAA-Standard verwenden, erfasst Lakebase Audit-Ereignisse und liefert sie an die Audit-Log-Systemtabelle im system.access.audit Unity-Katalog. Diese Seite erklärt, was protokolliert wird, wie man es abfragt und welche Felder Lakebase-Ereignisse identifizieren.

Audit-Log-Typen

Lakebase erfasst drei Kategorien von Prüfungsereignissen:

Protokolltyp Was er erfasst
Konsolen-Auditprotokolle Aktionen, die Nutzer in der Lakebase-Benutzeroberfläche ausführen, wie zum Beispiel das Erstellen eines Projekts oder eines Zweigs.
API-Audit-Logs Anfragen an die Lakebase-Steuerungsebene, beispielsweise API-Aufrufe, die Projekte, Zweige und Endpunkte erstellen oder ändern.
Postgres-Auditprotokolle Aktivitäten auf SQL-Ebene innerhalb der Datenbank, aufgezeichnet von pgaudit, der Open-Source-Postgres-Audit-Logging-Erweiterung. Dazu gehören DDL, Rollenwechsel und Datenzugriff.

Wo Audit-Logs geliefert werden

Audit-Events werden in die Audit-Log-Systemtabelle im system.access.audit Unity-Katalog geliefert. Datensätze sind mit dem Arbeitsbereich verknüpft, in dem die Aktivität stattfand. Da das Audit-Log für einen Compliance-Sicherheitsprofil-Arbeitsbereich in eine Unity-Catalog-Systemtabelle fließt, liest und fragst du Lakebase-Audit-Ereignisse genauso ab wie andere Azure Databricks-Audit-Events.

Postgres SQL Audit-Protokollierung

Für HIPAA-fähige Arbeitsbereiche wendet Lakebase eine feste pgaudit Konfiguration an, die man nicht ändern kann:

Einstellung Wert Effect
pgaudit.log all, -misc Protokolliert alle Statement-Klassen außer sonstigen Statements. Dies umfasst Datendefinition (DDL), Rollen- und Privilegienänderungen, Lesen, Schreiben und Funktionsaufrufe.
pgaudit.log_parameter off Statement-Parameter werden nicht protokolliert.
pgaudit.log_catalog off Abfragen gegen die Systemkataloge werden nicht protokolliert.

Abfrage von Audit-Logs

Um Lakebase-Auditprotokolle abzufragen, benötigen Sie:

Lakebase Postgres Audit-Events sind in der system.access.audit Tabelle unter dem Servicenamen lakebaseaufgeführt. Um diese Ereignisse zu finden, filtern Sie auf service_name = 'lakebase'.

SELECT
  event_time,
  user_identity.email AS user_email,
  action_name,
  request_params
FROM system.access.audit
WHERE service_name = 'lakebase'
  AND event_date >= current_date() - INTERVAL 7 DAYS
ORDER BY event_time DESC;

Note

Filtern Sie nach event_date anstelle von event_time, um die Abfrageleistung zu verbessern. event_date ist eine Partitionsspalte.

Felder des Überwachungsprotokolls

Lakebase-Ereignisse verwenden das Tabellenschema des Shared-Audit-Logs. Die Spalten, die am nützlichsten zum Finden und Interpretieren von Lakebase-Ereignissen sind, sind service_name und action_name (die das Ereignis identifizieren), request_params (die Ereignisdetails), user_identity (wer die Anweisung ausgeführt hat) und event_date (eine Partitionsspalte zum Filtern für Abfrageleistung). Das vollständige Spaltenschema einschließlich der Details zu den Struct-Feldern finden Sie unter Referenz zur Audit-Log-Systemtabelle.

Lakebase Postgres (pgaudit) Events verwenden den service_name Wert lakebase. Das Feld action_name verwendet das Format <class>.<command>, wobei <class> die pgaudit-Statement-Klasse und <command> der SQL-Befehl ist. Beide sind kleingeschrieben, und Leerzeichen werden durch Unterstriche ersetzt. Zum Beispiel wird eine CREATE TABLE Aussage als ddl.create_tableaufgezeichnet. Der Teil <class> ist die pgaudit-Statement-Klasse der Operation, z. B. ddl für Datendefinition, role für Rollen- und Privilegienänderungen oder function für Funktionsaufrufe. Welche Klassen angezeigt werden, hängt von der Audit-Stufe ab.

Für Postgres-Ereignisse füllt Lakebase folgende Schlüssel in request_params:

Schlüssel Description
class Die pgaudit-Statement-Klasse, wie zum Beispiel DDL.
command Der SQL-Befehl, wie z. B. CREATE TABLE.
objectType Die Art des betroffenen Objekts, wie TABLE oder ROLE.
objectName Der Name des betroffenen Objekts.
statement Die SQL-Anweisung, die ausgeführt wurde.
statementId Die Sequenznummer der Aussage.
subStatementId Die Unteraussage-Sequenznummer innerhalb der Aussage.
endpointId Der Lakebase-Endpunkt, an dem die Anweisung ausgeführt wurde.

Important

Die Werte statement und objectName können den Text Ihrer SQL-Anweisungen und die Namen Ihrer Datenbankobjekte enthalten. Halte PHI aus Abfragetexten und Objektnamen heraus, damit sie in Audit-Logs nicht erscheint. Siehe Gemeinsame Verantwortung für PHI.

Aufbewahrung von Audit-Logs

Die System-Tabelle des Audit-Logs bewahrt Datensätze standardmäßig 395 Tage lang auf. Um Lakebase-Audit-Logs über die Aufbewahrungsfrist hinaus zu bewahren, exportieren oder kopieren Sie sie in Ihren eigenen Speicherort, bevor sie verfallen. Siehe Systemtabellenreferenz für Audit-Logs.

Nächste Schritte