メインコンテンツまでスキップ

サービスプリンシパルの管理

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

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

注記

このページでは、ワークスペースで ID フェデレーションが有効になっていることを前提としています。これは、ほとんどのワークスペースにとって確実です。 ID フェデレーションのないレガシー ワークスペースについては、 「ID フェデレーションのないレガシー ワークスペース」を参照してください。

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

自動 ID 管理を使用して、 Microsoft Entra ID サービスプリンシパルをMicrosoft Entra ID テナントからDatabricksアカウントに自動的に同期できます。 Databricks Microsoft Entra ID をソースとして使用するため、ユーザーまたはグループ メンバーシップへの変更はすべてDatabricksで尊重されます。

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

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

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

Microsoft Entra ID を使用して自動 ID 管理が有効になっている場合、 Microsoft Entra ID から直接サービスプリンシパルを検索して追加できます。

  1. アカウント管理者として、アカウントコンソールにログインします。
  2. サイドバーで、[ ユーザー管理 ] をクリックします。
  3. [ サービスプリンシパル ] タブで、[ サービスプリンシパルの追加 ] をクリックします。
  4. サービスプリンシパルの名前を入力します。
  5. [ 追加 ] をクリックします。

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

注記

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

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

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

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

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

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

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

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

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

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

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

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

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

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

非アクティブ化の影響:

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

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

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

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

例えば:

Bash
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:

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

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

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

重要

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

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

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

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

自動ID管理が有効になっている場合、Microsoft Entra IDに登録されているサービスプリンシパルがアカウントコンソールに表示されます。それらのステータスは 「非アクティブ:使用なし」 と表示され、サービスプリンシパルリストから削除することはできません。それらはアカウント内でアクティブではなく、利用限度額にもカウントされません。

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

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

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

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

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

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

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

アカウントおよびワークスペースの管理者は、ワークスペース割り当てAPI使用して、サービスプリンシパルをワークスペースに割り当てることができます。 ワークスペース割り当てAPI 、 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を使用して、サービスプリンシパルをワークスペースに割り当てることができます。

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

サービスプリンシパルは、DatabricksAPIs OAuthトークンまたは Personal Access トークン (PAT) を使用して に対して認証できます。それぞれに異なるスコープとセキュリティに関する考慮事項があります。

重要

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

  • Databricks OAuth トークン

    • アカウントレベルとワークスペースレベルの両方の APIに対して認証します。
    • アカウント レベルで作成された OAuth トークンは、アカウントとワークスペースの両方にアクセスできます API.ワークスペース レベルで作成された OAuth トークンのスコープは、ワークスペース API.
    • OAuth は、セキュリティの強化と自動トークン管理により、ほとんどのシナリオで推奨されます。
    • 設定手順については、サービスプリンシパルアクセスをOAuthでDatabricksに許可するを参照してください。
  • パーソナルアクセストークン