分享方式:


共享計算上的Allowlist連結庫和init腳本

Databricks Runtime 13.3 LTS 和更新版本中,您可以將連結庫和 init 腳本新增至 allowlist Unity 目錄中的 。 這可讓使用者在以共用存取模式設定的計算上運用這些成品。

您可以在該目錄或檔案存在之前,先列出目錄或檔案路徑。 請參閱 將檔案上傳至 Unity 目錄磁碟區

注意

您必須是中繼存放區管理員,或具有 MANAGE ALLOWLIST 修改allowlist的許可權。 請參閱 MANAGE ALLOWLIST

重要

在已啟用 Unity 目錄的共享計算上,做為 JDBC 驅動程式或自定義 Spark 數據源的連結庫需要 ANY FILE 許可權。

某些已安裝的連結庫會將所有用戶的數據儲存在一個通用暫存目錄中。 這些連結庫可能會危害用戶隔離。

如何將專案新增至allowlist

您可以使用目錄總管或 REST API 將專案新增至allowlist

若要在目錄總管中開啟將專案新增至allowlist的對話框,請執行下列動作:

  1. 在您的 Azure Databricks 工作區中,按兩下 目錄圖示 [目錄]。
  2. 按兩下 齒輪圖示 以開啟中繼存放區詳細資料和許可權UI。
  3. 選取 [允許的 JAR/Init 腳本]。
  4. 按一下新增

重要

這個選項只會針對足夠特殊許可權的用戶顯示。 如果您無法存取allowlist UI,請連絡中繼存放區管理員以取得允許清單連結庫和init腳本的協助。

將 init 腳本新增至 allowlist

完成 [允許清單] 對話框中的下列步驟,將 init 腳本新增至 allowlist:

  1. 針對 [ 類型],選取 [Init 腳本]。
  2. 針對 [來源類型],選取 [磁碟區] 或 [物件儲存通訊協定]。
  3. 指定要新增至allowlist的來源路徑。 請參閱 如何在allowlist中強制執行路徑的許可權?

將 JAR 新增至允許清單

完成 [允許清單] 對話框中的下列步驟,將 JAR 新增至 allowlist:

  1. 針對 [ 類型],選取 [JAR]。
  2. 針對 [來源類型],選取 [磁碟區] 或 [物件儲存通訊協定]。
  3. 指定要新增至allowlist的來源路徑。 請參閱 如何在allowlist中強制執行路徑的許可權?

將 Maven 座標新增至 allowlist

完成 [允許清單] 對話框中的下列步驟,將 Maven 座標新增至 allowlist:

  1. 針對 [ 類型],選取 [Maven]。
  2. 針對 [ 來源類型],選取 [ 座標]。
  3. 以下列格式輸入座標: groudId:artifactId:version
    • 您可以藉由列出下列格式來包含連結庫的所有版本: groudId:artifactId
    • 您可以藉由列出下列格式,在群組中包含所有成品: groupId

如何在允許清單中強制執行路徑的許可權?

您可以使用允許清單,將存取權授與儲存在 Unity 目錄磁碟區和物件記憶體中的 JAR 或 init 腳本。 如果您新增目錄而非檔案的路徑,則allowlist許可權會傳播至包含的檔案和目錄。

前置詞比對用於儲存在 Unity 目錄磁碟區或物件記憶體中的所有成品。 若要防止指定目錄層級的前置詞比對,請包含尾端斜線 (/)。 例如, /Volumes/prod-libraries/ 不會針對前面加上 prod-libraries的檔案執行前置詞比對。 相反地,內 /Volumes/prod-libraries/ 的所有檔案和目錄都會新增至allowlist。

您可以在下列層級定義權限:

  1. 磁碟區或記憶體容器的基底路徑。
  2. 巢狀目錄,位於基底路徑的任何深度。
  3. 單一檔案。

將路徑新增至allowlist僅表示路徑可用於init腳本或JAR安裝。 Azure Databricks 仍然會檢查許可權,以存取指定位置中的數據。

使用的主體必須具有 READ VOLUME 指定磁碟區的許可權。 請參閱 SELECT

在單一使用者存取模式中,會使用指派主體的身分識別(用戶或服務主體)。

在共享存取模式中:

  • 連結庫會使用連結庫安裝程式的身分識別。
  • Init 腳本會使用叢集擁有者的身分識別。

注意

無隔離共用存取模式不支援磁碟區,但使用與共用存取模式相同的身分識別指派。

Databricks 建議使用唯讀許可權來設定與 init 腳本和連結庫相關的所有物件記憶體許可權。 對這些位置具有寫入許可權的使用者,可能會修改連結庫檔案或 init 腳本中的程式碼。

Databricks 建議使用 Microsoft Entra ID 服務主體來管理 Azure Data Lake Storage Gen2 中儲存之 JAR 或 init 腳本的存取權。 使用下列連結的檔案來完成此設定:

  1. 在所需的 Blob 上建立具有讀取和列出許可權的服務主體。 請參閱 使用服務主體存取記憶體和 Microsoft Entra ID(Azure Active Directory)

  2. 使用秘密儲存您的認證。 請參閱 秘密

  3. 在建立叢集時設定 Spark 組態和環境變數中的屬性,如下列範例所示:

    Spark 組態:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    環境變數:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (選擇性)使用 azcopyAzure CLI 重構 init 腳本。

    您可以在 init 腳本內的叢集設定期間參考環境變數,以傳遞儲存為驗證秘密的認證。

注意

JAR 和 init 腳本的 Allowlist 許可權會分開管理。 如果您使用相同的位置來儲存這兩種類型的物件,則必須將位置新增至每個物件的allowlist。