タイトルの通り、Azure DatabrikcsでUnity CatalogとIDフェデレーションを有効化してみます。
要件
- Premiumプラン以上のAzure Databricksアカウント
- Azure Databricksのアカウント管理者権限(Azure AD Global admin)
- Azure Databricksワークスペース
Unity Catalogとは
Azure Databricksにおけるガバナンスソリューションです。デフォルトでは有効化されていないので、有効化する必要があります。
Unity Catalogの有効化
ストレージアカウントとコンテナの作成
Unity Catalogにはメタストアが必要で、これを作成するにはデータを格納するための専用のコンテナが必要となります。Azure Portalでこれらを作成します。
作成したストレージアカウント、コンテナ、パスを<コンテナ名>@<ストレージアカウント名>.blob.core.windows.net/<パス>
の形式でメモしておきます。
AzureマネージドIDの作成および設定
上のステップで作成したコンテナにアクセスするAzureマネージドIDをAzure Portalで作成します。
以下の形式のリソースIDをメモしておきます。
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource_group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
メタストアの作成およびAzure Databricksワークスペースの関連づけ
- アカウントコンソールに移動します。Databricksワークスペースで右上のユーザー名をクリックし、アカウントを管理を選択します。この際、ユーザーがAADのGlobal admin権限を持っていないと、アカウントコンソールにログインできません。
- メタストア名、リージョンを指定し、ADLS Gen 2パスには上のステップでメモしたコンテナのパスを指定します。
-
アクセスコネクターIDには上のステップでメモしたリソースIDを指定します。
- 作成をクリックし、メタストアの作成に成功したらDatabricksワークスペースを関連づけます。
IDフェデレーションの有効化
IDフェデレーションとはDatabricksレベルでユーザー・グループを管理し、配下のすべてのAzure Databricksワークスペースのユーザー・グループを集中管理できる機能です。アカウントレベルで設定したユーザー・グループをワークスペースに割り当てることが可能となります。
注意
IDフェデレーションを有効化する際には、アカウントレベルのSCIMプロビジョニングを有効化します。この際、ワークスペースレベルでSCIMプロビジョニングが有効化されている場合にはオフにするようにしてください。
こちらの手順に従って、アカウントレベルのSCIMプロビジョニングを有効化します。
動作確認
これでIDフェデレーションが有効化されましたが、挙動については悩むところがあるかと思います。例えば、新規にアカウントレベルのユーザーを追加すると、ワークスペースレベルのユーザーが削除されたりしないかなど。
まず、前提としてこちらにありますように、2022年8月時点で、ワークスペースレベルのユーザーはアカウントレベルに同期されるようになっています。ワークスペースにユーザーを追加するたびに、アカウントレベルに同期されます。そして、明示的に削除の操作を行わない限り、アカウントレベルのユーザーもワークスペースレベルのユーザーも削除されません。
注意しなくてはならないのは、IDフェデレーションが有効化されているかどうか(ワークスペースがUnity Catalogメタストアに関連づけられているかどうか)に関係なく、アカウントレベルでユーザーを削除すると、すべてのワークスペースから当該ユーザーが削除されるということです。
アカウント管理者がアカウント レベルでユーザーまたはサービス プリンシパルを削除した場合、ID フェデレーションが有効になっているかどうかに関係なく、そのユーザーはワークスペースからも削除されます。 アカウント レベルのユーザーまたはサービス プリンシパルの削除は、それらによるアカウント内のすべてのワークスペースへのアクセスを禁止する場合を除き、行わないようにする必要があります。
Azure ADにユーザーを追加
Azure Databricks SCIM Provisioning Connectorにユーザーを追加すると、Databricksアカウントレベルでユーザーが同期されます。
マスキングしていますが、赤いところが同期されたユーザーです。この時点ではワークスペースには変化がありません。
Databricksワークスペースにユーザーを追加
- アカウントコンソールのワークスペースに移動し、追加したいワークスペースを開きます。
- 右上の権限を追加をクリックします。
- 追加したいユーザーと権限を選択して、保存をクリックします。
- 当該ワークスペースにアクセスし、管理者設定でユーザー一覧にアクセスすると、上のステップで追加したユーザーが表示されていることがわかります。ここでもマスキングしていますが、赤い部分が追加されたユーザーです。