Azure Bastion 支持 AzureBastionSubnet 和目标 VM 子网上的 NSG。 应用 NSG 可以强制实施最小特权网络访问,将流量限制为仅 Bastion 所需的端口和源,并防止在您的虚拟网络中未经授权的横向移动。 如果应用 NSG,则必须配置所有必需的入口和出口规则。 省略任何规则可能会阻止 Bastion 接收平台更新并阻止 VM 连接。
有关 NSG 的详细信息,请参阅安全组。
在这一示意图中:
- Bastion 主机部署到虚拟网络中。
- 用户使用任何 HTML5 浏览器连接到 Azure 门户。
- 用户导航到 Azure 虚拟机以使用 RDP/SSH。
- 连接集成 - 在浏览器中单击“RDP/SSH 会话”
- Azure VM 无需公共 IP。
设置网络安全组 (NSG)
本部分显示用户与 Azure Bastion 之间的网络流量,以及通过虚拟网络到目标 VM 的网络流量:
重要
如果将 NSG 应用到 Azure Bastion 资源, 则必须 创建以下所有入口和出口流量规则。 省略任何规则会阻止 Bastion 主机接收平台更新,并使部署暴露于未来的安全漏洞中。
下表汇总了所有必需的 NSG 规则。
| 规则名称 | 方向 | 来源 | 目的地 | 端口 | 协议 |
|---|---|---|---|---|---|
| AllowHttpsInbound(允许HTTPS入站) | 入站 | Internet | * | 443 | TCP |
| 允许网关管理器入站 | 入站 | GatewayManager | * | 443 | TCP |
| 允许堡垒主机通信 (AllowBastionHostCommunication) | 入站 | VirtualNetwork | VirtualNetwork | 8080, 5701 | * |
| 允许Azure负载均衡器入站 | 入站 | AzureLoadBalancer | * | 443 | TCP |
| AllowSshRdpOutbound(允许SSH和RDP出站) | 出境 | * | VirtualNetwork | 22, 3389 | * |
| AllowAzureCloudOutbound | 出境 | * | AzureCloud | 443 | TCP |
| AllowBastionCommunication | 出境 | VirtualNetwork | VirtualNetwork | 8080, 5701 | * |
| AllowHttpOutbound | 出境 | * | Internet | 80 | * |
可以使用 Azure 门户或 PowerShell 配置所需的 NSG 规则。
AzureBastionSubnet
使用以下步骤为 AzureBastionSubnet 配置 NSG 规则。
登录到 Azure 门户。
转到 网络安全组 并选择与 AzureBastionSubnet 关联的 NSG。
在左侧选择 “入站安全规则 ”,然后选择“ + 添加 ”以创建以下入口规则:
- 来自 Internet 的入口(端口 443): 从 Internet 服务标记启用端口 443 入站。 AzureBastionSubnet 上不需要端口 3389 和 22。 源可以是 Internet 或指定的一组特定的公共 IP 地址。
- 来自 GatewayManager 的入口(端口 443): 从 GatewayManager 服务标记启用端口 443 入站。 这允许控制平面(网关管理器)与 Bastion 主机通信。
- 来自 VirtualNetwork 的入口(端口 8080,5701): 启用从 VirtualNetwork 服务标记到 VirtualNetwork 服务标记的端口 8080 和 5701 入站。 这使 Azure Bastion 的内部组件能够相互通信。
- 来自 AzureLoadBalancer 的入口(端口 443): 从 AzureLoadBalancer 服务标记启用端口 443 入站。 这使 Azure 负载均衡器能够检测用于运行状况检查的连接性。
在左侧选择 “出站安全规则 ”,然后选择“ + 添加 ”以创建以下出口规则:
- 流出目标 VM(端口 3389、22): 启用通过专用 IP 在端口 3389 和 22 上向目标 VM 子网的出站流量。 如果将自定义端口功能用于标准 SKU,请改为允许发到 VirtualNetwork 服务标记的出站流量。
- 流出到 VirtualNetwork (端口 8080, 5701): 启用从 VirtualNetwork 服务标记到 VirtualNetwork 服务标记的端口 8080 和 5701 出站端口。 这使 Azure Bastion 的内部组件能够相互通信。
- 出站到 AzureCloud(端口 443): 启用到 AzureCloud 服务标签的端口 443 出站。 这允许 Bastion 连接到由世纪互联运营的 Azure 公共终结点,用于存储诊断日志和计量日志。
- 流出到 Internet(端口 80): 为会话验证、Bastion Shareable Link 和证书验证启用端口 80 出站到 Internet 。
目标 VM 子网
使用以下步骤为包含目标虚拟机的子网配置 NSG 规则。
在 Azure 门户中,转到 网络安全组 并选择与目标 VM 子网关联的 NSG。
选择 “入站安全规则”,然后选择“ + 添加 ”以创建以下规则:
- 来自 AzureBastionSubnet 的入口(端口 3389,22): 打开 RDP/SSH 端口(分别为 3389 和 22),如果使用标准或高级 SKU 的自定义端口功能,则通过专用 IP 在目标 VM 子网上入站。 如果没有此规则,Bastion 即使配置正确,也无法访问 VM。 最佳做法是,将源范围限定为 AzureBastionSubnet IP 地址范围,以便只有 Bastion 才能打开这些端口,而不是更广泛的 Internet。
后续步骤
- 了解如何使用符合 Azure 云安全基准的可操作指南 保护 Azure Bastion 部署 。
- 了解 Azure Bastion 可用的不同部署体系结构,具体取决于所选 SKU 和选项配置。
- 了解如何 将 Bastion 部署为专用 虚拟机,以确保对虚拟机的安全访问,而无需允许虚拟网络外部的出站访问。
- 了解如何使用 Azure Monitor 收集和分析性能数据和日志来 监视 Azure Bastion 。
- 了解如何结合使用 虚拟网络对等互连和 Azure Bastion 连接到在互联虚拟网络中部署的 VM,无需再部署其他堡垒主机。
- 了解 Azure Bastion 的常见问题。