メインコンテンツまでスキップ

Databricks Appsのロギングとモニタリング

効果的なログ記録と監視は、 Databricks Appsのセキュリティイベントを検出して対応するのに役立ちます。 アプリは、アプリケーションレベルのログとプラットフォーム監査ログの両方を生成し、診断、パフォーマンス追跡、セキュリティ分析に使用できます。

アプリケーションログ

注記

Databricks Apps UI またはアプリの URL でログを利用できるようにするには、アプリで出力を stdoutstderrに書き込む必要があります。

アプリケーションログには、次の方法でアクセスできます。

  • アプリ UI : アプリの詳細ページで、[ ログ ] タブをクリックして、標準出力とエラーを表示します。詳細については、「 アプリの詳細を表示する」を参照してください。
  • ダイレクト URL : アプリの URL に /logz を追加します。
    たとえば、アプリの URL が https://my-app-1234567890.my-instance.databricksapps.comの場合、ログは
    https://my-app-1234567890.my-instance.databricksapps.com/logz.

推奨されるログ記録の方法

外部モニタリングおよびリアルタイム アラート システムとの統合を有効にするには:

  • ログをJSONまたはその他の機械解析可能な形式でフォーマットします。

  • セキュリティ関連のイベントをコンテキストと共にログに記録します。

    • 認証および承認イベント (ユーザー ID と結果を含む)
    • データアクセスの詳細 (カタログ名、スキーマ名、テーブル名など)
    • セキュリティ関連のエラー (無効なトークン、アクセス許可の拒否、疑わしいアクティビティなど)
  • ログを外部システムに転送します。Application Performance モニタリング (APM) またはログ集約ツールと統合して、リアルタイム アラート、セキュリティ インシデント対応、使用状況とパフォーマンスのアナリティクス、 Databricks システム ログとの相関をサポートします。

システムテーブルを含む監査ログ

Databricks は、 system.access.audit テーブル内のアプリ関連のアクティビティの監査ログをキャプチャします。これらのログをクエリして、ユーザー アクション、アプリ構成の変更、セキュリティ イベントを追跡できます。

監査ログを使用して、次の一般的な監視とセキュリティのシナリオをサポートします。

サンプル クエリ

次のクエリは、アプリのアクセス許可の変更を検出します。

SQL
-- 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

次のクエリは、ユーザー API スコープを持つアプリを識別します。

SQL
-- 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

ログ記録のセキュリティに関する考慮事項

Databricks アプリは、データ流出を防ぐために、次の組み込みコントロールを使用して設計されています。

  • API のみのアクセス:Databricks アプリは、パブリック を通じてのみ リソースにアクセスできます。DatabricksAPIsこれらの APIs は、システムテーブル ログを通じて監査できます。
  • 暗号化通信 : すべての API トラフィックは TLS 1.2 以降を使用して暗号化され、安全なデータ転送が保証されます。