Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Effektive Protokollierung und Überwachung helfen Ihnen, Sicherheitsereignisse in Databricks-Apps zu erkennen und darauf zu reagieren. Apps generieren sowohl Protokolle auf Anwendungsebene als auch Plattformüberwachungsprotokolle, die Sie für Diagnose, Leistungsnachverfolgung und Sicherheitsanalysen verwenden können.
Anwendungsprotokolle
Damit Protokolle in der Benutzeroberfläche von Databricks-Apps oder über die URL Ihrer App verfügbar sind, muss Ihre App die Ausgabe an stdout und stderr übergeben.
Auf folgende Weise auf Anwendungsprotokolle zugreifen:
- Benutzeroberfläche von Apps: Klicken Sie auf der Seite "App-Details" auf die Registerkarte "Protokolle ", um die Standardausgabe und den Fehler anzuzeigen. Ausführliche Informationen finden Sie unter Details zu einer Databricks-App anzeigen.
-
Direkte URL: Fügen Sie
/logzzu Ihrer App-URL hinzu. Wenn Ihre App-URL beispielsweise lautethttps://my-app-1234567890.my-instance.databricksapps.com, sind Protokolle unterhttps://my-app-1234567890.my-instance.databricksapps.com/logzverfügbar.
Hinweis
Azure Databricks speichert keine Protokolle, wenn die App heruntergefahren wird. Um eine dauerhafte Protokollierung zu gewährleisten, integrieren Sie externe Protokollierungsdienste, oder schreiben Sie Protokolle in Unity Katalog-Volumes oder -Tabellen.
Integration mit externen Logging-Diensten
Verwenden Sie für die dauerhafte Protokollierung und erweiterte Überwachungsfunktionen Folgendes:
- Tools zur Anwendungsleistungsüberwachung (Application Performance Monitoring, APM): Verwenden Sie New Relic, Datadog oder ähnliche Tools zur Anwendungsleistungsüberwachung, um Protokolle, Metriken und Ablaufverfolgungen zu sammeln und zu analysieren.
- Benutzerdefinierte Protokollpersistenz: Schreiben Sie Protokolle regelmäßig in Unity-Katalogvolumes oder Tabellen für langfristige Speicherung und Analyse.
Anleitungen zur Protokollformatierung und -inhalte finden Sie unter "Empfohlene Protokollierungsmethoden ".
Empfohlene Protokollierungsmethoden
So integrieren Sie externe Überwachungs- und Echtzeitbenachrichtigungssysteme:
- Formatieren von Protokollen in JSON- oder anderen maschinenparseierbaren Formaten.
- Protokollieren Sie sicherheitsrelevante Ereignisse mit Kontext:
- Authentifizierungs- und Autorisierungsereignisse, einschließlich Benutzeridentität und Ergebnis
- Datenzugriffsdetails, z. B. Katalog-, Schema- und Tabellennamen
- Sicherheitsbezogene Fehler, z. B. ungültige Token, Berechtigungsverweigerungen und verdächtige Aktivitäten
- Weiterleiten von Protokollen an externe Systeme. Integration in APM- oder Protokollaggregationstools zur Unterstützung von Echtzeitwarnungen, Reaktion auf Sicherheitsvorfälle, Nutzungs- und Leistungsanalysen sowie Korrelation mit Azure Databricks-Systemprotokollen.
Sicherheitsüberlegungen für die Protokollierung
Databricks-Apps wurden mit den folgenden integrierten Steuerelementen entwickelt, um Datenexfiltration zu verhindern:
- Nur API-Zugriff: Apps können nur über öffentliche Azure Databricks-APIs auf Azure Databricks-Ressourcen zugreifen. Diese APIs können über Systemtabellenprotokolle überwacht werden.
- Verschlüsselte Kommunikation: Der gesamte API-Datenverkehr wird mit TLS 1.2 oder höher verschlüsselt, um eine sichere Datenübertragung zu gewährleisten.
Sicherheitsüberwachung mit Systemtabellen
Azure Databricks erfasst Überwachungsprotokolle für App-bezogene Aktivitäten in der system.access.audit Tabelle. Sie können diese Protokolle abfragen, um Benutzeraktionen, App-Konfigurationsänderungen und Sicherheitsereignisse nachzuverfolgen.
Verwenden Sie Überwachungsprotokolle, um die folgenden allgemeinen Überwachungs- und Sicherheitsszenarien zu unterstützen:
- Nachverfolgen der App-Anmeldeaktivität. Siehe App-Anmeldungen.
- Überwachen von Berechtigungsänderungen. Siehe Berechtigungsänderungen.
- Überwachen der App-Erstellung und -Änderung. Siehe App-Erstellung.
- Analysieren Sie das Benutzerverhalten innerhalb von Apps. Siehe Benutzeraktionen.
Verwenden Sie die folgenden Abfragen, um sicherheitsbezogene Aktivitäten zu überwachen und potenzielle Probleme mit Ihren Apps zu erkennen.
Überwachen von App-Berechtigungsänderungen
Verwenden Sie diese Abfrage, um App-Berechtigungsänderungen zu erkennen:
-- Monitor all app permission modifications in the last 30 days
WITH permission_changes AS (
SELECT
event_date,
workspace_id,
request_params.request_object_id AS app_name,
user_identity.email AS modified_by,
explode(from_json(
request_params.access_control_list,
'array<struct<user_name:string,group_name:string,permission_level:string>>'
)) AS permission
FROM system.access.audit
WHERE action_name = 'changeAppsAcl'
AND event_date >= current_date() - 30
)
SELECT
event_date,
app_name,
modified_by,
permission.user_name,
permission.group_name,
permission.permission_level
FROM permission_changes
ORDER BY event_date DESC
Identifizieren von Apps mit Benutzer-API-Bereichen
Verwenden Sie diese Abfrage, um Apps mit konfigurierten Benutzer-API-Bereichen zu finden:
-- Find apps created or updated in the last 30 days with user API scopes configured
SELECT
event_date,
get_json_object(request_params.app, '$.name') AS app_name,
user_identity.email AS creator_email,
get_json_object(request_params.app, '$.user_api_scopes') AS user_api_scopes
FROM system.access.audit
WHERE
action_name IN ('createApp', 'updateApp')
AND get_json_object(request_params.app, '$.user_api_scopes') IS NOT NULL
AND event_date >= current_date() - INTERVAL 30 DAYS
Nachverfolgen von Benutzerautorisierungsaktionen
Verwenden Sie diese Abfrage zum Auflisten von App-Aktionen, die mit benutzerautorisierung ausgeführt werden:
-- List app actions performed on behalf of users in the last 30 days
WITH obo_events AS (
SELECT
event_date,
workspace_id,
audit_level,
identity_metadata.acting_resource AS app_id, -- OAuth App ID or name
user_identity.email AS user_email, -- Logged-in user
service_name,
action_name
FROM system.access.audit
WHERE event_date >= current_date() - 30
AND identity_metadata.acting_resource IS NOT NULL
)
SELECT
event_date,
app_id,
user_email,
service_name,
action_name,
audit_level,
COUNT(*) AS event_count
FROM obo_events
GROUP BY
event_date, app_id, user_email, service_name, action_name, audit_level
ORDER BY event_date DESC;
Betriebsüberwachung
Verwenden Sie Systemtabellen, um betriebliche Aspekte Ihrer Apps zu überwachen, z. B. Kosten und Ressourcennutzung.
Überwachen der App-Kosten
Überwachen sie die Kosten von Databricks Apps mithilfe der system.billing.usage Tabelle. Verwenden Sie die folgende Abfrage, um genaue Kosteninformationen für Apps pro Tag oder Monat zu erhalten:
-- Get Databricks Apps cost by app per day for the last 30 days
SELECT
us.usage_date,
us.usage_metadata.app_id,
us.usage_metadata.app_name,
SUM(us.usage_quantity) AS dbus,
SUM(us.usage_quantity * lp.pricing.effective_list.default) AS dollars
FROM
system.billing.usage us
LEFT JOIN system.billing.list_prices lp
ON lp.sku_name = us.sku_name
AND us.usage_start_time BETWEEN lp.price_start_time AND COALESCE(lp.price_end_time, NOW())
WHERE
billing_origin_product = 'APPS'
AND us.usage_unit = 'DBU'
AND us.usage_date >= DATE_SUB(NOW(), 30)
GROUP BY ALL
Databricks Apps unterstützt Budgetrichtlinien, um Kosten nachzuverfolgen. Informationen zum Konfigurieren von Budgetrichtlinien finden Sie unter Attributverwendung mit serverlosen Budgetrichtlinien.