【Azure云】Azure上对Azure虚拟机访问的多层保护
视频号
微信公众号
知识星球
Chinese, Simplified
解决方案思路
这篇文章是一个解决方案。如果您希望我们用更多信息来扩展内容,例如潜在的用例、替代服务、实施注意事项或
定价指导,请通过提供GitHub反馈让我们知道。
此解决方案提供了一种多层方法来保护Azure中的虚拟机(VM)。出于管理和管理目的,用户需要连接到虚拟机。最大限度地减少连接造成的攻击面是至关重要的。
此解决方案通过结合多种保护机制实现了对虚拟机的非持久细粒度访问。它符合最低特权原则和职责分离的概念。为了减少受到攻击的风险,此解决方案锁定了虚拟机的入站流量,但在需要时可以访问虚拟机连接。实现这种类型的保护可以最大限度地降低对虚拟机的许多流行网络攻击的风险,如暴力攻击和分布式拒绝服务(DDoS)攻击。
此解决方案使用许多Azure服务和功能,包括:
- Microsoft Entra特权身份管理(PIM)。
- Microsoft Defender for Cloud的实时(JIT)虚拟机访问功能。
- Azure堡垒。
- Azure基于角色的访问控制(Azure RBAC)自定义角色。
- Microsoft Entra条件访问(可选)。
潜在用例
纵深防御是该体系结构背后的主要思想。在授予用户访问虚拟机的权限之前,此策略向用户提出了几道防线的挑战。目标是确保:
- 每个用户都是合法的。
- 每个用户都有合法的意图。
- 通信是安全的。
- 只有在需要时才提供对Azure中虚拟机的访问。
本文中的纵深防御策略和解决方案适用于许多场景:
在以下情况下,管理员需要访问Azure虚拟机:
- 管理员需要解决问题、调查行为或应用关键更新。
- 管理员使用远程桌面协议(RDP)访问Windows虚拟机,或使用安全外壳(SSH)访问Linux虚拟机。
- 访问权限应包括工作所需的最小权限数。
- 访问权限应仅在有限的时间内有效。
- 访问到期后,系统应锁定VM访问,以防止恶意访问尝试。
- 员工需要访问作为虚拟机托管在Azure中的远程工作站。以下条件适用:
- 员工只能在工作时间访问虚拟机。
- 安全系统应考虑在工作时间之外访问虚拟机的请求是不必要的和恶意的。
- 用户希望连接到Azure VM工作负载。系统应批准仅来自受管理和兼容设备的连接。
- 一个系统经历了大量的暴力攻击:
- 这些攻击的目标是RDP和SSH端口3389和22上的Azure虚拟机。
- 攻击试图猜测凭据。
- 该解决方案应防止3389和22等接入端口暴露在互联网或内部环境中。
架构
显示用户如何获得Azure VM的临时访问权限的体系结构图。
下载此体系结构的Visio文件。
数据流
身份验证和访问决策:根据Microsoft Entra ID对用户进行身份验证,以访问Azure门户、Azure REST API、Azure PowerShell或Azure CLI。如果身份验证成功,Microsoft Entra条件访问策略将生效。该策略验证用户是否符合某些条件。例如,使用托管设备或从已知位置登录。如果用户满足条件,条件访问将授予用户通过Azure门户或其他接口访问Azure的权限。- 基于身份的实时访问:在授权期间,Microsoft Entra PIM会为用户分配一个符合条件的自定义角色。资格仅限于所需资源,是一个有时限的角色,而不是一个永久的角色。在指定的时间范围内,用户通过Azure PIM接口请求激活此角色。该请求可以触发其他操作,例如启动审批工作流或提示用户进行多因素身份验证以验证身份。在审批工作流中,另一个人需要审批该请求。否则,用户将不会被分配自定义角色,并且无法继续执行下一步。
- 基于网络的实时访问:经过身份验证和授权后,自定义角色将临时链接到用户的身份。然后,用户请求JIT VM访问。该访问为RDP打开端口3389上的Azure Bastion子网连接,为SSH打开端口22上的连接。该连接直接运行到VM网络接口卡(NIC)或VM NIC子网。Azure Bastion通过使用该连接打开内部RDP会话。该会话仅限于Azure虚拟网络,并且不暴露于公共互联网。
- 连接到Azure虚拟机:用户通过使用临时令牌访问Azure堡垒。通过此服务,用户建立到Azure VM的间接RDP连接。连接只在有限的时间内有效。
组件
此解决方案使用以下组件:
- Azure虚拟机是一种基础设施即服务(IaaS)产品。您可以使用虚拟机来部署按需、可扩展的计算资源。在使用此解决方案的生产环境中,将工作负载部署在Azure虚拟机上。然后消除对虚拟机和Azure资产的不必要暴露。
- Microsoft Entra ID是一种基于云的身份服务,用于控制对Azure和其他云应用程序的访问。
- PIM是一种Microsoft Entra服务,用于管理、控制和监视对重要资源的访问。在此解决方案中,此服务:
- 限制管理员对标准和自定义特权角色的永久访问权限。
- 提供对自定义角色的基于身份的即时访问。
- JIT虚拟机访问是Defender for Cloud的一项功能,它提供对虚拟机的实时网络访问。此功能将拒绝规则添加到Azure网络安全组,该组保护VM网络接口或包含VM网络接口的子网。该规则通过阻止与虚拟机的不必要通信,最大限度地减少了虚拟机的攻击面。当用户请求访问VM时,该服务会向网络安全组添加临时允许规则。因为允许规则的优先级高于拒绝规则,所以用户可以连接到VM。Azure Bastion最适合连接到虚拟机。但是用户也可以使用直接的RDP或SSH会话。
- Azure RBAC是一种授权系统,提供对Azure资源的细粒度访问管理。
- Azure RBAC自定义角色提供了一种扩展Azure RBAC内置角色的方法。您可以使用它们在满足组织需求的级别上分配权限。这些角色支持PoLP。它们只授予用户为实现其目的所需的权限。要访问此解决方案中的VM,用户将获得以下权限:
- 使用Azure堡垒。
- 正在Defender for Cloud中请求JIT VM访问。
- 读取或列出虚拟机。
- Microsoft Entra条件访问是Microsoft Entra ID用于控制对资源的访问的工具。条件访问策略支持零信任安全模型。在此解决方案中,策略确保只有经过身份验证的用户才能访问Azure资源。
- Azure Bastion为网络中的虚拟机提供安全无缝的RDP和SSH连接。在此解决方案中,Azure Bastion连接使用Microsoft Edge或其他互联网浏览器进行HTTPS或端口443上的安全流量的用户。Azure Bastion设置到VM的RDP连接。RDP和SSH端口不会暴露于互联网或用户的来源。
- Azure堡垒在此解决方案中是可选的。用户可以使用RDP协议直接连接到Azure虚拟机。如果您在Azure虚拟网络中配置Azure Bastion,请设置一个名为AzureBastionSubnet的单独子网。然后将网络安全组与该子网相关联。在该组中,指定HTTPS流量的源,例如用户的本地IP无类域间路由(CIDR)块。通过使用此配置,可以阻止非来自用户本地环境的连接。
本文地址
https://architect.pub
- 8 次浏览
SEO Title
Multilayered protection for Azure virtual machine access on Azure