Allowlisting libraries and init scripts on shared compute | Databricks on AWS [2023/8/23時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Databricksランタイム13.3以降では、Unity Catalogのallowlist
にライブラリとinitスクリプトを追加することができます。これによって、共有アクセスモードに設定されたクラスターでこれらのアーティファクトを活用できるようになります。
ディレクトリやファイルが作成される前に、ディレクトリやファイルパスを許可リストに追加することができます。Unity Catalog ボリュームへのファイルのアップロードをご覧ください。
注意
許可リストを変更するにはメタストア管理者である必要があります。
許可リストへのアイテムの追加方法
データエクスプローラあるいはREST APIを用いて、allowlist
にアイテムを追加することができます。
データエクスプローラで許可リストにアイテムを追加するダイアログを表示するには、以下を行います:
- DatabricksワークスペースでDataをクリックします。
- メタストアの詳細と権限のUIを開くためにをクリックします。
- Allowed JARs/Init Scriptsを選択します。
- Addをクリックします。
重要!
このオプションは十分な権限を持つユーザーに対してのみ表示されます。許可リストのUIにアクセスできない場合には、ライブラリやinitスクリプトを許可するためにメタストア管理者にコンタクトしてください。
許可リストにinitスクリプトを追加
許可リストにinitスクリプトを追加するには、以下のステップを完了します:
- TypeでInit Scriptを選択します。
- Source TypeでVolumeかオブジェクトストレージのプロトコルを選択します。
- 許可リストに追加するソースパスを指定します。許可リストで強制されるパスの権限はどうなっているのか?をご覧ください。
許可リストにJARを追加
許可リストにJARを追加するには、以下のステップを完了します:
- TypeでJARを選択します。
- Source TypeでVolumeかオブジェクトストレージのプロトコルを選択します。
- 許可リストに追加するソースパスを指定します。許可リストで強制されるパスの権限はどうなっているのか?をご覧ください。
許可リストにMavenコーディネートを追加
許可リストにMavenコーディネートを追加するには、以下のステップを完了します:
- TypeでMavenを選択します。
- Source TypeでCoordinatesを選択します。
- フォーマット
groudId:artifactId:version
でコーディネートを入力します。- フォーマット
groudId:artifactId
を許可することで、あるライブラリのすべてのバージョンを含めることができます。 - フォーマット
groudId
を許可することで、あるグループにあるすべてのアーティファクトを含めることができます。
- フォーマット
許可リストで強制されるパスの権限はどうなっているのか?
Unity Catalogのボリュームやオブジェクトストレージに格納されているJARやinitスクリプトへのアクセスを許可するために、許可リストを活用することができます。ファイルではなくディレクトリへのパスを追加する場合、許可リストの権限は格納されるファイルやディレクトリにも伝播します。
Unity Catalogのボリュームやオブジェクトストレージに格納されているすべてのアーティファクトでプレフィックスのマッチングが使用されます。特定のディレクトリレベルでプレフィックスのマッチングを行わないようにするには、/Volumes/prod-libraries/
のように、末尾にスラッシュ(/
)を含めます。
以下のレベルで権限を定義することができます:
- ボリュームやストレージコンテナのベースパス。
- ベースパスから任意の深さにネストされているディレクトリ。
- 単体のファイル。
許可リストにパスを追加することは、initスクリプトやJARのインストールで使用することができるパスであるということのみを意味します。依然として、Databricksは指定された場所にあるデータへのアクセス権があるかどうかをチェックします。
使用されるプリンシパルは、指定されたボリュームに対するREAD VOLUME
権限を持っている必要があります。READ VOLUMEをご覧ください。
アサインアクセスモードでは、割り当てられているプリンシパル(ユーザーあるいはサービスプリンシパル)のアイデンティティが使用されます。
共有アクセスモードでは:
- ライブラリは、ライブラリをインストールしたアイデンティティを使用します。
- Initスクリプトは、クラスター所有者のアイデンティティを使用します。
注意
分離なし共有アクセスモードはボリュームをサポートしていませんが、共有アクセスモードで同じアイデンティを使用します。
initスクリプトやライブラリに関連するすべてのストレージ権限を読み取り専用に設定することをお勧めします。これらのロケーションに対する書き込み権限を持つユーザーが誤ってライブラリファイルやinitスクリプトを変更してしまう可能性があります。
S3に格納されているJARやinitスクリプトへのアクセスの管理にはインスタンスプロファイルを使用することをお勧めします。このセットアップを完了するには以下のドキュメントを参照ください:
- 使用するバケットに対する読み込み、一覧権限を持つIAMロールの作成。インスタンスプロファイルを使用してS3に対するアクセス権を設定するをご覧ください。
- 作成したインスタンスプロファイルを用いてクラスターを起動します。インスタンスプロファイルを使用したコンピュートリソースの起動をご覧ください。
注意
JARとinitスクリプトに対する権限の許可は別個に管理されます。両方のタイプのオブジェクトを格納するのに同じロケーションを使用している場合には、それぞれの許可リストにロケーションを追加する必要があります。