はじめに
Databricks のアカウントコンソールでは、Databricks アカウント最上位の権限を持つアカウント管理者のみが、UnityCatalog 関連の設定や、ユーザー・グループ・ワークスペース管理などを行うことができます。
しかし、基本的にはコンソール上の操作となるため、追加するユーザーやグループの作成する量が多いと工数が肥大化することが懸念されます。
上記の解決策のひとつとして、Databricks SDK for Python を使用することです。
Databricks は細かな操作含めて様々な API をサポートしており、こちらのSDKを使用すればそれらを Python で実行することができます。
Databricks CLI や REST API 経由で実施することなく、Databricks のノートブック上でアカウントコンソール上の操作が簡単に実行できるため今回一部紹介します。
前提条件
- 本記事では Databricks on AWS 上の環境で実施しています。
- Databricks Runtime Version は 13.3 LTS です。
- アカウント管理者の権限を持つユーザー情報が必要です。
初期設定
まずノートブックを開いて、パッケージをインストールします。
%pip install databricks-sdk --upgrade
dbutils.library.restartPython()
次にアカウントコンソール操作を行うため、アカウント管理者ユーザーで認証します。
from databricks.sdk import AccountClient, WorkspaceClient
from databricks.sdk.service import iam
a = AccountClient(
host = "https://accounts.cloud.databricks.com",
account_id = "<アカウントID>",
username = "<アカウント管理者のメールアドレス>",
password = "<アカウント管理者のパスワード>"
)
今回は検証用のため、認証方法は基本認証を採用しております。
運用環境では推奨されていないので、以下あたりのドキュメントを参考にそれぞれにあった認証を行ってください。
参考: https://docs.databricks.com/en/dev-tools/auth/index.html#supported-authentication-types-by-databricks-tool-or-sdk
アカウントコンソール操作例
グループを作成する
a.groups.create(display_name="<グループ名>")
グループにユーザーを追加する
方法1(追加)
a.groups.patch(id=<グループのID>, operations=[iam.Patch(op=iam.PatchOp.ADD, value={"members": [{"value":"<ユーザーのID>"}]})])
方法2(上書き)
a.groups.update(id=<グループのID>, members=[iam.ComplexValue(value="<ユーザーのID>")])
ワークスペースへグループを追加する(追加するグループはUser権限)
a.workspace_assignment.update(permissions = [iam.WorkspacePermission.USER], workspace_id=<ワークスペースのID>, principal_id=<グループのID>)
最後に
アカウントコンソール操作に関わらず他にも色々な操作ができるので、以下ドキュメントを参考に試していただければと思います。