分享方式:


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

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

若要管理保存資料表和磁碟區之基礎雲端記憶體的存取權,Unity 目錄會使用下列物件類型:

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

如需詳細資訊,請參閱 使用 Unity 目錄連線到雲端物件記憶體。

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

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

需求

在 Azure Databricks 中:

  • 已啟用 Unity 目錄的 Azure Databricks 工作區。

  • CREATE STORAGE CREDENTIAL 附加至工作區之 Unity 目錄中繼存放區的許可權。 帳戶管理員和中繼存放區管理員預設具有此許可權。

    注意

    服務主體必須具有帳戶管理員角色,才能建立使用受控識別的記憶體認證。 您無法委派 CREATE STORAGE CREDENTIAL 給服務主體。 這同時適用於 Azure Databricks 服務主體和Microsoft Entra ID(先前稱為 Azure Active Directory) 服務主體。

在您的 Azure 租使用者中:

  • 與您要存取數據的工作區位於相同區域中的 Azure Data Lake Storage Gen2 記憶體容器。

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

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

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

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

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

  1. 在 Azure 入口網站 中,使用設定 Unity 目錄受控識別中的指示,建立 Azure Databricks 存取連接器,並在您想要存取的記憶體容器上指派許可權。

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

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

  2. 以具有 CREATE STORAGE CREDENTIAL 許可權的使用者身分登入已啟用 Unity 目錄的 Azure Databricks 工作區。

    中繼存放區管理員和帳戶管理員角色都包含此許可權。 如果您以服務主體身分登入(無論是Microsoft Entra ID 或原生 Azure Databricks 服務主體),您必須擁有帳戶管理員角色,才能建立使用受控識別的記憶體認證。

  3. 按兩下 [目錄圖示目錄]。

  4. 按兩下 [ +新增 ] 按鈕,然後從功能表中選取 [新增記憶體認證 ]。

    如果您沒有許可權, CREATE STORAGE CREDENTIAL 則不會出現此選項。

  5. 選取 Azure 受控識別認證類型

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

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

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

  9. 按一下 [檔案] 。

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

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

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

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

重要

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

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

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

如需工作區系結的詳細資訊,請參閱(選擇性)將外部位置指派給特定工作區,以及限制特定工作區的目錄存取權。

注意

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

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

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

需要的許可權:中繼存放區管理員或記憶體認證擁有者。

注意

中繼存放區系統管理員可以使用目錄總管查看中繼存放區中的所有記憶體認證,而記憶體認證擁有者可以看到他們在中繼存放區中擁有的所有記憶體認證,而不論記憶體認證是否已指派給目前的工作區。 未指派給工作區的記憶體認證會顯示為灰色。

目錄總管

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

  2. 在提要欄位中,按兩下 目錄圖示[目錄]。

  3. 在畫面底部,按兩下 [外部資料 > 記憶體認證]。

  4. 選取記憶體認證,然後移至 [ 工作區] 索引標籤

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

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

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

若要撤銷存取權,請移至 [ 工作區] 索引 卷標,選取工作區,然後按兩下 [ 撤銷]。 若要允許從所有工作區存取,請選取 [ 所有工作區都有存取 權] 複選框。

CLI

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

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

  1. storage-credentials使用命令群組的 update 指令,將記憶體認證的 isolation mode 設定為 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" 屬性來新增或移除工作區系結。

    注意

    唯讀系結 (BINDING_TYPE_READ_ONLY) 不適用於記憶體認證。 因此,沒有理由設定 binding_type 記憶體認證系結。

若要列出記憶體認證的所有工作區指派,請使用 workspace-bindings 命令群組的 get-bindings 命令:

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

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

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

下一步

您可以檢視、更新、刪除,以及授與其他使用者使用記憶體認證的許可權。 請參閱 管理記憶體認證

您可以使用記憶體認證來定義外部位置。 請參閱 建立記憶體認證以連線到 Azure Data Lake Storage Gen2