你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用托管标识从 Azure 流分析作业访问 Azure Cosmos DB

Azure 流分析支持为 Azure Cosmos DB 输出进行托管标识身份验证。 托管标识消除了基于用户的身份验证方法的限制,例如,由于每隔 90 天进行一次密码更改(否则用户令牌会过期),需要重新进行身份验证。 当你不再需要手动进行身份验证时,流分析部署可以完全自动化。 

托管标识是 Microsoft Entra ID 中注册的托管应用程序,表示给定的流分析作业。 托管应用程序用于对目标资源进行身份验证。 有关 Azure 流分析的托管标识的详细信息,请参阅 Azure 流分析的托管标识

本文介绍如何通过 Azure 门户为流分析作业的 Azure Cosmos DB 输出启用系统分配的托管标识。 在启用系统分配的托管标识之前,你必须先有流分析作业和 Azure Cosmos DB 资源。

创建托管标识

首先,创建 Azure 流分析作业的托管标识。 

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

  2. 从左侧导航菜单中,选择“配置”下的“托管标识”。 然后,选中“使用系统分配的托管标识”旁的框,然后选择“保存”。

    系统分配的托管标识

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

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

    主体 ID

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

向流分析作业授予访问 Azure Cosmos DB 帐户的权限

为了使流分析作业能够使用托管标识访问 Azure Cosmos DB,你创建的服务主体必须具有访问 Azure Cosmos DB 帐户的特殊权限。 在此步骤中,可以将角色分配给流分析作业的系统分配的托管标识。 Azure Cosmos DB 具有多个内置角色,可将这些角色分配到托管标识。 对于此解决方案,你将使用以下角色:

内置角色
Cosmos DB 内置数据参与者

重要

Azure Cosmos DB 数据平面内置基于角色的访问控制 (RBAC) 不会通过 Azure 门户公开。 若要分配 Cosmos DB 内置数据参与者角色,必须通过 Azure PowerShell 授予权限。 有关使用 Microsoft Entra ID 为 Azure Cosmos DB 帐户进行基于角色的访问控制的详细信息,请参阅使用 Microsoft Entra ID 为 Azure Cosmos DB 帐户配置基于角色的访问控制文档。

以下命令可用于使用 Azure Cosmos DB 对 ASA 作业进行身份验证。 $accountName$resourceGroupName 用于 Azure Cosmos DB 帐户,$principalId 是在上一步中获取的值,位于 ASA 作业的“标识”选项卡中。 你需要拥有对 Azure Cosmos DB 帐户的“参与者”访问权限,使此命令能够正常工作。

New-AzCosmosDBSqlRoleAssignment -AccountName $accountName -ResourceGroupName $resourceGroupName -RoleDefinitionId 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' -Scope "/" -PrincipalId $principalId

注意

由于全局复制或缓存延迟,在撤销或授予权限时可能会有延迟。 更改应在 10 分钟内反映出来。 尽管测试连接最初可以通过,但在权限完全传播之前启动作业时,作业可能会失败。

重要

如果未将 CosmosDB 帐户配置为接受来自“所有网络”的连接,则必须选择“接受来自公用 Azure 数据中心内的连接”。

将 Azure Cosmos DB 添加为输出

现在已经配置了托管标识,可以将 Azure Cosmos DB 资源作为输出添加到流分析作业了。 

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

  2. 选择“添加”>“Azure Cosmos DB”。 在输出属性窗口中,搜索并选择 Azure Cosmos DB 帐户,然后从“身份验证模式”下拉菜单中选择“托管标识: 系统分配的”。

  3. 填写其余属性并选择“保存”。

后续步骤