Podobnie jak w przypadku Snowflake, „logi Databricks” mogą oznaczać dane bezpieczeństwa przechowywane w tabelach Delta lub własny dziennik audytu Databricks w system.access.audit w tabeli systemowej. Najprostszym sposobem eksportu dla obu jest komórka w notatniku. Zapytanie za pomocą Spark SQL, zapisanie wyniku jako JSON w katalogu Unity, a następnie pobranie go za pomocą Databricks CLI. Spark zapisuje JSON oddzielone nową linią, więc pliki są gotowe do przesyłania.
Databricks jest coraz częściej używany jako jezioro danych bezpieczeństwa, a jego dziennik audytu jest ważny sam w sobie: kto się zalogował, kto utworzył tokeny, kto zmienił uprawnienia. Prime Core ma ponad 24 000 unikalnych reguł detekcji, zmapowanych na 676 technik MITRE ATT&CK. Poniżej opisano, jak pobrać dane, oczyścić je i zbadać za darmo w LogTotal.
Zanim zaczniesz
Dostęp. Do odczytu system.access.audit potrzebne jest włączone schemat systemowy dla twojego przechowalnia danych i przyznany SELECT z konta lub administratora przechowalnia danych. Dla własnych tabel potrzebujesz zwykłych uprawnień katalogu Unity.
Wolumen do zapisu. Potrzebujesz wolumenu katalogu Unity, do którego możesz zapisać, na przykład /Volumes/security/exports/logtotal, oraz skonfigurowanego na swoim komputerze Databricks CLI.
Obliczenie. Notatnik potrzebuje klastra lub serwera bez obliczeń. Filtruj według daty, aby nie skanować więcej niż potrzebujesz.
Eksport z notatnika
(spark.sql("""
SELECT *
FROM system.access.audit
WHERE event_date = '2026-10-19'
AND action_name IN ('login', 'tokenLogin', 'generateDbToken')
""")
.write.mode("overwrite")
.json("/Volumes/security/exports/logtotal/audit_20261019"))
Spark zapisuje kilka plików part-*.json oraz pliki znaczników. Pobierz i połącz je:
databricks fs cp -r dbfs:/Volumes/security/exports/logtotal/audit_20261019 ./audit_20261019
cat ./audit_20261019/part-*.json > databricks_audit_20261019.jsonl
Dla własnych tabel bezpieczeństwa, zmień zapytanie: wybierz ze swojej tabeli i zastosuj filtr na kolumnie ze znacznikiem czasu.
Bez notatnika, API do wykonania instrukcji SQL może uruchomić to samo zapytanie na magazynie SQL i zwrócić JSON. Wiersze wracają jako tablice, z nazwami kolumn w osobnym manifeście, więc potrzebujesz dodatkowego kroku, aby przekształcić je w obiekty. Dla większych rozmiarów, droga przez notatnik jest prostsza.
Co szukać w dzienniku audytu
Zwróć uwagę na logowania i logowania za pomocą tokenów z nietypowych adresów IP, nowe osobiste tokeny dostępu, zmiany uprawnień i członkostwa w grupach oraz zmiany w konfiguracji przestrzeni roboczej lub klastra poza normalnymi godzinami. Warto również przyjrzeć się pobraniom notatników lub wyników w większej ilości.
Przesyłanie, oczyszczanie i przegląd w LogTotal
- Przesyłanie. Otwórz logtotal.com i upuść plik .jsonl.
- Oczyszczanie.
- Przegląd.
Kiedy coś się nie udaje
| Objaw | Prawdopodobna przyczyna | Fix |
|---|---|---|
| system.access.audit nie znaleziony | Schemat systemowy nie jest włączony | Poproś administratora konta o jego włączenie |
| Odmowa uprawnień do tabeli systemowej | Brak uprawnień SELECT | Poproś administratora przechowalnia danych o przyznanie uprawnienia |
| Nie można zapisać na wolumenie | Brak uprawnień do zapisu na wolumenie | Użyj wolumenu, do którego możesz zapisać |
| Pobieranie obejmuje _SUCCESS i inne pliki | Pliki znaczników Sparka | Połącz tylko part-*.json |
| Duże, wolne zapytanie | Brak filtru daty | Filtruj na event_date |
FAQ
Czy dziennik audytu jest również dostarczany do pamięci masowej w chmurze?
Przestrzenie robocze mogą dostarczać dzienniki audytu do własnej pamięci masowej. Jeśli jest to skonfigurowane, możesz skopiować te pliki bezpośrednio.
Czy to działa na przestrzeniach roboczych bez katalogu Unity?
Tabele systemowe potrzebują katalogu Unity. Starsze przestrzenie robocze polegają na dostarczaniu dzienników audytu do pamięci, a piszesz do ścieżek DBFS zamiast do wolumenów.