Databricks ジョブとクラスターの権限の確認

Databricks ジョブとクラスターの権限を、必要なユーザー、グループ、サービスプリンシパルに限定します。

説明

Databricks ジョブやクラスターの実行・管理権限は、必要な主体にだけ付与してください。Terraform に databricks_permissions がないことだけでは、既存の権限が未設定である、または公開されているとは判断できません。

想定される影響

過剰な権限を持つ主体にジョブやクラスターを変更され、権限の範囲によっては処理するデータにも影響が及ぶおそれがあります。

対処方法

実際の権限を確認し、リソースの種類に応じた最小限の権限を設定してください。自動実行するジョブでは専用のサービスプリンシパルを所有者にすることを検討しますが、ユーザーが所有すること自体は脆弱性ではありません。databricks_permissions の適用は既存の権限を上書きする場合があるため、必要なアクセス権を残してください。

例

この例はサービスプリンシパルをジョブの所有者とし、users グループに閲覧権限を付与します。全ユーザーの閲覧が不要なら、対象グループを限定してください。ジョブの処理内容とサービスプリンシパルの定義は省略しています。

変更前

hcl
resource "databricks_job" "feature_job" {
  name                = "Featurization"
  max_concurrent_runs = 1
}

変更後

hcl
resource "databricks_job" "feature_job" {
  name                = "Featurization"
  max_concurrent_runs = 1
}

resource "databricks_permissions" "feature_job_permissions" {
  job_id = databricks_job.feature_job.id

  access_control {
    group_name       = "users"
    permission_level = "CAN_VIEW"
  }

  access_control {
    service_principal_name = databricks_service_principal.aws_principal.application_id
    permission_level       = "IS_OWNER"
  }
}

参考資料