1
0

More than 1 year has passed since last update.

Unity Catalogの有効化・無効化におけるアクセスコントロールの違い

Posted at

整理します。

Unity Catalogとは

Unity Catalog(UC)は、DatabricksレイクハウスにおけるデータとAIに対するきめ細かいガバナンスを提供するソリューションです。

Unity Catalogは以下のキーとなる機能によって、お使いのデータに対するセキュリティとガバナンスをシンプルなものにします。

  • 一度定義すれば、どこでもセキュアに: Unity Catalogは全てのワークスペース、ペルソナに対して適用されるデータアクセスポリシーを管理する唯一の場所を提供します。
  • 標準準拠のセキュリティモデル: Unity Catalogのセキュリティモデルは標準的なANSI SQLをベースとしており、管理者は馴染みのある文法を用いて、既存データレイクに存在するカタログ、データベース、テーブル、ビューのレベルでアクセス権を設定することができます。
  • ビルトインの監査機能: Unity Catalogは自動でユーザーレベルの監査ログを捕捉し、データへのアクセスを記録します。

このように、Unity Catalogを活用することで高いセキュリティ、ガバナンスを実現することができます。しかし、Unity Catalog以前とは考え方が色々と異なっているので、以前ある機能との違いを認識することも重要となります。

以下では、ファイル、テーブル、MLflowアーティファクト、モデルレジストリを対象に、Unity Catalogを有効化している場合とそうでない場合のアクセスコントロールをまとめます。

なお、DBFS(Databricks File System)へのアクセスとMLflowアーティファクトのアクセスに関しては違いはありません。

Unity Catalogあり Unity Catalogなし
ファイル(DBFS) Databricksユーザーなら誰でもアクセス可能 Databricksユーザーなら誰でもアクセス可能
ファイル(外部ストレージ) Unity Catalogで許可された操作が可能 接続で使用している権限情報に従った操作が可能
マネージドテーブル Unity Catalogでテーブルに許可された操作が可能 テーブルアクセスコントロールが有効化されている場合には、設定された権限での操作が可能。有効化されていない場合には、Databricksユーザーであれば誰でも操作可能
外部テーブル Unity Catalogでテーブルとテーブルで使用している外部ロケーションで許可された操作が可能 テーブルアクセスコントロールが有効化されている場合には、テーブルで使用しているファイルに設定された権限での操作が可能。有効化されていない場合には、テーブルで使用しているファイルにアクセスできる限りDatabricksユーザーであれば誰でも操作可能
MLflowアーティファクト MLflowエクスペリメントのアクセス権に準拠 MLflowエクスペリメントのアクセス権に準拠
モデルレジストリ 設定可能なアクセス権はALL PRIVILEGESEXECUTEのみ ステージ遷移などの権限設定が可能

ファイルに対するアクセスコントロール

ファイルが以下のどちらに格納されているのかによって挙動が異なります。

  • DBFS
  • 外部ストレージ(S3など)

DBFS(Databricks File System)

DBFSはDatabricksで利用できるファイルシステムです。一部の例外を除いてアクセスコントロールはされていません。 このため、Unity Catalogを使っているかどうかに関係なく、Databricksのユーザーであれば誰でも読み書きできます。このため、こちらでも説明しているようにプロダクションで使用するようなデータを格納することはお勧めしません。

  • Unity Catalogあり: Databricksユーザーなら誰でもアクセス可能。
  • Unity Catalogなし: 同上

外部ストレージ

まず、Unity Catalogがある場合とないと場合とでは、外部ストレージへの接続方法が異なります。

Unity Catalogを使用している際には、外部ロケーションやボリュームへのアクセスコントロールが可能です。DBFSマウントの場合にはマウントで使用している権限情報に沿ってストレージにアクセスします。インスタンスプロファイルの場合も同様です。

  • Unity Catalogあり: Unity Catalogで許可された操作が可能。
  • Unity Catalogなし: 接続で使用している権限情報に従った操作が可能。

テーブルに対するアクセスコントロール

Unity Catalogが有効化されている場合には、Unity Catalogのメタストアにアクセスします。Unity Catalogが有効化されていない場合、テーブルにはHiveメタストア経由でアクセスします。

マネージドテーブル

マネージドテーブルは、テーブルのメタデータに加えてテーブルデータもメタストアが管理するテーブルとなります。DROP TABLEでテーブルを削除した際にはメタデータと共にテーブルデータも削除されます。

  • Unity Catalogあり: Unity Catalogでテーブルに許可された操作が可能。
  • Unity Catalogなし: テーブルアクセスコントロールが有効化されている場合には、設定された権限での操作が可能。有効化されていない場合には、Databricksユーザーであれば誰でも操作可能。

外部テーブル

外部テーブルとはアンマネージドテーブルとも呼ばれ、テーブルデータの格納場所が外部ストレージとなっているテーブルを指します。DROP TABLEでテーブルを削除した際にはメタデータは削除されますが、テーブルデータは削除されません。

  • Unity Catalogあり: Unity Catalogでテーブルとテーブルで使用している外部ロケーションで許可された操作が可能。
  • Unity Catalogなし: テーブルアクセスコントロールが有効化されている場合には、テーブルで使用しているファイルに設定された権限での操作が可能。有効化されていない場合には、テーブルで使用しているファイルにアクセスできる限りDatabricksユーザーであれば誰でも操作可能。

MLflowアーティファクトに対するアクセスコントロール

MLflowのアーティファクトは、Databricks上でモデルトレーニングをした際に記録される機械学習モデルやメタデータです。

アーティファクトはDBFSに格納されますが、これは特殊なDBFSであり上述したような直接のアクセスはできません。アーティファクトへのアクセスはUCありなしに関係なく、MLflowエクスペリメントのアクセス権によって制御されます。

  • Unity Catalogあり: MLflowエクスペリメントのアクセス権に準拠。
  • Unity Catalogなし: MLflowエクスペリメントのアクセス権に準拠。

MLflowモデルレジストリに対するアクセスコントロール

MLflowモデルレジストリは機械学習モデルのバージョンやステータスの管理を可能にします。最近Unity Catalogでもモデルレジストリの機能を提供するようになりましたが、従来のモデルレジストリとアクセス権の考え方が異なります。

  • Unity Catalogあり: 設定可能なアクセス権ALL PRIVILEGESEXECUTEのみ。ステージ遷移の機能は現時点ではサポートされていません。
  • Unity Catalogなし: ステージ遷移などの権限設定が可能。

注意
Unity Catalogを有効化していても、従来のモデルレジストリの機能を利用できます。

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0