グループの管理
このページでは、Databricks アカウントとワークスペースのグループを管理する方法について説明します。
グループの概要については、「 グループ」を参照してください。
このページでは、ワークスペースで ID フェデレーションが有効になっていることを前提としています。これは、ほとんどのワークスペースにとって確実です。 ID フェデレーションのないレガシー ワークスペースについては、 「ID フェデレーションのないレガシー ワークスペース」を参照してください。
ID プロバイダーから Databricks アカウントにグループを同期する
自動 ID 管理またはSCIMプロビジョニング コネクタを使用して、グループを ID プロバイダー (IdP) からDatabricksアカウントに同期できます。
自動ID管理 により、お客様のIDプロバイダーからユーザー、Service Principal、およびグループをDatabricksに追加できます。Databricksは、お客様のIDプロバイダーを記録のソースとして使用するため、ユーザーまたはgroupメンバーシップへの変更はDatabricksに反映されます。自動ID管理はネストされたグループをサポートします。詳細については、自動ID管理を参照してください。
SCIMプロビジョニングを 使用すると、グループをアイデンティティ プロバイダー (IdP) からDatabricksアカウントに同期できます。 手順については、 「ユーザーとグループをDatabricksアカウントに同期する」を参照してください。
アカウントにグループを追加する
アカウント 管理者とワークスペース 管理者は、アカウント コンソールまたはワークスペース admin 設定ページを使用して、 Databricks アカウントにグループ を追加できます。
- Account console
- Workspace admin settings
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ グループ ] タブで、[ グループの追加 ] をクリックします。
- グループの名前を入力します。
- 確認 をクリックします。
- プロンプトが表示されたら、ユーザー、サービスプリンシパル、およびグループをグループに追加します。
- ワークスペース管理者として、Databricksワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- [グループ] の横にある [管理] をクリックします。
- [ グループを追加 ]をクリックします。
- [ 新規追加 ] をクリックします。
- グループの名前を入力し、資格を選択してください。
- [ 追加 ] をクリックします。
グループにメンバーを追加する
アカウント 管理者とワークスペース 管理者は、アカウント コンソールまたはワークスペース admin 設定ページを使用して、 Databricks アカウントにグループ を追加できます。 ワークスペース管理者ではないグループ マネージャーは、アカウント グループ APIを使用してグループ メンバーシップを管理する必要があります。
外部グループを ID プロバイダと同期させるために、デフォルトではアカウントコンソールで外部グループのメンバーシップを管理することはできません。Databricks UI から外部グループ メンバーシップを更新するには、アカウント管理者がアカウント コンソールのプレビュー ページで Immutable external グループ プレビュー を無効にすることができます。自動 ID 管理を使用して管理されている外部グループは、不変の外部グループのプレビューが無効になっている場合でも、Databricks で更新することはできません。
- Account console
- Workspace admin settings
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ グループ ] タブで、更新するグループを選択します。
- [ メンバーを追加 ]をクリックします。
- 追加したいユーザー、グループ、サービスプリンシパルを検索し、選択します。
- [ 追加 ] をクリックします。
グループを更新してから、グループ・メンバーシップがすべてのシステムに完全に伝播されるまでに、数分の遅延があります。
子グループを admins グループに追加することはできません。ワークスペース・ローカル・グループまたはシステム・グループをアカウント・グループのメンバーとして追加することはできません。
- ワークスペース管理者として、Databricksワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- [グループ] の横にある [管理] をクリックします。
- 更新するグループを選択します。グループを更新するには、そのグループに対する管理権限が必要です。
- [ メンバー ] タブで、[ メンバーの追加 ] をクリックします。
- ダイアログで、追加するユーザー、サービスプリンシパル、およびグループを参照または検索し、それらを選択します。
- 確認 をクリックします。
グループの名前を変更する
アカウント 管理者はアカウント コンソールを使用してグループの名前を更新でき、グループ マネージャーは アカウント グループ APIを使用してグループの名前を更新できます。 外部グループを ID プロバイダーと同期させるために、デフォルトではアカウントコンソールで外部グループの名前を更新することはできません。
- Account console
- Account Groups API
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ グループ ] タブで、更新するグループを選択します。
- [ グループ情報 ]をクリックします。
- [ 名前 ]で名前を更新します。
- 保存 をクリックします。
curl --netrc -X PATCH \
https://${DATABRICKS_HOST}/api/2.1/accounts/{account_id}/scim/v2/Groups/{id} \
--header 'Content-type: application/scim+json' \
--data @update-group.json \
| jq .
update-group.json:
{
"schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
"Operations": [
{
{
"op": "replace",
"path": "displayName",
"value": "<updated-name>"
}
}
]
}
アカウント グループAPIへの認証方法については、 Databricksリソースへのアクセスを承認する」を参照してください。
ワークスペースにグループを割り当てる
アカウント 管理者とワークスペース 管理者は、アカウント コンソールまたはワークスペース管理者設定ページを使用して、グループ を Databricks ワークスペースに割り当てることができます。
- Account console
- Workspace admin settings
ワークスペース-local グループは、アカウント コンソールを使用してワークスペースに割り当てることはできません。
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、 ワークスペース をクリックします。
- ワークスペース名をクリックします。
- [ 権限 ] タブで、[ 権限を追加 ] をクリックします。
- グループを検索して選択し、ワークスペースのエンタイトルメントを割り当て、[ 保存 ] をクリックします。
- ワークスペース管理者として、Databricksワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- [グループ] の横にある [管理] をクリックします。
- [ グループを追加 ]をクリックします。
- ワークスペースに割り当てる既存のグループを選択します。
- グループに資格を選択します。
- [ 追加 ] をクリックします。
ワークスペースからグループを削除する
アカウント グループがワークスペースから削除されると、グループ メンバーはワークスペースにアクセスできなくなりますが、グループに対する権限は維持されます。グループが後でワークスペースに再度追加された場合、グループは以前の権限を取り戻します。
今後のリリースでは、アカウントグループのメンバーシップがワークスペースオブジェクトのアクセス許可にも影響するようになります。メンバーは、そのグループがワークスペースに割り当てられているかどうかに関係なく、メンバーであるすべてのアカウント グループから、ジョブ、ノートブック、フォルダーなどのワークスペース オブジェクトに対する権限を継承します。 孤立した権限の分析ノートブックを使用して、ワークスペース内の権限付与状況を確認してください。ワークスペースオブジェクトのアクセス許可は、まもなくすべてのアカウントグループから継承されるようになります。
アカウント 管理者とワークスペース 管理者は、アカウント コンソールまたはワークスペース管理者設定ページを使用して、 Databricks ワークスペースからグループを削除できます。
- Account console
- Workspace admin settings
ワークスペース-local グループは、アカウント コンソールを使用してワークスペースから削除することはできません。
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、 ワークスペース をクリックします。
- ワークスペース名をクリックします。
- [アクセス許可 ] タブで、グループを見つけます。
- グループ行の右端にある
ケバブメニューをクリックし、「 削除 」を選択します。
- 確認ダイアログで、 [削除の確認] をクリックします。
別のグループのメンバーシップを通じてワークスペースに間接的に割り当てられているグループを削除することはできません。 これらのグループを削除するには、親グループから削除するか、アカウント レベルで削除する必要があります。
- ワークスペース管理者として、Databricksワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- [グループ] の横にある [管理] をクリックします。
- グループを選択し、[ x 削除 ] をクリックします
- 削除 をクリックして確定します。
グループの権限を管理します。
プレビュー
この機能は パブリック プレビュー段階です。
アカウント管理者はアカウントコンソールでグループに権限を付与でき、ワークスペース管理者はワークスペース管理者設定ページを使用してグループ権限を管理できます。ワークスペース管理者ではないグループマネージャーは、アカウントアクセスコントロールAPI を使用してグループ権限を管理できます。
グループに対して次のアクセス許可を付与できます。
- **割り当て**: ユーザー、Service Principal、または他のグループがロールを割り当てできるようにします。Databricks では、ロールはグループとして実装され、割り当てがグループに付与されます。これは、役割ベースのアクセス制御 (RBAC) の基盤です。詳細については、役割ベースのアクセス制御 (RBAC) を参照してください。
- 管理 :ユーザー、Service Principal、またはその他のグループがグループメンバーシップを管理し、グループを削除し、グループに対する管理権限と引き受け権限を他のプリンシパルに割り当てることができます。
- Account console
- Workspace admin settings
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ グループ ]タブで、グループ名を見つけてクリックします。
- 「 権限 」タブをクリックします。
- [ アクセス権を付与 ] をクリックします。
- ユーザー、Service Principal、またはグループを検索して選択し、権限を選択します。
- 保存 をクリックします。
アカウント グループには、ワークスペース ローカル グループまたはシステム グループの役割を割り当てることはできません。
- ワークスペース管理者として、Databricksワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- [グループ] の横にある [管理] をクリックします。
- 更新するグループを選択します。グループを更新するには、そのグループに対する管理権限が必要です。
- 「 権限 」タブをクリックします。
- [ アクセス権を付与 ] をクリックします。
- ユーザー、Service Principal、またはグループを検索して選択し、権限を選択します。
- 保存 をクリックします。
アカウント管理者の役割をグループに割り当てる
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ グループ ]タブで、グループ名を見つけてクリックします。
- [ロール] タブをクリックします。
- アカウント管理者 を選択します。
アカウント コンソールを使用して、請求管理者ロールまたはMarketplace管理者ロールをグループに割り当てることはできません。 これらのロールをグループに割り当てるには、次のロール識別子を使用してアカウント アクセス制御 API を使用します。
roles/billing.admin請求管理者向けroles/marketplace.adminMarketplace管理者向け
親グループの表示
- ワークスペース管理者として、Databricksワークスペースにログインします。
- Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
- [ IDとアクセス ] タブをクリックします。
- [グループ] の横にある [管理] をクリックします。
- 表示するグループを選択します。
- [親グループ ] タブで、グループの親グループを表示します。
Databricks アカウントからグループを削除する
アカウント 管理者は、 Databricks アカウントからグループ を削除できます。 グループ マネージャーは、 アカウント グループ APIを使用してアカウントからグループ を削除することもできます (「APIを使用してグループを管理する」を参照してください。アカウントコンソールを使用してグループを削除する場合は、アカウントに設定されている SCIM プロビジョニングコネクタまたは SCIM API アプリケーションを使用してグループも削除する必要があります。そうしないと、SCIM プロビジョニングは、次回の同期時にグループとそのメンバーを再び追加するだけです。「SCIM を使用した ID プロバイダーからのユーザーとグループの同期」を参照してください。
グループを削除すると、そのグループに所属するすべてのユーザーがアカウントから削除され、それまでアクセスできていたワークスペースへのアクセス権を失います(別のグループのメンバーであるか、アカウントまたはワークスペースへのアクセス権が直接付与されている場合を除く)。アカウント内のすべてのワークスペースにアクセスできなくする場合を除き、サービスプリンシパルのアカウントレベルの削除は避けることを推奨します。ユーザーを削除すると次のような影響が生じることに注意してください。
- ユーザーが生成したトークンを使用するアプリケーションまたはスクリプトは、 Databricks API.
- ユーザーが所有するジョブは失敗します。
- ユーザーが所有するクラスターが停止します。
- そのユーザーがインストールしたライブラリは無効であるため、再インストールする必要があります。
- ユーザーが作成し、所有者として実行資格情報を使用して共有されたクエリまたはダッシュボードは、共有が失敗するのを防ぐために、新しい所有者に割り当てる必要があります。
アカウントコンソールを使ってグループを削除するには、次の手順を実行します。
- アカウント管理者として、アカウントコンソールにログインします。
- サイドバーで、[ ユーザー管理 ] をクリックします。
- [ グループ ] タブで、削除するグループを選択します。
- ユーザー行の右端にある
ケバブメニューをクリックし、[ 削除 ]を選択します。
- 確認ダイアログボックスで、[ 削除を確認 ] をクリックします。
自動ID管理が有効になっている場合、IDプロバイダーのグループがアカウントコンソールに表示されます。ワークスペースに追加されていないグループは 、「非アクティブ:使用されていません」 と表示されます。これらのグループはグループリストから削除できません。それらはグループ人数制限には含まれません。
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 、 Databricksアカウントおよびワークスペースを通じてサポートされています。
- アカウント管理者は
{account-domain}/api/2.0/accounts/{account_id}/workspaces/{workspace_id}/permissionassignmentsを使用します。 - ワークスペース管理者は
{workspace-domain}/api/2.0/preview/permissionassignments/principals/{group_id}を使用します。
「ワークスペース割り当てAPI」を参照してください。
API を使用してグループの権限を管理します
プレビュー
この機能は パブリック プレビュー段階です。
グループ管理者は、アカウントアクセスコントロールAPIを使用してグループの権限を管理できます。アカウント管理者、ワークスペース管理者、およびグループ管理者は、別のEndpoint URLを使用してAPIを呼び出す必要があります:
- アカウント管理者は
{account-domain}/api/2.0/preview/accounts/{account_id}/access-control/assignable-rolesを使用します。 - ワークスペース管理者とグループマネージャーは
{workspace-domain}/api/2.0/preview/accounts/access-control/assignable-rolesを使用します。
アカウントアクセスコントロールAPI、およびアカウントアクセスコントロールワークスペースプロキシAPI を参照してください。
グループに対するAssume権限の付与または取り消し
アカウントアクセスコントロールAPIを使用して、グループの現在のルールセットを取得し、 Assume 権限で更新します。
ルールセット操作は、2つの同等のEndpointで利用できます。コードがランされる場所に一致するものを選択してください:
- ワークスペース URL から :
{workspace-url}/api/2.0/preview/accounts/access-control/rule-sets。アカウント ID はワークスペース コンテキストから推測されます。ワークスペース OAuth トークンで認証します。 - アカウントURLから :(
{account-domain}/api/2.0/preview/accounts/{account-id}/access-control/rule-sets)。ワークスペースのコンテキスト外で実行される自動化(アカウントレベルのスクリプトやCIパイプラインなど)には、このフォームを使用します。アカウントOAuthトークンを使用して認証します。
リクエストボディのnameフィールドは、どちらの場合もaccounts/{account-id}/groups/{group-id}/ruleSets/defaultと同じです。以下の例では、ワークスペースURL形式を使用しています。
まず、現在のルールセットを取得します。応答からetagの値を保存します。これはPUTリクエストに含める必要があるためです。
curl --request GET \
--location '{workspace-url}/api/2.0/preview/accounts/access-control/rule-sets' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"name": "accounts/{account-id}/groups/{group-id}/ruleSets/default",
"etag": ""
}'
次に、roles/group.assumerロールを付与するようにルールセットを更新します。
これは、ルールセット全体を置き換えるPUT操作です。既存の管理権限が削除されないように、GETリクエストによって返される既存のroles/group.manager付与を常に含めてください。
curl --request PUT \
--location '{workspace-url}/api/2.0/preview/accounts/access-control/rule-sets' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"name": "accounts/{account-id}/groups/{group-id}/ruleSets/default",
"rule_set": {
"name": "accounts/{account-id}/groups/{group-id}/ruleSets/default",
"grant_rules": [
{
"role": "roles/group.assumer",
"principals": [
"users/{user-name}",
"groups/{group-name}",
"servicePrincipals/{application-id}"
]
},
{
"role": "roles/group.manager",
"principals": [
"users/{manager-user-name}"
]
}
],
"etag": "{etag-from-get-response}"
}
}'
principals配列を、各ロールを付与したいIDに置き換えます。users/{user-name}、groups/{group-name}、またはservicePrincipals/{application-id}の形式を使用します。
Assume権限を取り消すには、削除するIDを除外した、更新されたgrant_rules配列を含むPUTリクエストを送信します。
グループを管理するための API の例
次の例は、ワークスペース管理者が アカウント グループ API と ワークスペースの割り当て API を使用してグループを管理する方法を示しています。 ワークスペース管理者は、 API トークンを使用してワークスペースに認証します。
アカウント グループを作成する
curl --request POST \
--location '{workspace-domain}/api/2.0/account/scim/v2/Groups' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"displayName": "<group-name>"
}'
これにより、新しいアカウント グループのグループ ID が返されます。次の API の例で参照できるように保存してください。
ワークスペースにグループを追加する
次の例では、ワークスペース ユーザー権限を持つグループをワークスペースに追加します。また、 permissions を["ADMIN"]に設定して、グループにワークスペース管理者ロールを付与することもできます。
curl --location --request PUT '{workspace-domain}/api/2.0/preview/permissionassignments/principals/{group-id}' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"permissions": ["USER"]
}'
ワークスペースからグループを削除する
次の例では、ワークスペースからグループを削除します。ワークスペースからグループを削除しても、アカウントからはグループは削除されません。
別のグループのメンバーシップを通じてワークスペースに間接的に割り当てられているグループを削除することはできません。 これらのグループを削除するには、親グループから削除するか、アカウント レベルで削除する必要があります。
curl --location --request PUT '{workspace-domain}/api/2.0/preview/permissionassignments/principals/{group-id}' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"permissions": []
}'
グループにメンバーを追加する
curl --location --request PATCH '{workspace-domain}/api/2.0/account/scim/v2/Groups/{group-id}' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "add",
"value": {
"members": [
{
"value": "{user-id}"
}
]
}
}
]
}'