ワークスペース管理者を制限する

デフォルトにより、ワークスペース管理者はジョブの所有者を自分のワークスペース内の任意のユーザーまたはサービスプリンシパルに変更できます。 ワークスペース管理者は、ワークスペースのユーザーロールを持つサービスプリンシパルまたは任意のユーザーに対して、ジョブ実行の設定をサービスプリンシパルに変更できます。

ワークスペース管理者は、自分のワークスペース内のサービス プリンシパルに代わって個人用のアクセストークンを作成することもできます。

アカウント管理者は、 RestrictWorkspaceAdminsというワークスペース設定を構成して、ワークスペース管理者がジョブ所有者を自分自身にのみ変更し、ジョブ実行設定を自分がユーザーロールを持つサービスプリンシパルに変更することを制限できます。

また、この設定により、ワークスペース管理者は、サービスプリンシパル ユーザー ロールを持つサービスプリンシパルの個人用アクセストークンのみを作成できるように制限されます。

RestrictWorkspaceAdmins設定を有効にするには、アカウント管理者であり、制限するワークスペースのメンバーである必要があります。 次の例では、Databricks CLI v0.215.0 を使用します。

RestrictWorkspaceAdmins設定では、一貫性を確保するためにetagフィールドを使用します。設定を有効または無効にするには、まず GET を発行して、応答として etag を受信します。 etagを使用して設定を更新できます。例えば:

databricks settings restrict-workspace-admins get

応答例:

{
  "etag":"<etag>",
  "restrict_workspace_admins": {
    "status":"ALLOW_ALL"
  },
  "setting_name":"default"
}

応答本文から etag フィールドをコピーし、それを使用して RestrictWorkspaceAdmins 設定を更新します。 例えば:

databricks settings restrict-workspace-admins update --json '{
  "setting": {
    "setting_name": "default",
    "restrict_workspace_admins": {
      "status": "RESTRICT_TOKENS_AND_JOB_RUN_AS"
    },
    "etag": "<etag>"
  },
  "allow_missing": true,
  "field_mask": "restrict_workspace_admins.status"
}'

応答例:

{
  "etag":"<response-etag>",
  "restrict_workspace_admins": {
    "status":"RESTRICT_TOKENS_AND_JOB_RUN_AS"
  },
  "setting_name":"default"
}

RestrictWorkspaceAdminsを無効にするには、ステータスを ALLOW_ALLに設定します。

Restrict ワークスペース Admins APIまたはDatabricks Terraformプロバイダーを使用することもできます。