Allowlist ライブラリ and initscript on shared コンピュート

Databricks Runtime 13.3 LTS 以降では、Unity Catalog の allowlist にライブラリと initスクリプトを追加できます。 これにより、ユーザーは共有アクセス モードで構成されたコンピュートでこれらの成果物を活用できます。

ディレクトリまたはファイルパスは、そのディレクトリまたはファイルが存在する前に許可リストに登録できます。 「Unity Catalog ボリュームへのファイルのアップロード」を参照してください。

許可リストを変更するには、メタストア管理者であるか、 MANAGE ALLOWLIST 特権を持っている必要があります。 「MANAGE ALLOWLIST」を参照してください。

重要

Unity Catalog対応の共有コンピュートで JDBC ドライバーまたはカスタム Spark データ ソースとして使用されるライブラリには、 ANY FILE権限が必要です。

インストールされているライブラリの中には、すべてのユーザーのデータを 1 つの共通の一時ディレクトリに保存するものもあります。 これらのライブラリはユーザーの分離を危険にさらす可能性があります。

許可リストに項目を追加する方法

アイテムを allowlist に追加するには、「 カタログエクスプローラ」(Catalog Explorer ) または REST API を使用します。

カタログエクスプローラーで許可リストにアイテムを追加するためのダイアログを開くには、次の手順を実行します。

  1. Databricks ワークスペースで、[カタログ アイコン カタログ] をクリックします 。

  2. クリック 歯車アイコン すると、メタストアの詳細とアクセス許可の UI が開きます。

  3. [許可された JAR/initスクリプト] を選択します。

  4. [追加] をクリックします。

重要

このオプションは、十分な特権を持つユーザーに対してのみ表示されます。 許可リスト UI にアクセスできない場合は、メタストア管理者に問い合わせて、ライブラリと initScript の許可リストに登録してください。

initスクリプトを許可リストに追加する

許可リストダイアログで次のステップを完了して、initスクリプトを許可リストに追加します。

  1. [ タイプ] で [initスクリプト] を選択します。

  2. ソース・タイプ」で、「 ボリューム 」またはオブジェクト・ストレージ・プロトコルを選択します。

  3. 許可リストに追加するソースパスを指定します。 「 許可リストでのパスのアクセス許可の適用方法」を参照してください。

許可リストに JAR を追加する

許可リスト・ダイアログで次のステップを実行して、JARを許可リストに追加します。

  1. [タイプ] で [JAR] を選択します。

  2. ソース・タイプ」で、「 ボリューム 」またはオブジェクト・ストレージ・プロトコルを選択します。

  3. 許可リストに追加するソースパスを指定します。 「 許可リストでのパスのアクセス許可の適用方法」を参照してください。

Maven 座標を許可リストに追加する

許可リストダイアログで次のステップを完了して、Maven 座標を許可リストに追加します。

  1. [タイプ] で [Maven] を選択します。

  2. [ ソース タイプ] で [ 座標] を選択します。

  3. 座標を次の形式で入力します: groudId:artifactId:version

    • ライブラリのすべてのバージョンを含めるには、次の形式を許可リストに登録します: groudId:artifactId

    • すべての成果物をグループに含めるには、次の形式で許可リストに登録します: groupId

パスに対するアクセス許可は許可リストでどのように適用されますか?

許可リストを使用して、 Unity Catalog ボリュームおよびオブジェクトストレージに格納されているJARまたはinitScriptへのアクセス権を付与できます。 ファイルではなくディレクトリのパスを追加すると、許可リストのアクセス許可は含まれているファイルとディレクトリに伝達されます。

プレフィックス マッチングはUnity Catalogボリュームまたはオブジェクト ストレージに保存されるすべてのアーティファクトに使用されます。 特定のディレクトリ レベルでプレフィックスが一致しないようにするには、末尾にスラッシュ(/)を含めます。 たとえば、 /Volumes/prod-libraries/ は、 という接頭辞が付いたファイルに対して接頭辞の一致を実行し prod-libraries。 代わりに、 /Volumes/prod-libraries/ 内のすべてのファイルとディレクトリが許可リストに追加されます。

アクセス許可は、次のレベルで定義できます。

  1. ボリュームまたはストレージコンテナの基本パス。

  2. 基本パスから任意の深さにネストされたディレクトリ。

  3. 1 つのファイル。

許可リストにパスを追加するということは、そのパスを initScript または JAR インストールに使用できることを意味します。 Databricks は、指定された場所にあるデータにアクセスするためのアクセス許可を引き続きチェックします。

使用するプリンシパルには、指定したボリュームに対する READ VOLUME 権限が必要です。 SELECTを参照してください。

シングル・ユーザー・アクセス・モードでは、割り当てられたプリンシパルの ID (ユーザーまたはサービスプリンシパル) が使用されます。

共有アクセス モードの場合:

  • ライブラリは、ライブラリ インストーラーの ID を使用します。

  • initスクリプト クラスター所有者の ID を使用します。

分離なしの共有アクセス モードはボリュームをサポートしませんが、共有アクセス モードと同じ ID 割り当てを使用します。

Databricks では、initScript とライブラリに関連するすべてのオブジェクト ストレージ特権を読み取り専用アクセス許可で構成することをお勧めします。 これらの場所に対する書き込みアクセス許可を持つユーザーは、ライブラリ ファイルまたは initScript 内のコードを変更する可能性があります。

Databricks では、インスタンスプロファイルを使用して、S3 に格納されている JAR または initScript へのアクセスを管理することをお勧めします。 相互参照リンクの次のドキュメントを使用して、この設定を完了します。

  1. 目的のバケットに対する読み取りおよび一覧表示アクセス許可を持つ IAMロールを作成します。 「 チュートリアル: インスタンスプロファイルを使用して S3 アクセスを設定する」を参照してください。

  2. インスタンスプロファイルを使用してクラスターを起動します。 「 インスタンスプロファイル」を参照してください。

JAR と initScript の許可リスト権限は別々に管理されます。 同じ場所を使用して両方のタイプのオブジェクトを保存する場合は、それぞれの許可リストに場所を追加する必要があります。