本文介绍了 VM 和操作系统的安全最佳做法。
最佳做法来自意见的共识,它们适用于当前的 Azure 平台功能和功能集。 由于意见和技术可能会随时间而变化,本文将更新以反映这些更改。
在大多数基础结构即服务 (IaaS) 方案中,Azure 虚拟机 (VM) 是使用云计算的组织的主要工作负荷。 这种事实在混合方案中十分明显,组织希望在混合方案中慢慢将工作负载迁移到云。 在这种方案中,应遵循 IaaS 常规安全注意事项,并向所有 VM 应用安全最佳做法。
通过身份验证和访问控制保护 VM
若要保护 VM,请确保只有经过授权的用户才能设置新 VM 并访问现有 VM。
注意
若要改进 Azure 上 Linux VM 的安全性,可以与 Microsoft Entra 身份验证集成。 将 Microsoft Entra 身份验证用于 Linux VM 时,可以通过集中控制和强制实施策略来允许或拒绝对 VM 的访问。
最佳做法:控制 VM 访问。 详细信息:使用 Azure 策略建立组织中的资源约定和创建自定义策略。 将这些策略应用于资源,如资源组。 属于该资源组的 VM 将继承该组的策略。
如果你的组织有多个订阅,则可能需要一种方法来高效地管理这些订阅的访问权限、策略和符合性。 Azure 管理组提供订阅上的作用域级别。 可将订阅组织到管理组(容器)中,并将管理条件应用到该组。 管理组中的所有订阅都将自动继承应用于该组的条件。 不管使用什么类型的订阅,管理组都能提供大规模的企业级管理。
最佳做法:减少 VM 的安装和部署的可变性。 详细信息:使用 Azure 资源管理器模板增强部署选项,使其更易理解并清点环境中的 VM。
最佳做法:保护特权访问。 详细信息:使用最低特权方法和内置 Azure 角色使用户能够访问和设置 VM:
- 虚拟机参与者:可以管理 VM,但无法管理虚拟机连接的虚拟网络或存储帐户。
- 经典虚拟机参与者:可管理使用经典部署模型创建的 VM,但无法管理这些 VM 连接到的虚拟网络或存储帐户。
- 安全管理员:仅限在 Defender for Cloud 中:可以查看安全策略、查看安全状态、编辑安全策略、查看警报和建议、解除警报和建议。
- 开发测试实验室用户:可以查看所有内容,以及连接、启动、重新启动和关闭 VM。
订阅管理员和共同管理员可以更改此设置,使其成为订阅中所有 VM 的管理员。 信任所有订阅管理员和共同管理员登录到任何计算机。
注意
将具有相同生命周期的 VM 合并到同一资源组中。 使用资源组可以部署和监视资源,并统计资源的计费成本。
控制 VM 访问和设置的组织可改善其整体 VM 安全性。
使用虚拟机规模集实现高可用性
如果 VM 运行需要高可用性的关键应用程序,请使用 虚拟机规模集。
使用虚拟机规模集可以创建和管理一组负载均衡的 VM。 可以根据需求或定义的计划自动增减 VM 实例的数目。 规模集为应用程序提供高可用性,可以集中管理、配置和更新多个 VM。 规模集本身不产生任何费用,只需为创建的每个 VM 实例付费。
可以将规模集中的虚拟机部署到多个可用性区域、单个可用性区域或区域。
防范恶意软件
安装反恶意软件保护,以帮助识别和删除病毒、间谍软件和其他恶意软件。 可安装 Microsoft 反恶意软件或 Microsoft 合作伙伴的终结点保护解决方案(Trend Micro、Broadcom、McAfee、Windows Defender 和 System Center Endpoint Protection)。
Microsoft 反恶意软件包括实时保护、计划扫描、恶意软件修正、签名更新、引擎更新、示例报告和排除事件收集等功能。 对于独立于生产环境托管的环境,请使用反恶意软件扩展来帮助保护 VM 和云服务。
你可以将 Microsoft Antimalware 和合作伙伴解决方案与 Microsoft Defender for Cloud 集成,以便轻松部署和内置检测(警报和事件)。
最佳做法:安装反恶意软件解决方案,以防范恶意软件。
详细信息:安装 Microsoft 合作伙伴解决方案或 Microsoft 反恶意软件
最佳做法:将反恶意软件解决方案与 Defender for Cloud 集成,以监视你的保护状态。
详细信息:管理 Defender for Cloud 的终结点保护问题
管理 VM 更新
与所有本地 VM 一样,Azure VM 应由用户管理。 Azure 不会向他们推送 Windows 更新。 你需要管理 VM 更新。
最佳做法:使 VM 保持最新。
详细信息:使用 Azure 自动化中的更新管理解决方案,为部署在 Azure、本地环境或其他云提供程序中的 Windows 和 Linux 计算机管理操作系统更新。 可以快速评估所有代理计算机上可用更新的状态,并管理为服务器安装所需更新的过程。
由更新管理托管的计算机使用以下配置执行评估和更新部署:
- 用于 Windows 或 Linux 的 Microsoft 监视代理 (MMA)
- 用于 Linux 的 PowerShell 所需状态配置 (DSC)
- 自动化混合 Runbook 辅助角色
- 适用于 Windows 计算机的 Microsoft 更新或 Windows Server 更新服务 (WSUS)
若使用 Windows 更新,请启用 Windows 自动更新设置。
最佳做法:在部署时,确保构建的映像包含最新一轮的 Windows 更新。
详细信息:每个部署的第一步应是检查和安装所有 Windows 更新。 在部署自己或库中提供的映像时,采用此措施就特别重要。 虽然默认情况下会自动更新 Azure 市场中的映像,但公开发布后可能会有延迟(最多几周)。
最佳做法:定期重新部署 VM 以强制刷新操作系统版本。
详细信息:使用 Azure 资源管理器模板定义 VM,以便轻松地重新部署。 使用模板可在需要时提供已修补且安全的 VM。
最佳做法:快速对 VM 应用安全更新。
详细信息:启用 Microsoft Defender for Cloud(免费层或标准层),以确定缺少的安全更新并应用这些更新。
最佳做法:安装最新的安全更新。
详细信息:客户移到 Azure 的部分首批工作负荷为实验室和面向外部的系统。 如果 Azure VM 托管需要访问 Internet 的应用程序或服务,则需要警惕修补。 修补不仅仅包括操作系统。 合作伙伴应用程序上未修补的漏洞还可能导致一些问题,而如果实施良好的修补程序管理,就可以避免这些问题。
最佳做法:部署并测试一个备份解决方案。
详细信息:需要按照处理任何其他操作的相同方法处理备份。 这些处理适用于那些作为生产环境一部分并延伸到云端的系统。
测试和开发系统必须遵循备份策略,这些策略可以根据用户的本地环境体验,提供与用户习惯的功能类似的存储功能。 如果可能,迁移到 Azure 的生产工作负荷应与现有的备份解决方案集成。 或者,可以使用 Azure 备份来帮助解决备份要求。
未实施软件更新策略的组织面临更多利用已修复的已知漏洞的威胁。 为了遵守行业法规,公司还必须证明他们在不断作出相应努力并使用正确的安全控制机制来帮助确保云中工作负载的安全性。
传统数据中心与 Azure IaaS 之间的软件更新最佳做法存在许多相似之处。 评估当前的软件更新策略以包括 Azure 中的 VM。
管理 VM 安全状况
网络威胁总是不断发展的。 保护 VM 需要监视功能,以便快速检测威胁、防止有人未经授权访问资源、触发警报并减少误报。
要监视 Windows 和 Linux VM 的安全态势,请使用 Microsoft Defender for Cloud。 在 Defender for Cloud 中,系统利用以下功能来保护 VM:
- 应用包含建议的配置规则的 OS 安全设置。
- 识别并下载可能缺少的系统安全更新和关键更新。
- 部署终结点反恶意软件防护建议措施。
- 验证磁盘加密。
- 评估并修正漏洞。
- 检测威胁。
Defender for Cloud 可以主动监视威胁,安全警报可公开潜在威胁。 关联的威胁将合并到名为“安全事件”的单个视图中。
Defender for Cloud 将数据存储在 Azure Monitor 日志中。 Azure Monitor 日志提供查询语言和分析引擎,让你能够深入了解应用程序和资源的操作。 此外,还会从云或本地虚拟机上安装的 Azure Monitor、管理解决方案和代理收集数据。 可以通过此共享功能全面了解自己的环境。
如果不对 VM 强制实施强安全性,则仍不知道未经授权的用户可能试图规避安全控制。
监视 VM 性能
如果 VM 进程消耗的资源多过实际所需的量,可能会造成资源滥用的问题。 VM 性能问题可能会导致服务中断,从而违反可用性安全原则。 此问题对于托管 IIS 或其他 Web 服务器的 VM 尤其重要,因为 CPU 或内存使用率过高可能表示拒绝服务(DoS)攻击。 在发生问题时,不仅需要被动监视 VM 访问,还需要主动监控与在正常操作期间测量的基线性能进行比较。
使用 Azure Monitor 深入了解资源的运行状况。 Azure Monitor 功能:
- 资源诊断日志文件:监视 VM 资源,并识别可能危及性能和可用性的潜在问题。
- Azure 诊断扩展:在 Windows VM 上提供监视和诊断功能。 在 Azure 资源管理器模板中包含该扩展即可启用这些功能。
如果不监视 VM 性能,则无法确定性能模式的某些更改是正常还是异常。 消耗比正常资源更多的 VM 可能表示来自外部资源的攻击或 VM 中运行的已泄露进程的攻击。
加密虚拟硬盘文件
加密虚拟硬盘(VHD),以帮助保护存储静止状态下的启动卷和数据卷,以及加密密钥和机密。
重要
Azure 磁盘加密计划于 2028 年 9 月 15 日停用。 在该日期之前,可以继续使用 Azure 磁盘加密,而不会中断。 2028 年 9 月 15 日,已启用 ADE 的工作负荷将继续运行,但 VM 重启后加密磁盘将无法解锁,从而导致服务中断。
使用 主机端加密 用于新 VM。 所有已启用 ADE 的 VM(包括备份)必须在停用日期之前迁移到主机上的加密,以避免服务中断。 有关详细信息,请参阅 从 Azure 磁盘加密迁移到主机加密 。
默认情况下,主机加密为 VM 数据提供端到端加密,加密临时磁盘、OS 和数据磁盘缓存,以及数据流到 Azure 存储。 默认情况下,主机加密使用平台管理的密钥,无需额外配置。 或者,如果需要控制和管理自己的磁盘加密密钥,可以将解决方案配置为使用存储在 Azure Key Vault 或 Azure Key Vault 托管 HSM 中的客户管理的密钥。 该解决方案可确保在 Azure 存储中对虚拟机磁盘上的所有数据进行静态加密。
以下最佳做法可帮助你在主机上使用加密:
最佳做法:使用客户管理的密钥时,使用密钥加密密钥(KEK)为加密密钥提供额外的安全层。
详细信息:使用客户管理的密钥时,请使用 Add-AzKeyVaultKey cmdlet 在 Azure Key Vault 或托管 HSM 中创建密钥加密密钥。 还可以从本地硬件安全模块(HSM)导入 KEK。 有关详细信息,请参阅 Key Vault 文档。 指定密钥加密密钥时,主机加密使用该密钥来包装加密机密。 在本地密钥管理 HSM 中保留此密钥的托管副本可提供额外的保护,防止意外删除密钥。
最佳做法:在进行加密配置更改之前创建 快照 和/或备份。 如果发生意外故障,备份将提供恢复选项。
详细信息:定期使用托管磁盘备份 VM。 有关如何备份和还原已加密 VM 的详细信息,请参阅 Azure 备份一文。
最佳做法:使用客户管理的密钥时,通过定位同一区域中的密钥管理服务和 VM,确保加密机密不会跨越区域边界。
详细信息:使用客户管理的密钥时,创建和使用与要加密的 VM 位于同一区域中的密钥保管库或托管 HSM。
在主机应用加密时,可以满足以下业务需求:
- 使用行业标准的加密技术轻松保护 IaaS VM,满足组织的安全性与合规性要求。
- IaaS VM 从客户控制的密钥和策略开始,可以在密钥管理服务中审核其使用情况。
限制直接 Internet 连接
监视和限制 VM 直接 Internet 连接。 攻击者可能会不断利用猜出的常用密码和已知的未修补漏洞,扫描公有云 IP 范围中的开放管理端口,然后试图发起“轻而易举”的攻击。 下表列出了有助于防范这些攻击的最佳做法:
最佳做法:防止无意中暴露网络路由和安全性。
详细信息:使用 Azure RBAC 确保只有中心网络组有权访问网络资源。
最佳做法:标识并修正允许从“任何”源 IP 地址访问的公开 VM。
详细信息:使用 Microsoft Defender for Cloud。 Defender for Cloud 建议,如果任何网络安全组具有允许从“任何”源 IP 地址进行访问的一个或多个入站规则,则应限制通过面向 Internet 的终结点的访问。 Defender for Cloud 建议编辑这些入站规则, 以限制 对实际需要访问的源 IP 地址的访问。
最佳做法:限制管理端口(RDP、SSH)。
详细信息:使用 实时 (JIT) VM 访问 来锁定发往 Azure VM 的入站流量。 它减少了受到攻击的风险,并提供便捷的访问方式在必要时连接到虚拟机。 启用 JIT 时,Defender for Cloud 会通过创建网络安全组规则来锁定发往 Azure VM 的入站流量。 您可以选择在 VM 上要限制入站流量的端口。 JIT 解决方案控制这些端口。
后续步骤
有关使用 Azure 设计、部署和管理云解决方案时要使用的更多安全最佳做法,请参阅 Azure 安全最佳做法和模式。
以下资源提供有关 Azure 安全性和相关Microsoft服务的详细信息:
- Azure 安全团队博客:关于 Azure 安全的最新信息
- Microsoft安全响应中心 - 可在其中报告Microsoft安全漏洞,包括 Azure 问题或发送电子邮件至 secure@microsoft.com