使用服务主体通过 Microsoft Entra ID(以前为 Azure Active Directory)访问存储

注意

本文介绍用于配置对 Azure Data Lake Storage Gen2 的访问的旧模式。

Databricks 建议使用 Azure 托管标识作为 Unity 目录存储凭据连接到 Azure Data Lake Storage Gen2,而不是服务主体。 托管标识的优点是支持 Unity Catalog 访问受网络规则保护的存储帐户(而使用服务主体无法实现此目的),并且无需管理和轮换机密。 有关详细信息,请参阅“使用 Unity Catalog 中的 Azure 托管标识访问存储”

向 Microsoft Entra ID(以前称为 Azure Active Directory)注册应用程序会创建一个服务主体,可用于提供对 Azure 存储帐户的访问。

然后,可以将访问这些服务主体配置为 Unity 目录中的存储凭据或通过机密存储的凭据。

注册 Microsoft Entra 应用程序

注册 Microsoft Entra ID(以前为 Azure Active Directory)应用程序并分配适当的权限,这将创建可访问 Azure Data Lake Storage Gen2 或 Blob 存储资源的服务主体。

若要注册 Microsoft Entra ID 应用程序,你必须在 Microsoft Entra ID 中具有 Application Administrator 角色或 Application.ReadWrite.All 权限。

  1. 在 Azure 门户中,转到“Microsoft Entra ID”服务。
  2. 在“管理”下,单击“应用注册” 。
  3. 单击“+ 新建注册”。 输入应用程序的名称,然后单击“注册”。
  4. 单击“证书和机密”
  5. 单击“+ 新建客户端密码”。
  6. 添加机密说明,并单击“添加”。
  7. 复制并保存新机密的值。
  8. 在应用程序注册概述中,复制并保存“应用程序(客户端) ID”和“目录(租户) ID” 。

分配角色

可以通过向与存储帐户关联的 Microsoft Entra ID 应用程序注册分配角色来控制对存储资源的访问。 可能需要根据特定要求分配其他角色。

若要在某个存储帐户中分配角色,你必须在该存储帐户中具有所有者角色或者是用户访问管理员 Azure RBAC 角色。

  1. 在 Azure 门户中,转到“存储帐户”服务。
  2. 选择要用于此应用程序注册的 Azure 存储帐户。
  3. 单击“访问控制(IAM)”。
  4. 单击“+ 添加”,然后从下拉菜单中选择“添加角色分配” 。
  5. 将“选择”字段设置为 Microsoft Entra ID 应用程序名称,并将“角色”设置为“存储 Blob 数据参与者”。
  6. 单击“保存” 。

若要使用服务主体在存储帐户上启用文件事件访问,必须在 Azure Data Lake Storage Gen2 帐户所属的 Azure 资源组上具有所有者或用户访问管理员 Azure RBAC 角色。

  1. 按照上述步骤操作,分配服务主体的“存储队列数据参与者”“存储帐户参与者”角色。
  2. 导航到 Azure Data Lake Storage Gen2 帐户位所属的 Azure 资源组。
  3. 转到“访问控制(IAM)”,单击“+ 添加”,然后选择“添加角色分配”。
  4. 选择“EventGrid EventSubscription 参与者”角色,然后单击“下一步”。
  5. 在“将访问权限分配至”下,选择“服务主体”。
  6. 单击“+选择成员”,选择服务主体,然后单击“查看并分配”。

或者,可以通过仅向服务主体授予“存储队列数据参与者”角色,并不向资源组授予任何角色来限制访问权限。 在这种情况下,Azure Databricks 无法代表你配置文件事件。