説明
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"
}
}