使用托管身份从 Azure 流分析作业访问 Azure 数据资源管理器

Azure 流分析支持为 Azure 数据资源管理器输出进行托管标识身份验证。 Azure 资源的托管标识是一项跨 Azure 功能,可便于用户创建与其中运行应用程序代码的部署关联的安全标识。 然后可以将该标识与访问控制角色进行关联,后者授予的自定义权限可用于访问应用程序需要的特定 Azure 资源。

借助托管标识,Azure 平台可管理此运行时标识。 对于标识本身或需要访问的资源,都不需要在应用程序代码或配置中存储和保护访问密钥。 有关 Azure 流分析的托管标识的详细信息,请参阅 Azure 流分析的托管标识。

本文介绍如何通过 Azure 门户为流分析作业的 Azure 数据资源管理器输出启用系统分配或用户分配的托管标识。 必须先具有流分析作业和 Azure 数据资源管理器资源,然后才能启用托管标识。

Important

  • Azure 数据资源管理器仅支持用于身份验证的 托管标识 。 无法使用连接字符串或密钥向 Azure 数据资源管理器群集进行身份验证。
  • 权限在 Azure 数据资源管理器数据库级别授予,而不是在群集 IAM 级别授予。

创建托管标识

首先,为您的 Azure 流分析 工作创建一个托管标识。 

  1. 在 Azure 门户中,打开 Azure 流分析作业。 

  2. 在左侧导航菜单中,选择“设置”下的“托管标识”。

  3. 选择工具栏上的“选择标识”。

  4. 在选择标识窗格中,对于用于作业的标识,选择系统分配。 或者,如果希望跨多个作业使用可重用标识,则可以启用 用户分配的托管标识 。

  5. 选择“保存”。

    Azure 门户的屏幕截图,其中显示了在流分析作业中选择托管标识的位置。

  6. 在 Microsoft Entra ID 中,为流分析作业的标识创建了一个服务主体。 新建标识的生命周期将由 Azure 管理。 删除流分析作业时,Azure 会自动删除关联的标识(即服务主体)。

在系统分配标识和用户分配标识之间进行选择

标识类型 何时使用
系统分配 更简单的设置;生命周期与流分析作业相关联
用户分配 可跨多个作业重复使用;适用于集中式访问控制

有关用户分配的托管标识的详细信息,请参阅 使用 Azure 流分析的用户分配托管标识。

保存配置时,服务主体的对象 ID(OID)将列为主体 ID,如下所示:

Azure 门户的屏幕截图,其中显示了如何选择流分析作业的主体 ID。

服务主体的名称与流分析作业相同。 例如,如果作业的名称是 MyASAJob,则服务主体的名称也是 MyASAJob。

向流分析作业授予访问 Azure 数据资源管理器的权限

要使流分析作业能够使用托管标识访问 Azure 数据资源管理器数据库,创建的服务主体必须具有对 Azure 数据资源管理器 数据库的特殊权限。 在此步骤中,您将在数据库级别为流分析作业的托管身份分配角色。

Azure 数据资源管理器提供以下用于数据库访问的内置角色。 对于 Azure 流分析,你需要这两个角色:

角色 Permissions
引入器 可以将数据引入数据库中的所有现有表,但不能查询数据。
Monitor 可以在数据库及其子实体的上下文中执行 .show 命令。

分配数据库权限

  1. 在 Azure 门户中,打开 Azure 数据资源管理器群集。

  2. 从左侧导航菜单中选择 “数据库 ”,然后选择目标数据库。

  3. 从左侧导航菜单中选择 “权限 ”。

  4. 选择 “添加 ”并选择 “引入器”。

    Azure 门户的屏幕截图,其中显示了如何添加引入器和监视角色。

  5. 搜索并选择流分析作业的托管标识(其名称与流分析作业相同)。

  6. 选择 “选择 ”以确认。

  7. 重复步骤 4-6 以添加 监视器 角色。

注释

由于全局复制或缓存延迟,在撤销或授予权限时可能会有延迟。 更改应在 8 分钟内反映出来。

添加 Azure 数据资源管理器作为输出

现在托管标识已配置完毕,您可以准备将 Azure 数据资源探查器资源作为输出添加到流分析作业。 

  1. 转到你的流分析作业,然后导航到 作业拓扑 下的 输出 页面。

  2. 选择添加> Azure 数据浏览器。

    显示如何选择 Azure 数据资源管理器作为输出的 Azure 流分析作业的屏幕截图。

  3. 在“输出属性”窗口中,搜索并选择 Azure 数据资源管理器群集或键入群集的 URL,然后从“身份验证模式”下拉菜单中选择“托管标识: 系统分配”。

  4. 填写其余属性,包括:

    • 数据库名称:Azure 数据资源管理器群集中的目标数据库
    • 表名称:将引入数据的目标表

    显示如何配置 Azure 数据资源管理器输出的 Azure 流分析作业的屏幕截图。

  5. 选择“保存”。

确保表架构兼容性

若要成功引入,流分析查询输出必须与 Azure 数据资源管理器表架构匹配:

  • 列名 必须完全匹配(区分大小写)
  • 数据类型 必须兼容
  • 列顺序 应与表架构保持一致

多余或不匹配的列会导致数据导入失败。 流分析使用 CSV 引入将数据发送到 Azure 数据资源管理器。

Tip

.show table <TableName> schema as json使用 Azure 数据资源管理器中的命令验证表架构是否与流分析查询输出匹配。

故障排除清单

如果遇到问题,请验证以下内容:

  • ✔️ 已在流分析作业中启用托管标识
  • ✔️ 标识在数据库级别添加为 数据库引入器 和 数据库监视器 (而不是群集 IAM)
  • ✔️ 流分析作业中配置了 Azure 数据资源管理器输出
  • ✔️ 表架构与流分析查询输出完全匹配
  • ✔️ 权限传播已过足够的时间(最多 8 分钟)

后续步骤