通过安全远程访问Azure虚拟机(VM),无需向 Internet 公开管理端口即可管理工作负荷。 本文比较了Azure Bastion、点到站点 VPN 和实时 VM 访问,以帮助选择正确的方法。
本文介绍的内容
本文介绍如何在不向 Internet 公开管理端口的情况下安全地访问Azure虚拟机进行管理。
谁需要本文
如果你符合以下情况,请阅读本文:
- 需要使用 SSH 或 RDP 连接到Azure VM 进行开发或管理。
- 想要在保留管理访问权限的同时删除 VM 上的公共 IP 地址。
- 管理中心辐射型网络,并需要团队的集中式远程访问。
- 需要遵守禁止直接面向 Internet 的管理端口的安全策略。
平移迁移重点:在中心部署 Azure Bastion,使管理员无需公网 IP 即可通过 SSH 或 RDP 连接到已迁移的 VM,从而替代本地跳板机工作流。
现代化重点: 将 Bastion 与订阅和 RBAC 分离相结合,使平台和应用团队获得范围的访问权限,并为每个区域部署 Bastion 以用于主动-主动资产。
跨云焦点: 通过安全中心(Bastion 或点到站点 VPN)提供管理员访问权限,并避免在从其他云迁移的工作负载上公开管理端口。
Azure服务和功能
下表列出了提供对虚拟机的安全远程访问的Azure服务。
| Service | 它提供的内容 | 何时使用它 |
|---|---|---|
| Azure Bastion (基本) | 通过 Azure 门户使用基于浏览器的 SSH 和 RDP。 VM 上不需要公共 IP。 具有 40 个并发 RDP 或 80 个并发 SSH 会话的两个专用主机实例。 | 管理员无需公开公共端口即可访问的任何 VM。 |
| Azure Bastion (标准) | 包含 Basic 中的所有内容,外加原生客户端支持、文件传输、可共享链接、基于 IP 的连接、自定义入站端口以及可扩展的主机实例(2-50)。 | 团队需要更丰富的管理员工作流,例如通过Azure CLI上传文件或连接。 |
| Azure Bastion (高级版) | 包含 Standard 中的所有内容,外加仅专用部署(Bastion 资源本身没有公共 IP)和会话录制。 | 高安全性环境,即使 Bastion 主机也不得具有公共 IP 地址。 |
| 点对站点 (P2S) VPN | 单个客户端 VPN 连接到虚拟网络。 提供对所有 VNet 资源的完整网络级访问,而不仅仅是 VM。 | 需要访问 RDP 和 SSH 以外的许多资源的管理员,例如数据库、存储或内部 Web 应用。 |
| 实时 (JIT) VM 访问 | 仅在显式请求时打开管理端口,时间范围有限。 创建临时 NSG 或 Azure 防火墙 允许规则。 | 减少仍保留公共 IP 地址的 VM 的攻击面。 |
如何选择
正确的服务取决于是否需要基于浏览器的访问、完整的网络连接或临时端口打开。
如何安全地访问 VM
使用此表可以根据要求选择正确的方法。
| Requirement | 建议的服务 | 为什么 |
|---|---|---|
| 基于浏览器的 RDP 或 SSH,无需安装客户端软件 | Azure Bastion (基本或标准) | Bastion 提供直接通过浏览器进行的基于门户的访问。 VM 上不需要 VPN 客户端或公共 IP。 |
| 仅限专用访问,且无公共 IP 地址,包括 Bastion 资源在内 | Azure Bastion (高级版) | 高级版支持仅限专用的部署,这消除了 Bastion 本身上的公共 IP。 |
| 管理员团队的完整虚拟网络访问权限,而不仅仅是 RDP 和 SSH | 点到站点 VPN | P2S VPN 为客户端提供 VNet 上的 IP 地址,以便可以访问所有网络资源。 |
| 减少仍具有公共 IP 的 VM 的攻击面 | 实时 VM 访问 | 默认情况下,JIT 将管理端口保持关闭状态,并且仅在有限的时间范围内为已批准的用户打开它们。 |
管理员访问模式
Bastion SKU 比较
| Feature | 基本 | 标准 | 高级 |
|---|---|---|---|
| 基于浏览器的 SSH 和 RDP | ✅ | ✅ | ✅ |
| VNet 对等互连支持(中心辐射) | ✅ | ✅ | ✅ |
| 本地客户端 (Azure CLI) | ❌ | ✅ | ✅ |
| 文件上传和下载 | ❌ | ✅ | ✅ |
| 可共享链接 | ❌ | ✅ | ✅ |
| 基于 IP 的连接 | ❌ | ✅ | ✅ |
| 自定义入站端口 | ❌ | ✅ | ✅ |
| 可缩放主机实例 (2-50) | ❌ | ✅ | ✅ |
| 仅限专用部署(无公共 IP) | ❌ | ❌ | ✅ |
| 会话录制 | ❌ | ❌ | ✅ |
Tip
标准与高级之间的成本差异是边际的。 对于生产工作负载,请使用 Bastion Premium。
点到站点 VPN 协议
P2S VPN 支持三种隧道协议:
- OpenVPN:基于 TLS,适用于 Windows、macOS、Linux、iOS 和 Android。 支持Microsoft Entra ID身份验证和多重身份验证(MFA)。
- IKEv2:基于标准的 IPsec 适用于 Windows 和 macOS。
- SSTP(安全套接字隧道协议):基于 TLS 的专有协议,仅限 Windows。
Important
SSTP 分阶段停用。 自 2026 年 3 月 31 日起,无法再在 VPN 网关上启用 SSTP。 已启用 SSTP 的现有网关在 2027 年 3 月 31 日停止接受连接。 对所有新部署使用 OpenVPN 或 IKEv2。 Microsoft Entra ID身份验证和 MFA 仅支持 OpenVPN 隧道类型。
设计注意事项
直接迁移管理员访问设计焦点
- 在中心 VNet 中部署Azure Bastion,以便每个对等互连辐射都可以通过 SSH 或 RDP 访问其 VM,而无需公共 IP 地址,从而替换本地跳转盒工作流。
- 在 Bastion 到位后,从迁移的 VM 中删除公共 IP,以缩小攻击面。
- 当管理员需要访问除单个 VM 以外的许多资源时,请使用点到站点 VPN。
- 使跨迁移的工作负载保持管理员访问模式一致,以简化操作。
使管理员访问设计重点现代化
- 将 Bastion 与订阅和 RBAC 隔离结合使用,以便平台团队管理中心节点及其连接,而应用团队则获得对其各自辐射网络的受限访问权限。
- 在每个区域中部署 Bastion 以实现主动-主动设计,以便管理员访问主要区域和备份区域中的资源。
- 选择符合您需求的 Bastion SKU,例如仅限专用访问的部署或原生客户端支持。
- 在使用点到站点 VPN(OpenVPN 隧道类型)的地方,集成 Microsoft Entra ID 身份验证和多重身份验证 (MFA)。
跨云管理员访问设计重点
- 在安全的虚拟 WAN中心集中管理访问权限,以便操作员无需每个工作负荷的公共终结点即可访问从其他云迁移的Azure工作负荷。
- 不要将公共管理 IP 附加到虚拟机;通过中心的 Bastion 路由 SSH 或 RDP。
- 如果团队需要跨云管理资源,应统一采用点到站点 VPN 或 Bastion,以确保访问方式保持一致。
- 将管理员流量经由受检的中心防火墙进行路由,使其遵循与工作负载流量相同的跨云安全策略。
先决条件
在设置安全远程访问之前,请确保具备:
- 部署了 VM 的虚拟网络(请参阅 虚拟网络和子网)
- 对于 Azure Bastion:名为
AzureBastionSubnet的子网,最小大小为 /26(64 个地址)。 此子网无法托管其他资源。 - 对于 P2S VPN:网关子网和 VPN 网关资源(有关网关规划,请参阅 VPN 和 ExpressRoute 连接)
- 若要使用 JIT VM 访问:订阅中已启用 Microsoft Defender for Servers 计划 2
安全注意事项
注意
切勿创建允许来自0.0.0.0/0(Internet 上的任何来源)的 RDP(TCP 3389)或 SSH(TCP 22)入站流量的 NSG 规则。 此配置会使虚拟机暴露于暴力破解攻击之下,并且是安全事件的常见原因。
遵循以下远程 VM 访问安全做法:
- 使用 Bastion 或 P2S VPN 而不是公共 IP。 这两种方法都使管理流量不经过公共互联网。 不再需要这些地址时,请从 VM 中删除公共 IP 地址。
- 在中心 VNet 中部署 Bastion。 中心虚拟网络中的单个 Bastion 实例可以访问所有对等互连辐射 VNet 中的 VM。 每个分支中不需要 Bastion 部署。 对于中心辐射拓扑,请使用标准或高级 SKU。
- 为 P2S VPN 启用 MFA。 使用Microsoft Entra 条件访问配置Microsoft Entra ID身份验证,以要求多重身份验证。 MFA 需要 OpenVPN 隧道类型和 Azure VPN 客户端应用程序。
- 设置较短的 JIT 时间窗口。 使用实时访问时,请将持续时间限制为所需的最短时间。 窗口过期后,NSG 规则将还原为其以前的拒绝状态。 现有连接不会中断,但系统会阻止新连接。
- 将 NSG 规则应用于 AzureBastionSubnet。 请遵循 有关保护 Bastion 的指导,了解 Bastion 子网上所需的入站和出站规则。
注释
默认情况下,JIT VM 访问会创建临时 NSG 允许规则。 JIT 也可以使用Azure 防火墙,但前提是防火墙使用经典规则。 通过Azure 防火墙管理器(防火墙策略)管理的防火墙不支持 JIT 集成。
相关文章
- 虚拟网络和子网:AzureBastionSubnet 大小调整指南
- 网络安全组和应用程序安全组:管理端口的 NSG 规则
- VPN 和 ExpressRoute 连接:P2S VPN 范围和网关规划
- 中心辐射型拓扑:集中式 Bastion 部署模式
Learn more
- Azure Bastion 文档
- 关于点对站 VPN
- Microsoft Defender for Cloud中的实时 VM 访问
- 为 P2S VPN 用户启用Microsoft Entra ID MFA
- Bastion SKU 比较
后续步骤
Tip
自行探索? 返回到 概述导航器 ,按功能查找下一篇文章。
接下来是直接迁移过程中的下一步:
为旧版名称解析规划 DNS:在迁移期间,使用 Azure 专用 DNS 区域和别名记录来保留旧版 DNS 命名方式。
现代化之旅的下一步:
为 PaaS 服务设置专用连接:在每个 spoke 中创建用于 PaaS 服务连接的 专用链接 子网。
跨云之旅的下一步:
规划 DNS 直接转换和名称解析:映射 DNS 记录、降低 TTL,并在迁移直接转换之前配置跨云名称解析。