サービスプリンシパルの管理
このページでは、 Databricks アカウントとワークスペースのサービスプリンシパルを管理する方法について説明します。
サービスプリンシパルの概要については、「 サービスプリンシパル」を参照してください。
サービスプリンシパルをアカウントに追加する
アカウント 管理者とワークスペース 管理者は、アカウント コンソールまたはワークスペース管理者設定ページを使用して、 Databricks アカウントにサービスプリンシパルを追加できます。
- Account console
- Workspace admin settings
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ サービスプリンシパル ] タブで、[ サービスプリンシパルの追加 ] をクリックします。
- サービスプリンシパルの名前を入力します。
- [ 追加 ] をクリックします。
- ワークスペース管理者として、Databrickワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- サービスプリンシパル の横にある [ 管理 ] をクリックします。
- [ サービスプリンシパルの追加 ] をクリックします。
- [ 新規追加 ] をクリックします。
- サービスプリンシパルの名前を入力します。
- [ 追加 ] をクリックします。
アカウントレベルの管理者ロールをサービスプリンシパルに割り当てる
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ サービスプリンシパル ] タブで、ユーザー名を見つけてクリックします。
- [ロール] タブで、1 つ以上のロールを選択します。
サービスプリンシパルをワークスペースに割り当てる
アカウント 管理者 と ワークスペース 管理者は、アカウント コンソールまたはワークスペース 管理者 設定ページを使用して、サービスプリンシパルを Databricks ワークスペースに割り当てることができます。
- Account console
- Workspace admin settings
アカウントコンソールを使用してワークスペースにユーザーを追加するには、ワークスペースでIDフェデレーションが有効になっている必要があります。
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、 ワークスペース をクリックします。
- ワークスペース名をクリックします。
- [ 権限 ] タブで、[ 権限を追加 ] をクリックします。
- サービスプリンシパルを検索して選択し、権限レベル(ワークスペース ユーザー または 管理者 )を割り当て、[ 保存 ] をクリックします。
- ワークスペース管理者として、Databrickワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- サービスプリンシパル の横にある [ 管理 ] をクリックします。
- [ サービスプリンシパルの追加 ] をクリックします。
- 既存のサービスプリンシパルを選択します。
- [ 追加 ] をクリックします。
ワークスペースからサービスプリンシパルを削除する
アカウント 管理者 と ワークスペース 管理者は、アカウント コンソールまたはワークスペース管理者設定ページを使用して、 Databricks ワークスペースからサービスプリンシパルを削除できます。
サービスプリンシパルがワークスペースから削除されると、サービスプリンシパルはワークスペースにアクセスできなくなりますが、サービスプリンシパルの権限は維持されます。 サービスプリンシパルが後でワークスペースに再度追加された場合、以前のアクセス許可が回復します。
- Account console
- Workspace admin settings
アカウントコンソールを使用してワークスペースからサービスプリンシパルを削除するには、ワークスペースで ID フェデレーションを有効にする必要があります。
- アカウント管理者として、アカウントコンソールにログインします
- サイドバーで、 ワークスペース をクリックします。
- ワークスペース名をクリックします。
- [ 権限 ] タブで、サービスプリンシパルを見つけます。
- サービスプリンシパル行の右端にある
ケバブメニューをクリックし、[ 削除 ] を選択します。
- 確認ダイアログで、 削除の確認 をクリックします。
サービスプリンシパルがワークスペースから削除されると、サービスプリンシパルはワークスペースにアクセスできなくなりますが、サービスプリンシパルの権限は維持されます。 サービスプリンシパルが後でワークスペースに再度追加された場合、以前のアクセス許可が回復します。
- ワークスペース管理者として、Databrickワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- サービスプリンシパル の横にある [ 管理 ] をクリックします。
- サービスプリンシパルを選択します。
- 右上隅の 削除 をクリックします。
- 削除 をクリックして確定します。
ワークスペース 管理者 ロールをサービスプリンシパルに割り当てる
- ワークスペース管理者として、Databrickワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- [グループ] の横にある [管理] をクリックします。
admins
システムグループを選択します。- [ メンバーを追加 ]をクリックします。
- サービスプリンシパルを選択し、[ 確定 ] をクリックします。
サービスプリンシパルからワークスペース管理者ロールを削除するには、管理者グループからサービスプリンシパルを削除します。
サービスプリンシパルの非アクティブ化
サービスプリンシパルは、アカウントレベルまたはワークスペースレベルで非アクティブ化できます。 非アクティブ化により、サービスプリンシパルは Databricks APIsの認証とアクセスを防止しますが、そのアクセス許可やオブジェクトは削除されません。 これは、破壊的な行動である除去よりも好ましいです。
非アクティブ化の影響:
- サービスプリンシパルは、 Databricks APIsを認証またはアクセスできません。
- サービスプリンシパルによって生成されたトークンを使用するアプリケーションまたはスクリプトは、 Databricks APIにアクセスできなくなりました。 トークンは残りますが、サービスプリンシパルが非アクティブ化されている間は認証には使用できません。
- サービスプリンシパルが所有するコンピュート リソースは、引き続き実行されます。
- サービスプリンシパルによって作成されたスケジュールされたジョブは、新しい所有者に割り当てられない限り失敗します。
再アクティブ化すると、サービスプリンシパルは同じアクセス許可でアクセスを取り戻します。
- Account level deactivation
- Workspace level deactivation
アカウント 管理者は、 Databricks アカウント全体でサービスプリンシパルを無効にすることができます。 サービスプリンシパルがアカウントレベルで非アクティブ化されると、 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"
}
]
}
]
}
サービスプリンシパルがワークスペースレベルで非アクティブ化されている場合、その特定のワークスペースに対して認証することはできませんが、アカウント内のアカウントや他のワークスペースに対しては引き続き認証できます。
- ワークスペース管理者として、Databrickワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- サービスプリンシパル の横にある [ 管理 ] をクリックします。
- 非アクティブ化するサービスプリンシパルを選択します。
- ステータス で アクティブ のチェックを外します。
サービスプリンシパルをアクティブに設定するには、同じ手順を実行しますが、代わりにチェックボックスにチェックを入れます。
Databricksアカウントからサービスプリンシパルを削除する
アカウント管理者は、サービスプリンシパルをDatabricksアカウントから削除できます。ワークスペース管理者にはその権限がありません。サービスプリンシパルをアカウントから削除すると、そのプリンシパルはワークスペースからも削除されます。
サービスプリンシパルをアカウントから削除すると、ID フェデレーションが有効になっているかどうかに関係なく、そのサービスプリンシパルもワークスペースから削除されます。 アカウントレベルのサービスプリンシパルは、アカウント内のすべてのワークスペースへのアクセスを失う場合を除き、削除しないことをお勧めします。サービスプリンシパルを削除すると、次の結果が発生することに注意してください。
- サービスプリンシパルによって生成されたトークンを使用するアプリケーションまたはスクリプトは、Databricks APIにアクセスできなくなりました
- サービスプリンシパルが所有するジョブが失敗する
- サービスプリンシパル STOP が所有するコンピュート
- サービスプリンシパルによって作成され、所有者として実行資格情報を使用して共有されたクエリまたはダッシュボードは、共有が失敗するのを防ぐために、新しい所有者に割り当てる必要があります
アカウントコンソールを使用してサービスプリンシパルを削除するには、次の操作を行います。
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ サービスプリンシパル ] タブで、ユーザー名を見つけてクリックします。
- [ プリンシパル情報 ] タブで、右上隅にある
ケバブメニューをクリックし、[ 削除 ] を選択します。
- 確認ダイアログボックスで、[ 削除を確認 ] をクリックします。
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 を使用して、ID フェデレーションが有効になっているワークスペースにサービスプリンシパルを割り当てることができます。 ワークスペースの割り当て 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 フェデレーションが有効になっていない場合、ワークスペース管理者はワークスペース レベルの APIs を使用して、サービスプリンシパルをワークスペースに割り当てることができます。 ワークスペース サービスプリンシパル APIを参照してください。
サービスプリンシパルのトークンを管理する
サービスプリンシパルは、OAuthトークンまたは個人用アクセストークンを使用してDatabricks APIに対して認証できます。それぞれに異なるスコープとセキュリティに関する考慮事項があります。
-
Databricks OAuth トークン
- アカウントレベルとワークスペースレベルの両方の APIに対して認証します。
- アカウント レベルで作成された OAuth トークンは、アカウントとワークスペースの両方にアクセスできます APIs.ワークスペース レベルで作成された OAuth トークンのスコープは、ワークスペース APIs.
- OAuth は、セキュリティの強化と自動トークン管理により、ほとんどのシナリオで推奨されます。
- セットアップ手順については、「OAuthを使用してサービスプリンシパルを使用してDatabricks リソースへの無人アクセスを承認する」を参照してください。
-
パーソナルアクセストークン
- ワークスペースレベルの APIに対してのみ認証します。
- Databricks では、OAuth がサポートされていない場合にのみ PAT を使用することをお勧めします。
- 詳細については、「Databricks個人用アクセス トークン認証」を参照してください。
Databricks では OAuth セキュリティとライフサイクル管理を向上させるために、可能な限りサービスプリンシパル認証にトークンを使用することをお勧めします。 PATは、OAuthがユースケースで使用できない場合にのみ使用してください。