こちらでは、すでにAzure Databricksを利用しているお客様が新たにUnity Catalogを使い始める際に注意すべき事柄を交えながら、セットアップ手順をウォークスルーします。
以下の記事の続編です。
前提
- すでにAzure Databricksのワークスペース(Premium)を作成している。
- SCIMプロビジョニングを使用して、Azure ADとワークスペースのユーザーを同期している。
注意
- Azure Databricksではデフォルトでシングルサインオン(SSO)が有効化されています。
- Azure Databricksのユーザーは、Azure ADのディレクトリに登録されている必要があります。
Unity Catalogにオンボーディングする際には、Databricksのアカウントとワークスペースの概念を理解しておくことが重要です。
- Databricksアカウント: お客様ごとに通常1つのDatabricksアカウントが割り当てられます。このアカウントを管理するのがDatabricksアカウント管理者です。1つのアカウントで複数のAzure Databricksワークスペースを作成することができます。
- Databricksワークスペース: データサイエンティスト、データエンジニア、データアナリストの方々が実際に分析を行う環境です。Unity Catalog以前はワークスペース単位でユーザー、グループを管理していました。
Unity Catalogにオンボーディングすることで、アカウントレベルでユーザーやグループを管理できるようになるので、管理工数の削減が期待できます。
この機能をアイデンティティ(ID)フェデレーションと呼びます。
ゴール
- Unity Catalogをセットアップする。
- IDフェデレーションを有効化し、ワークスペースレベルではなくアカウントレベルでユーザーとグループを管理するようにする。
既存のAzure Databricksワークスペース
Azure Portalで最初にAzure Databricksワークスペースを作成した際、Databricksユーザーでログインできるのは、ワークスペースを作成したAzure共同作成者または所有者のみです。
ここから手動でワークスペースにユーザーを追加することは可能ですが、管理を容易にするためにAzure ADと同期を行えるのがSCIMプロビジョニングです。
ここでは、以下の手順に従って、ワークスペースレベルでのSCIMプロビジョニングが行われているものとします。
上記の設定を行い、SCIM Provisioning Connectorにユーザーを割り当てることで、Databricksユーザーとして同期されるようになります。
そして、2022年8月以降、ワークスペースレベルのユーザーはアカウントレベルのユーザーに自動で同期されるようになっています。また、Azure Databricksでもアカウントコンソールが導入されています(これまではAWSのみでした)。アカウントコンソールからは、Unity Catalogのセットアップ、アカウントレベルユーザーの管理などが行えます。
アカウントコンソールにアクセスするには、ワークスペース画面右上のユーザー名をクリックして、アカウントを管理を選択します。
こちらのユーザー管理で、ワークスペースに同期されたユーザーがこちらにも同期されていることを確認できます。これらのユーザーはアカウントレベルのユーザーです。
Unity Catalogへのオンボーディング
この状態からUnity Catalogにオンボードするには以下の手順を踏みます。アカウントレベルでユーザーを管理し、Azure ADとアカウントレベルのユーザーを同期する形に移行するので、上述のワークスペースレベルでのSCIMプロビジョニングは不要となります。
- Unity Catalogのセットアップ
- ワークスペースレベルのSCIMプロビジョニングの無効化
- アカウントレベルのSCIMプロビジョニングの有効化
- ワークスペースローカルのグループをアカウントレベルのグループに変換
SCIMプロビジョニングの移行の詳細に関してはこちらを参照ください。
ワークスペースレベルのSCIMプロビジョニングの無効化
ワークスペースにプロビジョニングを行っていたSCIMプロビジョニングコネクターを停止します。
アカウントレベルのSCIMプロビジョニングの有効化
- こちらの手順に従ってアカウントレベルのSCIMプロビジョニングを行うSCIMコネクターを作成します。
- 既存のワークスペースでIDフェデレーションが行われるように、アカウントコンソールでUnity Catalogのメタストアをワークスペースにアタッチします。
ワークスペースローカルのグループをアカウントレベルのグループに変換
こちらにあるように、Unity Catalogが有効化されている環境では、アカウントレベルのグループに移行することを推奨しています。ワークスペースローカルで作成しているグループを参照しつつ、アカウントレベルのグループを作成し、これらアカウントレベルのグループでアクセス権を管理するようにします。
動作確認
重要
以下の手順を実行する前に、こちらの手順にあるように、プロビジョニングの設定で、スコープが割り当てられたユーザーとグループのみを同期するになっていることを確認してください。
アカウントレベルのSCIMプロビジョニングを行うSCIMコネクターにユーザーを割り当てます。ここでは、新たなユーザーユーザー4
とユーザー5
を割り当てます。
Databricksアカウントコンソールに2人のユーザーが同期されます。
ただ、この時点ではワークスペースにこれらのユーザーは追加されません。アカウントコンソールのワークスペース、権限にアクセスし、権限を追加をクリックします。
ユーザー4
、ユーザー5
をUser
としてワークスペースに割り当てます。
まとめ
注意
ユーザーを追加した際の同期処理は追加とマージのみです。
明示的に削除の操作を行わない限り、アカウントレベルのユーザーもワークスペースレベルのユーザーも削除されません。SCIMプロビジョニングコネクターに少数のユーザーを割り当てたとしても、同期先のアカウントレベルのユーザーは削除されません。割り当てられたユーザーが同期先になければ、これらのユーザーが追加されるだけです。
注意しなくてはならないのは、以下の2点です。
- IDフェデレーションが有効化されているかどうか(ワークスペースがUnity Catalogメタストアに関連づけられているかどうか)に関係なく、アカウントレベルでユーザーを削除すると、すべてのワークスペースから当該ユーザーが削除されます。
- 同様に、アカウントレベルのSCIMプロビジョニングコネクターに割り当てられているユーザーの割り当てを解除すると、Databricksアカウントユーザーからも削除され、ワークスペースユーザーからも削除されるのでワークスペースにログインできなくなります。以下の例では、割り当てが解除されたユーザー1とユーザー4がDatabricksアカウントユーザーからも削除されています。
ここで説明したように、既存のワークスペースがある場合、Unity Catalogへのオンボーディングには追加の手順が発生し、いくつかの留意点があります。
- Unity Catalogの有効化がアイデンティティフェデレーションの前提です。
- Unity Catalogメタストアを、既存/新規ワークスペースにアタッチすることでアイデンティティフェデレーションを有効化します。
- 新規ワークスペースにおいては、アカウントレベルに追加されたプリンシパルのみをワークスペースに割り当てることができます。ユーザーとグループはSCIMでアカウントレベルに同期されるので、ワークスペースではSCIMを使わないことをお勧めします。
- 既存ワークスペースにおいては、アカウントレベルから新規プリンシパルを追加することができます。すでに存在しているワークスペースグループを使い続けることができます。ユーザーとグループはSCIMでアカウントレベルに同期されるべきであり、ワークスペースでSCIMを使わないことをお勧めします。
- メタストアがアタッチされていないワークスペースでは、当面ローカルのプリンシパルとワークスペースレベルSCIMを利用することができます。
しかし、これらの手順を踏むことで、Unity Catalogが提供する様々な機能を活用できるようになります。ぜひご活用ください!