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

标识和授权

本文介绍已启用 Azure Arc 的服务器的 Microsoft Entra ID 托管标识,该标识用于在与 Azure 通信时进行身份验证,并详细介绍了两个内置 RBAC 角色。

Microsoft Entra ID 托管标识

每个已启用 Azure Arc 的服务器都有一个与之关联的系统分配的 Microsoft Entra ID 托管标识。 此标识可被代理用来向 Azure 进行身份验证。 它还可以被系统上的扩展或其他授权应用用来访问理解 OAuth 令牌的资源。 托管标识显示在与已启用 Azure Arc 的服务器资源相同的 Microsoft Entra ID 门户中。 例如,如果已启用 Azure Arc 的服务器命名为 prodsvr01,则 Microsoft Entra ID 中会出现同名的企业应用

每个 Microsoft Entra ID 目录对其可存储的对象数量都有一定的限制。 一个托管标识将计为目录中的一个对象。 如果计划大规模部署已启用 Azure Arc 的服务器,请先检查 Microsoft Entra ID 目录中的可用配额,并在必要时提交支持请求以获取更多配额。 可以在“directorySizeLimit”部分下的列表组织 API 响应中查看可用配额和已用配额。

托管标识由代理完全托管。 只要代理保持与 Azure 的连接,它就会自动处理凭据的轮换。 支持托管标识的证书有效期为 90 天。 当证书的剩余有效期为 45 天或更少时,代理会尝试续订证书。 如果代理脱机时间足够长而过期,则代理也会“过期”并且不会连接到 Azure。 在这种情况下,无法自动重新连接,因此需要使用加入凭据断开代理的连接并将其重新连接到 Azure。

托管标识证书存储在系统的本地磁盘上。 请务必保护此文件,因为拥有此证书的任何人都可以从 Microsoft Entra ID 请求令牌。 代理在 Windows 和 Linux 上的存储位置分别为 C:\ProgramData\AzureConnectedMachineAgent\Certs\ 和 /var/opt/azcmagent/certs。 代理会自动将访问控制列表应用于此目录,从而限制对本地管理员和“himds”帐户的访问。 请勿修改对证书文件的访问权限,也不要自行修改证书。 如果认为系统分配的托管标识的凭据已泄露,请从 Azure 断开与代理的连接,然后再次连接以生成新的标识和凭据。 断开与代理的连接会删除 Azure 中的资源,包括其托管标识。

当系统上的应用程序想要获取托管标识的令牌时,它会向位于 http://localhost:40342/identity 的 REST 标识终结点发出请求。 与 Azure VM 相比,Azure Arc 处理此请求的方式略有不同。 来自 API 的第一个响应包括位于磁盘上的质询令牌的路径。 质询令牌在 Windows 上和 linux 上的存储位置分别为 C:\ProgramData\AzureConnectedMachineAgent\tokens 和 /var/opt/azcmagent/tokens。 调用方必须通过读取文件的内容并使用授权标头中此信息重新发出请求来证明他们有权访问此文件夹。 令牌目录配置为允许管理员和属于“混合代理扩展应用程序”(Windows) 或“himds”(Linux) 组的任何标识读取质询令牌。 如果授权自定义应用程序使用系统分配的托管标识,则应将其用户帐户添加到适当的组以授予其访问权限。

若要详细了解如何在已启用 Arc 的服务器上使用托管标识来验证和访问 Azure 资源,请观看以下视频。

RBAC 角色

Azure 中有两个内置角色可用于控制对已启用 Azure Arc 的服务器的访问:

  • Azure Connected Machine 加入,适用于用于将新计算机连接到 Azure Arc 的帐户。此角色允许帐户查看和创建新的 Arc 服务器,但不允许扩展管理。

  • Azure Connected Machine 资源管理员,适用于管理重新连接后的服务器的帐户。 此角色允许帐户读取、创建和删除 Arc 服务器、VM 扩展、许可证和专用链接范围。

Azure 中的通用 RBAC 角色也适用于已启用 Azure Arc 的服务器,包括读取者、参与者和所有者。

标识和访问控制

Azure 基于角色的访问控制用于控制哪些帐户可以查看和管理已启用 Azure Arc 的服务器。 在 Azure 门户中的访问控制 (IAM) 页上,可验证谁有权访问已启用 Azure Arc 的服务器。

Azure 门户的屏幕截图,显示显示了已启用 Azure Arc 的服务器访问控制。

授予了对资源的参与者角色或管理员角色访问权限的用户和应用程序可以对资源进行更改,包括在计算机上部署或删除扩展。 扩展可以包含在特权上下文中运行的任意脚本,因此请考虑将 Azure 资源上的任何参与者作为服务器的间接管理员。

Azure Connected Machine Onboarding 角色可用于进行大规模加入,只能在 Azure 中读取或创建新的已启用 Azure Arc 的服务器。 它不能用于删除已注册的服务器或用于管理扩展。 最佳做法是,建议仅将此角色分配给用于大规模载入计算机的 Microsoft Entra 服务主体。

如果用户是 Azure Connected Machine 资源管理员角色的成员,则可以读取、修改、重新加入和删除计算机。 此角色旨在支持对已启用 Azure Arc 的服务器进行管理,但不支持对资源组或订阅中的其他资源进行管理。