デフォルトのワークスペース アクセスをコンシューマー アクセスに変更する
プレビュー
この機能は パブリック プレビュー段階です。
このページでは、ワークスペース管理者がグループの複製を使用して、新しいユーザーのデフォルトのワークスペース アクセスをコンシューマー アクセスに変更する方法について説明します。この機能により、作成権限を必要とするユーザーに対して適切なアクセス レベルを維持しながら、大規模なコンシューマーのオンボーディングを効率化できます。
概要
デフォルトでは、ワークスペースに追加されたすべてのユーザーはシステムusersグループのメンバーになります。このグループには通常、ワークスペース アクセス権またはDatabricks SQLアクセス権があり、これらはユーザーがワークスペース オブジェクトを作成および変更できるようにする作成権です。
ユーザーに表示専用のコンシューマー エクスペリエンスを提供するには、 usersグループにはコンシューマー権限のみが必要です。権限は追加的であるため、コンシューマー アクセスでは、ユーザーに割り当てられた唯一の権限である場合にのみ、簡略化された表示専用のエクスペリエンスが提供されます。グループの複製により、作成権限を必要とする既存のユーザーを中断することなく、この変更を行うことができます。既存のユーザーに対して新しいグループを作成し、新しいユーザーのデフォルトのusersグループを更新します。
コンシューマー アクセスとその機能の詳細については、 「コンシューマー アクセスとは何ですか?」を参照してください。 権限の詳細については、 「権限の管理」を参照してください。
この機能を使用する場合
この機能は次のような場合に使用します。
- 新しいワークスペース ユーザーにデフォルトでコンシューマー アクセスのみを許可するようにします。
- 作成権限 (ワークスペースまたは Databricks SQL アクセス) が必要なユーザーと、表示専用のコンシューマーを分離する必要があります。
- コンシューマーのオンボーディングを大規模に効率化したいと考えています。
グループクローンの仕組み
システムusersグループは Databricks によって自動的に管理され、すべてのワークスペース ユーザーが含まれます。このグループは削除できません。システム グループの詳細については、 「グループ ソース」を参照してください。
usersグループを複製する場合:
usersグループが現在持っているのと同じ権限を持つ新しいグループが作成されます。- 既存のワークスペース ユーザーは全員、複製されたグループに自動的に移動され、現在のアクセス レベルが維持されます。
usersグループが更新され、コンシューマーの権限のみを持つようになりました。- 今後ワークスペースに追加されるユーザーは自動的に
usersグループのメンバーとなり、コンシューマー権限のみを受け取ります。
usersグループにネストが深すぎるグループ(他のグループのメンバーであるグループ)が含まれている場合、それらの処理方法を選択できます。
- すべてのグループ メンバーを直接追加 (推奨) : ネストされたグループのすべてのメンバーを、複製されたグループに直接追加します。これにより、グループ構造が簡素化されます。
- 除外 : ネストされたグループ全体をスキップします。除外されたネストされたグループのメンバーは、複製されたグループに追加されません。
要件
デフォルトのワークスペース アクセスを変更するには、ワークスペース管理者である必要があります。
UI を使用してデフォルトのワークスペース アクセスを変更する
デフォルトのワークスペース アクセスをコンシューマー アクセスに変更するには:
-
ワークスペース管理者として、Databricksワークスペースにログインします。
-
Databricksワークスペースの上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
-
詳細設定 タブをクリックします。
-
[アクセス制御] の [デフォルトのワークスペース アクセスをコンシューマー アクセスに変更] の横にある [開く] をクリックします。
-
ダイアログで、複製されたグループの名前を入力します。このグループには、現在の権限を保持する必要のある既存のユーザーがすべて含まれます。

-
[グループの作成と複製] をクリックします。
システムは新しいグループを作成し、複製プロセスを開始します。クローン作成中はモーダルを閉じないでください。
-
usersグループにネストが深すぎるグループが含まれている場合は、それらを処理するように求められます。- ネストされたグループのすべてのメンバーを複製されたグループに直接追加してグループをフラット化するには、 [すべてのグループ メンバーを直接追加する (推奨)] を選択します。
- このネストされたグループをスキップするには、 「このグループを除外」 を選択します。
- オプションで、 「ネストの深さの制限を超える将来のすべてのグループにこの決定を適用する」 を選択して、この操作中に将来のすべてのネストされたグループに選択内容を適用します。
-
最終ステップ: 作成権限を移動し、デフォルトのアクセスを変更する で 、 [完了] をクリックします。
システムは、
usersグループを更新してコンシューマー権限のみを持たせ、元の権限を複製されたグループに割り当てます。 -
概要を確認し、 「完了」 をクリックします。

変更を確認する
プロセスを完了したら、変更が正しく適用されたことを確認します。
- ワークスペース管理者として、Databricksワークスペースにログインします。
- 上部のバーにあるユーザー名をクリックし、 「設定」 を選択します。
- [ IDとアクセス ] タブをクリックします。
- [グループ] の横にある [管理] をクリックします。
- 次の点を確認してください。
- 複製されたグループが存在し、元の
usersグループと同じ数のユーザーがいます。 - 現在、
usersグループには Consumer 権限のみがあります。
- 複製されたグループが存在し、元の
考慮事項とベストプラクティス
デフォルトのワークスペース アクセスを変更するときは、次の点を考慮してください。
-
新規ユーザーへの影響 : デフォルトのアクセスを変更すると、ワークスペースに追加されたすべての新規ユーザーにはコンシューマー権限のみが付与されます。ユーザーは、共有されているダッシュボード、 Genieスペース、 Databricks Appsを表示および操作できますが、新しいワークスペース オブジェクトを作成することはできません。 彼らのデフォルトDatabricksランディングページはDatabricks Oneページです。 詳細については、 「コンシューマー アクセスとは何ですか?」とDatabricks One とは何ですか?参照してください。
-
作成権限の付与 : 新しいユーザーに高い権限を付与する必要がある場合は、複製されたグループに手動で追加するか、追加の権限を個別に割り当てる必要があります。グループ メンバーシップの管理手順については、 「グループの管理」を参照してください。
-
変更を元に戻す : この構成を元に戻す必要がある場合は、ワークスペース アクセスと Databricks SQL アクセス権限を
usersグループに再度付与します。新規ユーザーにはデフォルトでこれらの権限が付与されます。ユーザーの整理にまだ必要かどうかに応じて、複製されたグループを保持するか削除することができます。 -
ID プロバイダーとの調整 : SCIM プロビジョニングまたは自動 ID 管理を使用してユーザーとグループを同期する場合は、この変更を ID 管理プロセスと調整します。SCIM を使用して ID プロバイダーからユーザーとグループを同期するを参照してください。
SDKを使用してグループのクローンを自動化する
複数のワークスペースにわたる一括操作または自動化の場合は、Databricks SDK for Python を使用してグループの複製プロセスを自動化できます。この方法は、複数のワークスペースに同じ構成を適用する必要がある場合、またはグループのクローン作成をInfrastructure-as-Codeワークフローに統合する必要がある場合に便利です。
次の Python スクリプトは、 usersグループの複製を自動化し、適切な権限を割り当てます。Databricks SDK for Pythonを使用し、 OAuthを使用して認証された、アカウントとワークスペースの両方の管理者権限を持つサービスプリンシパルが必要です。 「OAuth を使用して Databricks へのユーザー アクセスを承認する」を参照してください。
前提条件
- 管理者権限を持つサービスプリンシパル
- 以下の環境変数の設定:
DATABRICKS_ACCOUNT_ID(アカウント コンソール URL からの UUID)DATABRICKS_WORKSPACE_ID(ワークスペース URL からの数値 ID)DATABRICKS_CLIENT_ID(サービスプリンシパルクライアントID)DATABRICKS_CLIENT_SECRET(サービスプリンシパルクライアントシークレット)
サンプルスクリプト
import os
import databricks.sdk as dbx
from databricks.sdk.service import iam
# Set the Databricks account host URL for your account's cloud
DATABRICKS_HOST = "https://accounts.cloud.databricks.com"
# Fetch credentials from environment variables
DATABRICKS_ACCOUNT_ID = os.getenv("DATABRICKS_ACCOUNT_ID")
DATABRICKS_WORKSPACE_ID = os.getenv("DATABRICKS_WORKSPACE_ID")
DATABRICKS_CLIENT_ID = os.getenv("DATABRICKS_CLIENT_ID")
DATABRICKS_CLIENT_SECRET = os.getenv("DATABRICKS_CLIENT_SECRET")
# Initialize Databricks account client
account_client = dbx.AccountClient(
host=DATABRICKS_HOST,
account_id=DATABRICKS_ACCOUNT_ID,
client_id=DATABRICKS_CLIENT_ID,
client_secret=DATABRICKS_CLIENT_SECRET,
)
print(f"Authenticated to Databricks account {DATABRICKS_ACCOUNT_ID}")
# Get workspace and initialize workspace client
workspace = account_client.workspaces.get(workspace_id=DATABRICKS_WORKSPACE_ID)
workspace_name = workspace.workspace_name
workspace_client = account_client.get_workspace_client(workspace)
print(f"Authenticated to Databricks workspace {DATABRICKS_WORKSPACE_ID}, '{workspace_name}'")
def get_workspace_group(group_name):
"""
Fetches the workspace group with the given name.
"""
group = list(workspace_client.groups.list(filter=f"displayName eq '{group_name}'"))[0]
print(f"Found workspace group: {group.display_name}")
print(f"Workspace {group.display_name} has {len(group.members)} members")
return group
def clone_workspace_group_to_account(workspace_group_name, new_account_group_name):
workspace_group = get_workspace_group(workspace_group_name)
group = account_client.groups.create(
display_name=new_account_group_name, members=workspace_group.members
)
print(f"Created account group: {new_account_group_name}")
print(f"Cloned workspace group {workspace_group.display_name} to account group {group.display_name}")
print(f"Account {group.display_name} has {len(group.members)} members")
return group
def add_account_group_to_workspace(account_group, workspace):
permissions = account_client.workspace_assignment.update(
workspace_id=workspace.workspace_id,
principal_id=account_group.id,
permissions=[iam.WorkspacePermission.USER],
)
print(f"Added account group {account_group.display_name} to workspace {workspace.workspace_id}, {workspace.workspace_name}")
return permissions
# Clone workspace 'users' group to new account group '{workspace_name}-contributors'
account_group = clone_workspace_group_to_account(
"users", f"{workspace_name}-contributors"
)
# Add account group '{workspace_name}-contributors' to the workspace
permissions = add_account_group_to_workspace(account_group, workspace)
スクリプトを実行して既存のグループを複製し、権限を再割り当てした後、コンシューマにusersグループへのアクセスを付与し、新しいユーザーにそのアクセスが自動的に付与されるようにします。
組織のポリシーと命名規則に合わせてグループ名と権限を調整します。変更を広く適用する前に、必ず本番運用以外の環境で変更をテストしてください。
次は何?
デフォルトのワークスペース アクセスを変更した後、次の操作を実行できます。
- グループ メンバーシップを管理し、複製されたグループに新しいユーザーを追加して、作成権限を付与します。「グループの管理」を参照してください。
- 個々のユーザーまたはグループの権限を確認して調整します。「権限の管理」を参照してください。
- コンシューマーアクセス エクスペリエンスの詳細をご覧ください。「コンシューマーアクセスとは何ですか?」とDatabricks One とは何ですか?を参照してください。
- コンシューマーユーザー向けにデータガバナンス コントロールを構成します。 行フィルターと列マスクを参照してください。