已启用 Azure Arc 的服务器安全概述
本文介绍使用已启用 Azure Arc 的服务器时可用的安全注意事项和控制。 无论你是安全实践者还是 IT 操作员,均可借助本文中的信息,自信地配置 Azure Arc 以满足组织的安全要求。
责任
已启用 Azure Arc 的服务器部署的安全性是你和 Microsoft 之间的共同责任。 Azure 负责:
- 保护存储系统元数据并为连接到该服务的代理协调操作的云服务。
- 保护存储在 Azure 中的系统元数据的隐私。
- 记录可选安全功能,以便了解部署选项的优点和缺点。
- 定期发布包含安全性、质量、性能和功能改进的代理更新。
你负责以下事项:
- 管理和监视对 Azure 订阅中已启用 Azure Arc 的资源的 RBAC 访问权限。
- 保护并定期轮换用于管理已启用 Azure Arc 的服务器的任何帐户的凭据。 这包括用于加入新服务器的任何服务主体机密或凭据。
- 确定本文档中所述的任何安全功能(例如扩展允许列表)是否应用于所部署的 Azure Connected Machine Agent。
- 使 Azure Connected Machine Agent 和扩展保持最新。
- 确定 Azure Arc 符合组织的法律、法规义务以及内部策略义务要求。
- 保护服务器本身,包括用于运行服务器的计算、存储和网络基础结构。
体系结构概述
已启用 Azure Arc 的服务器是基于代理的服务。 与 Azure Arc 的交互主要通过 Azure 的 API、门户和管理体验来实现。 在 Azure 中看到的数据和执行的操作通过安装在每个托管服务器上的 Azure Connected Machine Agent 进行中继。 Azure 是代理的事实来源。 告知代理执行某些操作(例如安装扩展)的唯一方法是,对服务器的 Azure 表示形式执行操作。 这有助于确保在进行任何更改之前,组织的 RBAC 和策略分配可以评估请求。
Azure Connected Machine Agent 主要是其他 Azure 和第三方服务的启用平台。 其核心功能包括:
- 在计算机与 Azure 订阅之间建立关系
- 为代理和其他应用提供托管标识,以便在 Azure 进行身份验证时使用
- 使用扩展启用其他功能(代理、脚本)
- 在服务器上评估和强制执行设置
安装 Azure Connected Machine Agent 后,可以在服务器上启用其他 Azure 服务以满足监视、修补程序管理、远程访问或其他需求。 Azure Arc 的作用是帮助这些服务在 Azure 自己的数据中心以外运作。
可以使用 Azure Policy 来限制组织用户可以使用 Azure Arc 执行的操作。Azure Policy 等基于云的限制是大规模应用安全控制又能灵活地随时调整限制的好方法。 但是,有时你需要更强大的控制措施来防范用于规避安全措施(例如禁用策略)的合法特权帐户。 考虑到这一点,Azure Connected Machine Agent 还拥有自己的安全控制,这些控制优先于云中设置的任何限制。
代理服务
Azure Connected Machine Agent 由四个服务/守护程序组合而成,这些服务/守护程序在服务器上运行,并帮助将其与 Azure 建立连接。 它们作为单个应用程序安装在一起,并使用 azcmagent 命令行接口进行集中管理。
Hybrid Instance Metadata Service
Hybrid Instance Metadata Service (HIMDS) 是代理中的“核心”服务,负责向 Azure 注册服务器、持续进行元数据同步(检测信号)、执行托管标识操作,以及托管本地 REST API(其他应用可以查询该 API 来了解设备与 Azure 的连接情况)。 该服务没有特权,在 Windows 上作为虚拟帐户 (NT SERVICE\himds with SID S-1-5-80-4215458991-2034252225-2287069555-1155419622-2701885083) 运行,在 Linux 操作系统上作为标准用户帐户 (himds) 运行。
扩展管理器
扩展管理器负责在计算机上安装、配置、升级和删除其他软件。 Azure Arc 开箱即用,不知道如何执行诸如监视或修补计算机之类的操作。 相反,当你选择使用这些功能时,扩展管理器会下载并启用这些功能。 扩展管理器在 Windows 上以本地系统身份运行,在 Linux 上以根身份运行,因为它安装的软件可能需要系统完全访问权限。 你可以限制扩展管理器能够安装的扩展,如果不想使用人任何扩展,也可以完全将其禁用。
来宾配置
来宾配置服务在服务器上评估并强制实施 Azure 计算机(来宾)配置策略。 这些策略是在 PowerShell Desired State Configuration 中编写的特殊 Azure 策略,用于检查服务器上的软件设置。 来宾配置服务会定期评估并报告这些策略的合规性,如果策略是在强制模式下配置的,则将更改系统上的设置,以便在必要时使计算机重新满足合规性要求。 来宾配置服务在 Windows 上以本地系统身份运行,在 Linux 上以根身份运行,以确保它有权访问系统上的所有设置。 如果不打算使用来宾配置策略,可以禁用来宾配置功能。
Azure Arc 代理
Azure Arc 代理服务负责聚合来自 Azure Connected Machine Agent 服务和已安装的任何扩展的网络流量,并确定要将该数据路由到的位置。 如果使用 Azure Arc 网关来简化网络终结点,则 Azure Arc 代理服务是通过 Azure Arc 网关(而不是默认路由)转发网络请求的本地组件。 Azure Arc 代理在 Windows 上作为网络服务运行,在 Linux 上作为标准用户帐户 (arcproxy) 运行。 默认情况下,它处于禁用状态,直到将代理配置为使用 Azure Arc 网关。
第 0 层资产的安全注意事项
第 0 层资产(例如 Active Directory 域控制器、证书颁发机构服务器或高度敏感的商业应用程序服务器)可以连接到 Azure Arc,但应格外谨慎,确保只有所需的管理功能和授权用户才能管理服务器。 这些建议不是必需的,但强烈建议维护第 0 层资产的安全状况。
Azure 专用订阅
对已启用 Azure Arc 的服务器的访问通常由其在 Azure 中所属的组织层次结构决定。 应将任何订阅或管理组管理员视为相当于第 0 层资产的本地管理员,因为他们可以使用其权限向 Azure Arc 资源添加新的角色分配。 此外,在订阅或管理组级别应用的策略也可能有权对服务器进行更改。
若要最大限度地减少有权访问第 0 层资产的帐户和策略的数量,请考虑使用 Azure 专用订阅,该订阅可以由尽可能少的长期管理员进行密切监视和配置。 查看任何父管理组中的 Azure 策略,确保它们与你对这些服务器的预期一致。
禁用不必要的管理功能
对于第 0 层资产,应使用本地代理安全控制来禁用代理中未使用的任何功能,以防止有意或无意地使用这些功能对服务器进行更改。 这包括:
- 禁用远程访问功能
- 为要使用的扩展设置扩展允许列表,如果不打算使用扩展,则禁用扩展管理器
- 如果不打算使用计算机配置策略,则禁用计算机配置代理
以下示例演示如何锁定域控制器的 Azure Connected Machine Agent,该域控制器需要使用 Azure Monitor 代理收集 Microsoft Sentinel 和 Microsoft Defender for Servers 的安全日志以防范恶意软件威胁:
azcmagent config set incomingconnections.enabled false
azcmagent config set guestconfiguration.enabled false
azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent,Microsoft.Azure.AzureDefenderForServers/MDE.Windows"