建立用來連線至 Azure Data Lake Storage Gen2 的記憶體認證
本文說明如何在 Unity 目錄中建立記憶體認證,以連線到 Azure Data Lake Storage Gen2。
若要管理保存資料表和磁碟區之基礎雲端儲存體的存取權,Unity Catalog 會使用下列物件類型:
- 記憶體認證 會封裝長期雲端認證,以提供雲端記憶體的存取權。
- 外部位置 包含記憶體認證和雲端記憶體路徑的參考。
如需詳細資訊,請參閱 使用 Unity 目錄管理雲端記憶體的存取權。
注意
如果您想要使用 Unity 目錄來管理外部服務的存取權,而不是雲端記憶體,請參閱 使用服務認證管理外部雲端服務的存取權。
Unity Catalog 支援 Azure Databricks 的三個雲端儲存選項:Azure Data Lake Storage Gen2 容器、Cloudflare R2 儲存桶和 DBFS 根。 Cloudflare R2 主要適用於您想要避免數據輸出費用的差異共用使用案例。 Azure Data Lake Storage Gen2 適用於大部分的其他使用案例。 本文著重於建立 Azure Data Lake Storage Gen2 容器的記憶體認證。 針對 Cloudflare R2,請參閱 建立記憶體認證以連線到 Cloudflare R2。
DBFS 根用來管理您對 DBFS 根的存取權。 雖然 Databricks 建議不要將數據儲存在 DBFS 根記憶體中,但由於舊版做法,您的工作區可能會這麼做。 針對 DBFS 根目錄,請參閱 建立 DBFS 根目錄中資料的外部位置。
若要建立記憶體認證以存取 Azure Data Lake Storage Gen2 容器,您可以建立參考 Azure 受控識別的 Azure Databricks 存取連接器,為其指派記憶體容器的許可權。 接著,您會在記憶體認證定義中參考該存取連接器。
需求
在 Azure Databricks 中:
- 已啟用 Unity 目錄的 Azure Databricks 工作區。
- 連結至工作區之 Unity 目錄中繼存放區上的
CREATE STORAGE CREDENTIAL
權限。 帳戶管理員和中繼存放區管理員預設具有此權限。
在您的 Azure 租使用者中:
Azure Data Lake Storage Gen2 記憶體容器。 若要避免輸出費用,這應該與您要存取數據的工作區位於相同的區域中。
Azure Data Lake Storage Gen2 儲存器帳戶必須具有階層命名空間。
Azure 資源群組的參與者或擁有者。
在記憶體帳戶上具有使用者存取系統管理員 Azure RBAC 角色的擁有者或使用者。
使用受控識別建立記憶體認證
您可以使用 Azure 受控識別 或服務主體作為授權存取記憶體容器的身分識別。 強烈建議使用受控識別。 其優點是允許 Unity 目錄存取受網路規則保護的記憶體帳戶,這無法使用服務主體,而且不需要管理和輪替秘密。 如果您想要使用服務主體,請參閱使用服務主體建立 Unity 目錄受控記憶體(舊版)。
在 Azure 入口網站 中,使用設定 Unity 目錄受控識別中的指示,建立 Azure Databricks 存取連接器,並在您想要存取的記憶體容器上指派許可權。
Azure Databricks 存取連接器是第一方 Azure 資源,可讓您將受控識別連線到 Azure Databricks 帳戶。 您必須在 Azure 中的存取連接器資源上擁有 參與者 角色或更高角色,才能新增記憶體認證。
記下存取連接器的資源標識碼。
以具有
CREATE STORAGE CREDENTIAL
許可權的使用者身分登入已啟用 Unity 目錄的 Azure Databricks 工作區。中繼存放區管理員和帳戶管理員角色都包含此許可權。
按下 [目錄]。
在 [快速存取] 頁面上,按兩下 [外部數據] 按鈕,移至 [>] 索引卷標,然後選取 [建立認證]。
選取 [ 記憶體認證]。
選取 Azure 受控識別的認證類型。
輸入認證的名稱,並以下列格式輸入存取連接器的資源識別碼:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
(選擇性)如果您使用使用者指派的受控識別建立存取連接器,請在 [使用者指派的受控識別識別碼] 字段中輸入受控識別的資源識別元,格式如下:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
(選擇性)如果您希望使用者具有使用此記憶體認證之外部位置的唯讀存取權,請選取 [ 只讀]。 如需詳細資訊,請參閱 將記憶體認證標示為唯讀。
按一下 [建立]。
(選擇性)將記憶體認證系結至特定工作區。
根據預設,任何特殊許可權使用者都可以在任何連結至中繼存放區的工作區上使用記憶體認證。 如果您想要只允許從特定工作區存取,請移至 [ 工作區] 索引 標籤並指派工作區。 請參閱 (選擇性) 將記憶體認證指派給特定工作區。
(選擇性)將記憶體認證指派給特定工作區
重要
這項功能處於公開預覽狀態。
根據預設,記憶體認證可從中繼存放區中的所有工作區存取。 這表示如果使用者已獲授與該記憶體認證的許可權(例如 CREATE EXTERNAL LOCATION
),他們可以從附加至中繼存放區的任何工作區執行該許可權。 如果您使用工作區來隔離用戶數據存取,您可能只想要允許從特定工作區存取記憶體認證。 這項功能稱為工作區系結或記憶體認證隔離。
將記憶體認證系結至特定工作區的一般使用案例是雲端系統管理員使用生產雲端帳戶認證設定記憶體認證的情況,而您想要確保 Azure Databricks 使用者使用此認證,只在生產工作區中建立外部位置。
如需工作區系結的詳細資訊,請參閱(選擇性)將外部位置指派給特定工作區,以及限制特定工作區的目錄存取權。
注意
當對記憶體認證行使許可權時,會參考工作區系結。 例如,如果使用者使用記憶體認證建立外部位置,則只有在建立外部位置時,才會檢查記憶體認證上的工作區系結。 建立外部位置之後,它會獨立於記憶體認證上設定的工作區系結。
將記憶體認證系結至一或多個工作區
若要將記憶體認證指派給特定工作區,您可以使用目錄總管或 Databricks CLI。
記憶體認證上所需的許可權:中繼存放區管理員、記憶體認證擁有者或 MANAGE
。
注意
中繼存放區系統管理員可以使用目錄總管查看中繼存放區中的所有記憶體認證,而記憶體認證擁有者可以看到他們在中繼存放區中擁有的所有記憶體認證,而不論記憶體認證是否已指派給目前的工作區。 未指派給工作區的記憶體認證會顯示為灰色。
目錄總管
登入連結至中繼存放區的工作區。
在提要欄位中,按兩下 [目錄]。
在 [快速存取] 頁面上,按兩下 [外部數據] 按鈕,然後移至 [>] 索引卷標。
選取記憶體認證,然後移至 [ 工作區] 索引標籤 。
在 [ 工作區] 索引 標籤上,清除 [ 所有工作區都有存取權 ] 複選框。
如果您的記憶體認證已經系結至一或多個工作區,則會清除此複選框。
按兩下 [ 指派給工作區 ],然後輸入或尋找您想要指派的工作區。
若要撤銷存取權,請移至 [ 工作區] 索引 卷標,選取工作區,然後按兩下 [ 撤銷]。 若要允許從所有工作區存取,請選取 [ 所有工作區都有存取 權] 複選框。
CLI
有兩 個 Databricks CLI 命令群組,以及將記憶體認證指派給工作區所需的兩個步驟。
在下列範例中,將 取代 <profile-name>
為您的 Azure Databricks 驗證組態配置檔名稱。 它應該包含個人存取令牌的值,以及您產生個人存取令牌之工作區的工作區實例名稱和工作區標識符。 請參閱 Azure Databricks 個人存取權杖驗證。
storage-credentials
使用命令群組的update
指令,將記憶體認證的isolation mode
設定為ISOLATED
:databricks storage-credentials update <my-storage-credential> \ --isolation-mode ISOLATED \ --profile <profile-name>
預設值
isolation-mode
為OPEN
附加至中繼存放區的所有工作區。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 Databricks。