メインコンテンツまでスキップ

標準アクセスモード (以前の共有アクセスモード)を用いたコンピュートにおけるライブラリとinitスクリプトの許可リスト

Databricks Runtime 13.3 LTS以降では、 Unity Catalog allowlistによって、どのライブラリと init スクリプトが標準アクセス モード コンピュートで実行できるかが制御されます。 これにより、ユーザーは標準アクセス モードで構成されたコンピュートでこれらのアーティファクトを活用できるようになります。

デフォルトでは、許可リストは空です。この機能を無効にできません。許可リストを変更するには、 MANAGE ALLOWLIST権限が必要です。「許可リストの管理」を参照してください。

まだ作成されていないディレクトリやファイルでも、許可リストに追加できます。Unity Catalogボリューム内のファイル操作については、「Unityカタログボリューム内のファイル操作」を参照してください。

重要

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

一部のインストール済みライブラリは、すべてのユーザーのデータを 1 つの共通の一時ディレクトリに格納します。 これらのライブラリは、ユーザーの分離を損なう可能性があります。

セキュリティと運用上のリスク​

ホワイトリストのセキュリティへの影響を理解することは、クラスターの分離を維持し、標準アクセス モード コンピュートでデータを保護するために重要です。 ホワイトリストを適切に使用すると、ユーザーが任意のライブラリや init スクリプトを追加できなくなります。 これにより、セキュリティ上の問題、クラスターの不安定性、その他の予期しない動作が発生する可能性が軽減されます。

MANAGE ALLOWLIST権限を誰に付与するかを慎重に検討してください。MANAGE ALLOWLIST権限を持つユーザーは、任意のパスまたはMaven座標を許可リストに登録し、標準アクセス モード コンピュートで実行できるコードを効果的に制御できます。

メタストア管理者は、許可リストの項目を定期的に確認し、信頼できるソースからのものであることを確認します。許可リストに登録されたアーティファクトはクラスター リソースとユーザー データにアクセスできるため、他の機密コンポーネントと同じセキュリティおよびガバナンス制御の対象となる必要があります。

Databricks では、許可リストの管理について次のベスト プラクティスを推奨しています。

  • MANAGE ALLOWLIST権限は、メタストア管理者と信頼できるプラットフォーム管理者にのみ付与します。その他のユーザーの場合は、必要に応じて一時的にのみMANAGE ALLOWLISTを付与します。
  • 許可リストへの追加を定期的に確認し、監査します。
  • 広範なパターンではなく、特定のパスと Maven 座標を使用します。
  • 読み取り専用権限を持つ許可リストに登録されたアーティファクトの保存場所を構成します。
  • 本番運用環境でのホワイトリスト追加の正式な承認プロセスを実装します。
  • ホワイトリストに登録されたライブラリと init スクリプトを本番運用のホワイトリストに追加する前に、非本番運用環境でテストしてください。

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

カタログ エクスプローラーまたは REST API を使用して、allowlistにアイテムを追加できます。

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

  1. Databricks ワークスペースで、[データアイコン。 カタログ] をクリックします。
  2. 歯車のアイコン 歯車のアイコン。をクリックします。
  3. メタストア名をクリックして、メタストアの詳細とアクセス許可の UI を開きます。
  4. 「許可されたJARs/initスクリプト 」を選択します。
  5. [ 追加 ] をクリックします。
重要

このオプションは、メタストア上でMANAGE ALLOWLIST権限を持つユーザーにのみ表示されます。ホワイトリスト UI にアクセスできない場合は、メタストア管理者に問い合わせて、ライブラリと init スクリプトをホワイトリストに登録するためのサポートを求めてください。

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

許可リストダイアログで次の手順を実行して、initスクリプトを許可リストに追加します。

  1. タイプ で initスクリプト を選択します。
  2. ソースタイプ で、 ボリューム またはオブジェクトストレージプロトコルを選択します。
  3. 許可リストに追加するソースパスを指定します。 パスに対する権限は、許可リストでどのように適用されますか?を参照してください。

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

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

  1. タイプ で JAR を選択します。
  2. ソースタイプ で、 ボリューム またはオブジェクトストレージプロトコルを選択します。
  3. 許可リストに追加するソースパスを指定します。 パスに対する権限は、許可リストでどのように適用されますか?を参照してください。

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

重要

Maven座標を許可リストに追加する前に、ライブラリをインストールするコンピュートにCan Attach To権限とCAN MANAGE権限が設定されている必要があります。「コンピュートの権限」を参照してください。

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

  1. タイプ で Maven を選択します。
  2. ソースタイプ で 座標 を選択します。
  3. 座標を次の形式で入力してください:groudId:artifactId:version.
    • ライブラリのすべてのバージョンを含めるには、次の形式を許可リストに登録します。 groudId:artifactId.
    • すべてのアーティファクトをグループに含めるには、 groupIdの形式で許可リストに登録します。

パスの権限は許可リストでどのように適用されますか?​

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

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

権限は、次のレベルで定義できます。

  1. ボリュームまたはストレージコンテナのベースパス。
  2. ベース パスから任意の深さでネストされたディレクトリ。
  3. 1つのファイル。

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

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

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

標準アクセス モードまたは非分離共有アクセス モードでは、ライブラリ インストーラーの ID が使用されます。

注記

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

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

Databricks Google Cloud サービス アカウントを使用して、 GCSに保存されている JAR または initスクリプトへのアクセスを管理することをお勧めします。 目的のバケットの Storage Object Viewer ロールを持つGoogle Cloudサービスアカウントを作成し、クラスターにアタッチします。 クラスターについては、Google Cloud サービスアカウントを使用してGCSバケットにアクセスするをご覧ください。

注記

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