创建用于连接到 Azure Data Lake Storage Gen2 的存储凭据

本文介绍了如何在 Unity Catalog 中创建存储凭据以连接到 Azure Data Lake Storage Gen2。

为了管理对保存着表的基础云存储的访问,Unity Catalog 使用以下对象类型:

  • 存储凭据 - 封装提供对云存储的访问权限的长期云凭据。
  • 外部位置 - 包含对存储凭据和云存储路径的引用。

有关详细信息,请参阅使用 Unity Catalog 连接到云对象存储

Unity Catalog 支持 Azure Databricks 的两个云存储选项:Azure Data Lake Storage Gen2 容器和 Cloudflare R2 存储桶。 Cloudflare R2 主要用于你希望避免产生数据流出量费用的 Delta Sharing 用例。 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 Catalog 的 Azure Databricks 工作区。

  • 附加到工作区的 Unity Catalog 元存储的 CREATE STORAGE CREDENTIAL 权限。 默认情况下,帐户管理员和元存储管理员具有此权限。

    注意

    服务主体必须具有帐户管理员角色才能创建使用托管标识的存储凭据。 不能将 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 Catalog 访问受网络规则保护的存储帐户(而使用服务主体无法实现此目的),并且无需管理和轮换机密。 如果要使用服务主体,请参阅使用服务主体(旧版)创建 Unity Catalog 托管存储

  1. 在 Azure 门户中创建 Azure Databricks 访问连接器,并使用为 Unity Catalog 配置托管标识中的说明向其分配对希望访问的存储容器的权限。

    Azure Databricks 访问连接器是一种第一方 Azure 资源,让你可以将托管标识连接到 Azure Databricks 帐户。 必须在 Azure 的访问连接器资源上具有参与者角色或更高权限才能添加存储凭据。

    记下访问连接器的资源 ID。

  2. 以具有 CREATE STORAGE CREDENTIAL 特权的用户身份登录到已启用 Unity Catalog 的 Azure Databricks 工作区。

    元存储管理员和帐户管理员角色都包含此特权。 如果以服务主体身份登录(无论是 Microsoft Entra ID 还是本机 Azure Databricks 服务主体),则必须具有帐户管理员角色才能创建使用托管标识的存储凭据。

  3. 点击目录图标目录

  4. 单击“+添加”按钮,然后从菜单中选择“添加存储凭据”

    如果你没有 CREATE STORAGE CREDENTIAL 权限,则不会显示此选项。

  5. 选择“Azure 托管标识”作为凭据类型。

  6. 输入凭据的名称,并按以下格式输入访问连接器的资源 ID:

    /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  7. (可选)如果使用用户分配的托管标识创建了访问连接器,请在“用户分配的托管标识 ID”字段中输入托管标识的资源 ID,格式如下:

    /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
    
  8. (可选)如果希望用户对使用此存储凭据的外部位置具有只读访问权限,请选择“只读”。 有关详细信息,请参阅将存储凭据标记为只读

  9. 单击“保存” 。

  10. 创建引用此存储凭据的外部位置

后续步骤

可查看、更新、删除用于使用存储凭据的权限,并授予其他用户该权限。 请参阅管理存储凭据

可使用存储凭据定义外部位置。 请参阅创建外部位置以将云存储连接到 Azure Databricks