次の方法で共有


サービス プリンシパルを管理する

このページでは、Azure Databricks アカウントとワークスペースのサービス プリンシパルを管理する方法について説明します。

サービス プリンシパルの概要については、「サービス プリンシパル」を参照してください。

Microsoft Entra ID テナントから Azure Databricks アカウントにサービス プリンシパルを同期する

Microsoft Entra ID サービス プリンシパルは、自動 ID 管理 (パブリック プレビュー) を使用して、Microsoft Entra ID テナントから Azure Databricks アカウントに自動的に同期できます。 Databricks はソースとして Microsoft Entra ID を使用するため、ユーザーまたはグループ メンバーシップに対する変更は Azure Databricks で尊重されます。 自動 ID 管理を有効にするには、「 Microsoft Entra ID からユーザーとグループを自動的に同期する」を参照してください。

SCIM プロビジョニングでは、サービス プリンシパルの同期はサポートされていません。

アカウントにサービス プリンシパルを追加する

アカウント管理者とワークスペース管理者は、アカウント コンソールまたはワークスペース管理者設定ページを使用して、Azure Databricks アカウントにサービス プリンシパルを追加できます。

サービス プリンシパルは、Azure Databricks 内に作成することも、既存の Microsoft Entra ID サービス プリンシパルからリンクすることもできます。 Databricks と Microsoft Entra ID サービス プリンシパルを参照してください。 自動 ID 管理が有効になっている場合は、Microsoft Entra ID から直接サービス プリンシパルを検索して追加できます。

アカウント管理者とワークスペース管理者は、アカウント コンソールまたはワークスペース管理者設定ページを使用して、Azure Databricks アカウントにサービス プリンシパルを追加できます。

アカウント コンソール

  1. アカウント管理者として、 アカウント コンソールにログインします。
  2. サイドバーで、[ ユーザー管理] をクリックします。
  3. [ サービス プリンシパル ] タブで、[ サービス プリンシパルの追加] をクリックします。
  4. [ 管理] で、[ Databricks マネージド ] または [Microsoft Entra ID マネージド] を選択します。
  5. Microsoft Entra ID managed を選択した場合は、Microsoft Entra アプリケーション ID の下に、サービス プリンシパルのアプリケーション (クライアント) ID を貼り付けます。
  6. サービス プリンシパルの名前を入力します。
  7. [ 追加] をクリックします。

ワークスペース管理者設定

  1. ワークスペース管理者として、Azure Databricks ワークスペースにログインします。

  2. Azure Databricks ワークスペースの上部バーにあるユーザー名をクリックし、[ 設定] を選択します。

  3. [ ID とアクセス ] タブをクリックします。

  4. サービス プリンシパルの横にある管理をクリックします。

  5. サービスプリンシパルの追加をクリックします。

  6. [ 新規追加] をクリックします。

  7. Databricks マネージドまたは Microsoft Entra ID マネージドを選択します。 Microsoft Entra ID managed を選択した場合は、サービス プリンシパルのアプリケーション (クライアント) ID を貼り付けます。

  8. サービス プリンシパルの名前を入力します。

  9. [ 追加] をクリックします。

アカウント レベルの管理者ロールをサービス プリンシパルに割り当てる

[ サービス プリンシパル の詳細] ページには、サービス プリンシパルに直接割り当てられているロールのみが表示されます。 グループ メンバーシップを通じて継承されたロールはアクティブですが、そのトグルは UI で有効として表示されません。

  1. アカウント管理者として、 アカウント コンソールにログインします。
  2. サイドバーで、[ ユーザー管理] をクリックします。
  3. [ サービス プリンシパル ] タブで、ユーザー名を見つけてクリックします。
  4. [ ロール ] タブで、1 つ以上のロールを選択します。

ワークスペースにサービス プリンシパルを割り当てる

アカウント管理者とワークスペース管理者は、アカウント コンソールまたはワークスペース管理者設定ページを使用して、Azure Databricks ワークスペースにサービス プリンシパルを割り当てることができます。

アカウント コンソール

アカウント コンソールを使用してワークスペースにユーザーを追加するには、ID フェデレーションに対してワークスペースを有効にする必要があります。

  1. アカウント管理者として、 アカウント コンソールにログインします。
  2. サイドバーで[ ワークスペース]をクリックします。
  3. ワークスペース名をクリックします。
  4. [ アクセス許可 ] タブで、[ アクセス許可の追加] をクリックします。
  5. サービス プリンシパルを検索して選択し、アクセス許可レベル (ワークスペース ユーザー または 管理者) を割り当てて 、[保存] をクリックします。

ワークスペース管理者設定

  1. ワークスペース管理者として、Azure Databricks ワークスペースにログインします。
  2. Azure Databricks ワークスペースの上部バーにあるユーザー名をクリックし、[ 設定] を選択します。
  3. [ ID とアクセス ] タブをクリックします。
  4. サービス プリンシパルの横にある管理をクリックします。
  5. サービスプリンシパルの追加をクリックします。
  6. 既存のサービス プリンシパルを選択します。
  7. [ 追加] をクリックします。

ワークスペースからサービス プリンシパルを削除する

アカウント管理者とワークスペース管理者は、アカウント コンソールまたはワークスペース管理者設定ページを使用して、Azure Databricks ワークスペースからサービス プリンシパルを削除できます。

サービス プリンシパルがワークスペースから削除されると、そのサービス プリンシパルからそのワークスペースにアクセスできなくなりますが、アクセス許可はそのサービス プリンシパルに維持されます。 後でそのサービス プリンシパルがそのワークスペースに再び追加されると、以前のアクセス許可が回復します。

アカウント コンソール

アカウント コンソールを使用してワークスペースからサービス プリンシパルを削除するには、ワークスペースで ID フェデレーションが有効でなければなりません。

  1. アカウント管理者として、アカウント コンソールにログインします
  2. サイドバーで[ ワークスペース]をクリックします。
  3. ワークスペース名をクリックします。
  4. [ アクセス許可 ] タブで、サービス プリンシパルを見つけます。
  5. Kebab メニュー アイコン をクリックします。サービス プリンシパル行の右端にある kebab メニューをクリックし、[削除] を選択します。
  6. 確認ダイアログで、[ 削除] をクリックします。

ワークスペース管理者設定

サービス プリンシパルがワークスペースから削除されると、そのサービス プリンシパルからそのワークスペースにアクセスできなくなりますが、アクセス許可はそのサービス プリンシパルに維持されます。 後でそのサービス プリンシパルがワークスペースに再び追加されると、以前のアクセス許可が回復します。

  1. ワークスペース管理者として、Azure Databricks ワークスペースにログインします。
  2. Azure Databricks ワークスペースの上部バーにあるユーザー名をクリックし、[ 設定] を選択します。
  3. [ ID とアクセス ] タブをクリックします。
  4. サービス プリンシパルの横にある管理をクリックします。
  5. サービス プリンシパルを選択します。
  6. 右上隅の [ 削除] をクリックします。
  7. [ 削除 ] をクリックして確定します。

ワークスペース管理者ロールをサービス プリンシパルに割り当てる

  1. ワークスペース管理者として、Azure Databricks ワークスペースにログインします。
  2. Azure Databricks ワークスペースの上部バーにあるユーザー名をクリックし、[ 設定] を選択します。
  3. [ ID とアクセス ] タブをクリックします。
  4. [ グループ] の横にある [ 管理] をクリックします。
  5. admins システム グループを選択します。
  6. [ メンバーの追加] をクリックします。
  7. サービス プリンシパルを選択し、[ 確認] をクリックします。

サービス プリンシパルからワークスペース管理者ロールを削除するには、管理者グループからサービス プリンシパルを削除します。

サービス プリンシパルを非アクティブ化する

サービス プリンシパルは、アカウント レベルまたはワークスペース レベルで非アクティブ化できます。 非アクティブ化により、サービス プリンシパルは Databricks API を認証およびアクセスできなくなりますが、そのアクセス許可やオブジェクトは削除されません。 これは、破壊的な作用である除去に好ましい。

非アクティブ化の影響:

  • サービス プリンシパルは、Databricks API を認証またはアクセスできません。
  • サービス プリンシパルによって生成されたトークンを使用するアプリケーションまたはスクリプトは、Databricks API にアクセスできなくなります。 トークンは残りますが、サービス プリンシパルが非アクティブである間は認証に使用できません。
  • サービス プリンシパルが所有するコンピューティング リソースは引き続き実行されます。
  • サービス プリンシパルによって作成されたスケジュール済みジョブは、新しい所有者に割り当てられない限り失敗します。

再アクティブ化すると、サービス プリンシパルは同じアクセス許可でアクセスを回復します。

アカウント レベルの非アクティブ化

アカウント管理者は、Azure Databricks アカウント全体でサービス プリンシパルを非アクティブ化できます。 サービス プリンシパルがアカウント レベルで非アクティブ化されている場合、Azure Databricks アカウントまたはアカウント内のワークスペースに対して認証を行うことはできません。

アカウント コンソールを使用してサービス プリンシパルを非アクティブ化することはできません。 代わりに、 アカウント サービス プリンシパル API を使用します。

例えば次が挙げられます。

curl --netrc -X PATCH \
https://${DATABRICKS_HOST}/api/2.1/accounts/{account_id}/scim/v2/ServicePrincipals/{id} \
--header 'Content-type: application/scim+json' \
--data @update-sp.json \
| jq .

update-sp.json:

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "replace",
      "path": "active",
      "value": [
        {
          "value": "false"
        }
      ]
    }
  ]
}

ワークスペース レベルの非アクティブ化

サービス プリンシパルがワークスペース レベルで非アクティブ化されている場合、その特定のワークスペースに対して認証することはできませんが、アカウントとアカウント内の他のワークスペースに対して認証を行うことができます。

  1. ワークスペース管理者として、Azure Databricks ワークスペースにログインします。
  2. Azure Databricks ワークスペースの上部バーにあるユーザー名をクリックし、[ 設定] を選択します。
  3. [ ID とアクセス ] タブをクリックします。
  4. サービス プリンシパルの横にある管理をクリックします。
  5. 非アクティブ化するサービス プリンシパルを選択します。
  6. [ 状態] で [ アクティブ] をオフにします

サービス プリンシパルをアクティブに設定するには、同じ手順を実行しますが、代わりにチェック ボックスをオンにします。

Azure Databricks アカウントからサービス プリンシパルを削除する

アカウント管理者は、Azure Databricks アカウントからサービス プリンシパルを削除できます。 これをワークスペース管理者が行うことはできません。 アカウントからサービス プリンシパルを削除すると、そのプリンシパルはワークスペースからも削除されます。

重要

アカウントからサービス プリンシパルを削除すると、ID フェデレーションが有効になっているかどうかに関係なく、そのサービス プリンシパルはワークスペースからも削除されます。 アカウントレベルのサービス プリンシパルの削除は、それらによるアカウント内のすべてのワークスペースへのアクセスを禁止する場合を除き、行わないことをお勧めします。 サービス プリンシパルを削除した場合の次の結果に注意してください。

  • サービス プリンシパルによって生成されたトークンを使用するアプリケーションまたはスクリプトは、Databricks API にアクセスできなくなります
  • サービス プリンシパルによって所有されるジョブは失敗します
  • サービス プリンシパルによって所有されるコンピューティングは停止します
  • サービス プリンシパルによって作成され、"所有者として実行" 資格情報を使用して共有されるクエリまたはダッシュボードは、共有が失敗しないようにするには、新しい所有者に割り当てる必要があります

Microsoft Entra ID のサービス プリンシパルがアカウントから削除されると、そのサービス プリンシパルからそのアカウントまたはワークスペースにアクセスできなくなりますが、アクセス許可はそのサービス プリンシパルに維持されます。 後でそのサービス プリンシパルがそのアカウントに再び追加されると、以前のアクセス許可が回復します。

アカウント コンソールを使用してサービス プリンシパルを削除するには、次の操作を行います。

  1. アカウント管理者として、アカウント コンソールにログインします。
  2. サイドバーで、[ ユーザー管理] をクリックします。
  3. [ サービス プリンシパル ] タブで、ユーザー名を見つけてクリックします。
  4. [ プリンシパル情報 ] タブで、 Kebab メニュー アイコン をクリックします。右上隅にある kebab メニューをクリックし、[ 削除] を選択します。
  5. 確認ダイアログ ボックスで、[削除の 確認] をクリックします。

自動 ID 管理を有効にすると、Microsoft Entra ID 内のサービス プリンシパルがアカウント コンソールに表示されます。 状態は非アクティブ: 使用なしとして表示され、サービス プリンシパルの一覧から削除することはできません。 これらはアカウントでアクティブではなく、制限に対してカウントされません。

API を使用してサービス プリンシパルを管理する

アカウント管理者とワークスペース管理者は、Databricks API を使用して、Azure Databricks のアカウントとワークスペース内のサービス プリンシパルを管理できます。 API を使用してサービス プリンシパルのロールを管理するには、 Databricks CLI を使用したサービス プリンシパル ロールの管理に関するページを参照してください。

API を使用してアカウント内のサービス プリンシパルを管理する

管理者は、Account Service Principals API を使用して、Azure Databricks アカウントでサービス プリンシパルを追加および管理できます。 アカウント管理者とワークスペース管理者は、別のエンドポイント URL を使用して API を呼び出します。

  • アカウント管理者は {account-domain}/api/2.1/accounts/{account_id}/scim/v2/ を使用します。
  • ワークスペース管理者は {workspace-domain}/api/2.0/account/scim/v2/ を使用します。

詳細については、 アカウント サービス プリンシパル API を参照してください。

API を使用してアカウント内のサービス プリンシパルを管理する

アカウント管理者とワークスペース管理者は、Workspace Assignment API を使用して、ID フェデレーションが有効なワークスペースにサービス プリンシパルを割り当てることができます。 Workspace Assignment API は、Azure Databricks のアカウントとワークスペースでサポートされています。

  • アカウント管理者は {account-domain}/api/2.0/accounts/{account_id}/workspaces/{workspace_id}/permissionassignments を使用します。
  • ワークスペース管理者は {workspace-domain}/api/2.0/preview/permissionassignments/principals/{principal_id} を使用します。

ワークスペース割り当て API を参照してください。

ワークスペースで ID フェデレーションが有効でない場合、ワークスペース管理者はワークスペース レベルの API を使用して、ワークスペースにサービス プリンシパルを割り当てることができます。 ワークスペース サービス プリンシパル API を参照してください。

サービス プリンシパルのトークンを管理する

サービス プリンシパルは、OAuth トークンまたは個人用アクセス トークン (AT) を使用して Databricks API に対して認証を行うことができます。それぞれのスコープとセキュリティに関する考慮事項が異なります。

重要

Databricks では、セキュリティとライフサイクル管理を強化するために、可能な限りサービス プリンシパル認証に OAuth トークンを使用することをお勧めします。 使用するユース ケースで OAuth が使用できない場合にのみ、AT を使用します。

  • Azure Databricks OAuth トークン

    • アカウント レベルの API とワークスペース レベルの API の両方に対して認証します。
    • アカウント レベルで作成された OAuth トークンは、アカウント API とワークスペース API の両方にアクセスできます。 ワークスペース レベルで作成された OAuth トークンのスコープは、ワークスペース API です。
    • セキュリティが強化され、トークンの自動管理が強化されるため、ほとんどのシナリオで OAuth が推奨されます。
    • セットアップ手順については、「 OAuth を使用してサービス プリンシパルを使用して Azure Databricks リソースへの無人アクセスを承認する」を参照してください。
  • 個人用アクセス トークン

Microsoft マネージド サービス ID (MSI) または Microsoft Entra ID アクセス トークンの操作の詳細については、 それぞれ Azure マネージド ID 認証MS Entra サービス プリンシパル認証 に関するページを参照してください。