共用方式為


建立用來連線至 Azure Data Lake Storage Gen2 的記憶體認證

本文說明如何在 Unity Catalog 中建立記憶體認證,以連線到 Azure Data Lake Storage Gen2。

若要管理保存 tables 和 volumes的基礎雲端記憶體存取權,Unity Catalog 會使用下列物件類型:

  • 記憶體 credentials 封裝長期雲端認證,以提供雲端記憶體的存取權。
  • 外部位置 包含記憶體認證和雲端記憶體路徑的參考。

如需詳細資訊,請參閱 使用 Unity 管理雲端記憶體的存取 Catalog

注意

如果您想要使用 Unity Catalog 來管理對於外部服務的存取權,而不是雲端儲存空間,請參閱 使用服務 credentials管理外部雲端服務的存取權。

Unity Catalog 支援 Azure Databricks 的三個雲端記憶體選項:Azure Data Lake Storage Gen2 容器、Cloudflare R2 貯體和 DBFS 根目錄。 Cloudflare R2 主要適用於您想要避免數據輸出費用的差異共用使用案例。 Azure Data Lake Storage Gen2 適用於大部分的其他使用案例。 本文著重於為 Azure Data Lake Storage Gen2 容器建立儲存體 credentials。 針對 Cloudflare R2,請參閱 建立記憶體認證以連線到 Cloudflare R2

DBFS 根用來管理您對 DBFS 根的存取權。 雖然 Databricks 建議不要將數據儲存在 DBFS 根記憶體中,但由於舊版做法,您的工作區可能會這麼做。 針對 DBFS 根目錄,請參閱 建立 DBFS 根目錄中資料的外部位置

若要建立記憶體認證以存取 Azure Data Lake Storage Gen2 容器,您可以建立參考 Azure 受控識別的 Azure Databricks 存取連接器,為其指派記憶體容器的許可權。 接著,您會在記憶體認證定義中參考該存取連接器。

需求

在 Azure Databricks 中:

  • 已啟用 Unity Catalog的 Azure Databricks 工作區。
  • CREATE STORAGE CREDENTIAL 附加至工作區的 Unity Catalog 中繼存放區許可權。 帳戶管理員和中繼存放區管理員預設具有此權限。

在您的 Azure 租使用者中:

  • Azure Data Lake Storage Gen2 記憶體容器。 若要避免輸出費用,這應該與您要存取數據的工作區位於相同的區域中。

    Azure Data Lake Storage Gen2 儲存器帳戶必須具有階層命名空間。

  • Azure 資源群組的參與者或擁有者。

  • 在記憶體帳戶上具有使用者存取系統管理員 Azure RBAC 角色的擁有者或使用者。

使用受控識別建立記憶體認證

您可以使用 Azure 受控識別 或服務主體作為授權存取記憶體容器的身分識別。 強烈建議使用受控識別。 他們的優點是允許 Unity Catalog 存取受網路規則保護的記憶體帳戶,這無法使用服務主體,而且它們 remove 管理和輪替秘密的需求。 如果您要使用服務主體,請參閱使用服務主體(舊版)建立 Unity Catalog 受管儲存體

  1. 在 Azure 入口網站中,建立 Azure Databricks 存取連接器,並為您想要存取的儲存體容器指派許可權,請參照 設定 Unity 的受控識別 Catalog中的指示進行設定。

    Azure Databricks 存取連接器是第一方 Azure 資源,可讓您將受控識別連線到 Azure Databricks 帳戶。 您必須在 Azure 中的存取連接器資源上擁有 參與者 角色或更高角色,才能新增記憶體認證。

    記下存取連接器的資源標識碼。

  2. 以具有 CREATE STORAGE CREDENTIAL 許可權的使用者身分登入您的 Unity Catalog-enabled Azure Databricks 工作區。

    中繼存放區管理員和帳戶管理員角色都包含此許可權。

  3. 點選 Catalog 圖示Catalog

  4. 在 [快速存取] 頁面上,按一下 [外部數據 >] 按鈕,移至 [Credentials] 索引標籤,然後 [select建立認證]。

  5. Select 記憶體認證

  6. Select 認證類型Azure 管理的身份

  7. 輸入認證的名稱,並以下列格式輸入存取連接器的資源識別碼:

    /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  8. (選擇性)如果您使用使用者指派的受控識別建立存取連接器,請在 [使用者指派的受控識別識別碼] 字段中輸入受控識別的資源識別元,格式如下:

    /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
    
  9. (選擇性)如果您希望使用者對使用此存取憑證的外部位置具有唯讀權限,select唯讀。 如需詳細資訊,請參閱 將記憶體認證標示為唯讀

  10. 按一下 [建立]。

  11. (選擇性)將記憶體認證系結至特定工作區。

    根據預設,任何特殊許可權使用者都可以在任何連結至中繼存放區的工作區上使用記憶體認證。 如果您想要只允許從特定工作區存取,請移至 [ 工作區] 索引 標籤並指派工作區。 請參閱 (選擇性) 將記憶體認證指派給特定工作區

  12. 建立參考此記憶體認證的外部位置

(選擇性)將記憶體認證指派給特定工作區

重要

這項功能處於公開預覽狀態

根據預設,記憶體認證可從中繼存放區中的所有工作區存取。 這表示如果使用者已獲授與該記憶體認證的許可權(例如 CREATE EXTERNAL LOCATION),他們可以從附加至中繼存放區的任何工作區執行該許可權。 如果您使用工作區來隔離用戶數據存取,您可能只想要允許從特定工作區存取記憶體認證。 這項功能稱為工作區系結或記憶體認證隔離。

將記憶體認證系結至特定工作區的一般使用案例是雲端系統管理員使用生產雲端帳戶認證設定記憶體認證的情況,而您想要確保 Azure Databricks 使用者使用此認證,只在生產工作區中建立外部位置。

如需工作區系結的詳細資訊,請參閱 (選擇性) 將外部位置指派給特定工作區Limitcatalog 存取特定工作區

注意

當對記憶體 credentials 行使許可權時,會參考工作區系結。 例如,如果使用者使用記憶體認證建立外部位置,則只有在建立外部位置時,才會檢查記憶體認證上的工作區系結。 建立外部位置之後,它會獨立於記憶體認證上設定的工作區系結。

將記憶體認證系結至一或多個工作區

若要將記憶體認證指派給特定工作區,您可以使用 Catalog Explorer 或 Databricks CLI。

記憶體認證上所需的許可權:中繼存放區管理員、記憶體認證擁有者或 MANAGE

注意

無論記憶體認證是否已指派給目前工作區,中繼存放區管理員都可以使用 Catalog Explorer 來查看中繼存放區中的所有記憶體 credentials,而記憶體認證擁有者可以看到他們在中繼存放區中擁有的所有記憶體 credentials。 未指派給工作區的儲存空間 credentials 會顯示為灰色。

Catalog 瀏覽器

  1. 登入連結至中繼存放區的工作區。

  2. 在側邊欄中,點擊 Catalog 圖示Catalog

  3. 在 [快速存取] 頁面上,按兩下 [外部數據 >] 按鈕,然後移至 [Credentials] 索引標籤。

  4. Select 儲存憑證,然後前往 [工作區] 標籤。

  5. 在 [ 工作區] 索引 標籤上,清除 [ 所有工作區都有存取權 ] 複選框。

    如果您的記憶體認證已經系結至一或多個工作區,則會清除此複選框。

  6. 按兩下 [ 指派給工作區 ],然後輸入或尋找您想要指派的工作區。

若要存取 revoke,請移至 [工作區] 索引標籤,選擇 select 工作區,然後按一下 [Revoke]。 若要允許從所有工作區存取,請勾選select 所有工作區具有存取權 複選框

CLI

有兩 個 Databricks CLI 命令群組,以及將記憶體認證指派給工作區所需的兩個步驟。

在下列範例中,將 取代 <profile-name> 為您的 Azure Databricks 驗證組態配置檔名稱。 它應該包含您產生個人存取令牌的值,以及該工作區的工作區實例名稱和工作區標識碼(where)。 請參閱 Azure Databricks 個人存取權杖驗證

  1. 使用 storage-credentials 命令群組的 update 命令來將儲存憑證的 isolation modeset 到 ISOLATED

    databricks storage-credentials update <my-storage-credential> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    預設值 isolation-modeOPEN 附加至中繼存放區的所有工作區。

  2. workspace-bindings使用命令群組的 update-bindings 命令,將工作區指派給記憶體認證:

    databricks workspace-bindings update-bindings storage-credential <my-storage-credential> \
    --json '{
      "add": [{"workspace_id": <workspace-id>}...],
      "remove": [{"workspace_id": <workspace-id>}...]
    }' --profile <profile-name>
    

    使用 "add""remove" 屬性來新增或進行 remove 工作區系結。

    注意

    唯讀系結 (BINDING_TYPE_READ_ONLY) 不適用於記憶體 credentials。 因此,沒有理由 setbinding_type 儲存 credentials 綁定。

若要 list 儲存認證的所有工作區指派,請使用 workspace-bindings 命令群組的 get-bindings 命令:

databricks workspace-bindings get-bindings storage-credential <my-storage-credential> \
--profile <profile-name>

從工作區解除系結記憶體認證

使用 Catalog Explorer 或 workspace-bindings CLI 命令群組撤銷工作區存取權的指示包含在 將記憶體認證系結至一或多個工作區

下一步

您可以檢視、update、刪除以及 grant 其他使用者對使用存儲 credentials的許可權。 請參閱 管理記憶體 credentials

您可以使用記憶體 credentials來定義外部位置。 如需相關資訊,請參閱建立外部位置以將雲端儲存連線到 Azure Databricks