Databricks 診断ログ収集の確認

必要な Databricks 監査イベントを収集し、ログ送信先のアクセス権と保持期間を管理してください。

説明

Databricks では、データ処理、ノートブックの実行、クラスターの変更が行われます。必要な活動記録がなければ、事故の調査や権限の悪用の追跡が難しくなるおそれがあります。

Azure の診断設定では、ワークスペースで利用できるカテゴリを選び、外部の送信先へログを送ります。監査ログのシステムテーブルとは収集範囲が異なるため、必要なイベントをどの経路で取得できるか確認する必要があります。

想定される影響

  • クラスターを変更した人や、ジョブを実行した主体を確認しにくくなる場合があります。
  • 監査ログには機密情報が含まれる場合があるため、送信先のアクセス権が広いと別の情報漏えいリスクが生じます。

対処方法

  • ワークスペースに診断設定を関連付け、認証、ファイル操作、クラスター、ノートブック、ジョブなど調査に必要なカテゴリを選んでください。利用可能なカテゴリと Premium 階層の要件を確認してください。
  • Log Analytics、Storage Account、Event Hub など承認済みの送信先を設定してください。ログの到着、アクセス権、保持期間を確認してください。
  • 必要なアカウント単位のイベントや診断設定では取得できないイベントについては、監査ログのシステムテーブルなど、対応する収集経路を別途設定してください。

例

ワークスペースと、主要カテゴリの診断設定を比較する例です。参照するリソースグループと Log Analytics ワークスペースは別途用意してください。

変更前

hcl
resource "azurerm_databricks_workspace" "example" {
  name                = "secure-databricks-ws"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  sku                 = "premium"
}

ワークスペースだけを定義しています。ほかの設定や監査ログの収集経路も確認してください。

変更後

hcl
resource "azurerm_monitor_diagnostic_setting" "example" {
  name                       = "databricks-diagnostic-logs"
  target_resource_id         = azurerm_databricks_workspace.example.id
  log_analytics_workspace_id = azurerm_log_analytics_workspace.example.id

  enabled_log {
    category = "accounts"
  }

  enabled_log {
    category = "Filesystem"
  }

  enabled_log {
    category = "clusters"
  }

  enabled_log {
    category = "notebook"
  }

  enabled_log {
    category = "jobs"
  }
}

resource "azurerm_databricks_workspace" "example" {
  name                = "secure-databricks-ws"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  sku                 = "premium"
}

五つのカテゴリを Log Analytics に送ります。この一覧ですべての監査イベントを網羅するわけではないため、調査に必要な範囲と実際の受信を確認してください。

参考資料