虚拟网络服务终结点

虚拟网络 (VNet) 服务终结点可通过直接连接将 VNet 的虚拟网络专用地址空间和标识扩展到 Azure 服务。 使用终结点可以保护关键的 Azure 服务资源,只允许在客户自己的虚拟网络中对其进行访问。 从 VNet 发往 Azure 服务的流量始终保留在 Azure 主干网络中。

此功能针对以下 Azure 服务和区域提供:

正式发布版

有关最新通知,请查看 Azure 虚拟网络更新页。

主要优点

服务终结点提供以下优势:

  • 提高 Azure 服务资源的安全性:VNet 专用地址空间可能重叠,因此不能用于唯一标识源自 VNet 的流量。 通过将 VNet 标识扩展到服务,服务终结点可以将对 Azure 服务资源的访问限定到你的虚拟网络。 在虚拟网络中启用服务终结点后,可以通过将虚拟网络规则添加到资源,在虚拟网络中保护 Azure 服务资源。 这完全消除了通过公共 Internet 对资源进行访问的可能性,并仅允许来自自己虚拟网络的流量,从而提高了安全性。

  • 来自虚拟网络的 Azure 服务流量的最佳路由:当前,虚拟网络中强制 Internet 流量发往本地和/或虚拟设备的任何路由(称为强制隧道)也会强制 Azure 服务流量采用与 Internet 流量相同的路由。 服务终结点为 Azure 流量提供最佳路由。

    终结点始终将直接来自虚拟网络的服务流量转发到 Azure 主干网络上的服务。 将流量保留在 Azure 主干网络上可以通过强制隧道持续审核和监视来自虚拟网络的出站 Internet 流量,而不会影响服务流量。 详细了解用户定义的路由和强制隧道

  • 设置简单,管理开销更少:不再需要使用虚拟网络中的保留公共 IP 地址通过 IP 防火墙保护 Azure 资源。 无需使用 NAT 或网关设备即可设置服务终结点。 只需单击一下子网,即可配置服务终结点。 不会产生与终结点维护相关的额外开销。

限制

  • 该功能仅适用于使用 Azure 资源管理器部署模型部署的虚拟网络。
  • 终结点在 Azure 虚拟网络中配置的子网上启用。 终结点不可用于从本地发往 Azure 服务的流量。 有关详细信息,请参阅保护从本地进行的 Azure 服务访问
  • 对于 Azure SQL,服务终结点仅适用于虚拟网络区域中的 Azure 服务流量。 对于 Azure 存储,为了支持 RA-GRS 和 GRS 流量,终结点还进行扩展以包括虚拟网络所部署到的配对区域。

在虚拟网络中保护 Azure 服务

  • 虚拟网络服务终结点为 Azure 服务提供虚拟网络的标识。 在虚拟网络中启用服务终结点后,可以通过将虚拟网络规则添加到资源,在虚拟网络中保护 Azure 服务资源。

  • 当前,来自虚拟网络的 Azure 服务流量使用公共 IP 地址作为源 IP 地址。 使用服务终结点时,服务流量会在通过虚拟网络访问 Azure 服务时改用虚拟网络专用地址作为源 IP 地址。 通过这种切换,无需 IP 防火墙中使用的保留公共 IP 地址即可访问服务。

    Note

    使用服务终结点时,服务流量的子网中虚拟机的源 IP 地址将从公共 IPv4 地址改为专用 IPv4 地址。 使用 Azure 公共 IP 地址的现有 Azure 服务防火墙规则将无法继续适用于此交换机。 请确保 Azure 服务防火墙规则允许此交换机,然后再设置服务终结点。 在配置服务终结点时,可能会遇到来自此子网的服务流量出现暂时性中断的情况。

  • 保护从本地进行的 Azure 服务访问

    默认情况下,无法从本地网络访问在虚拟网络中保护的 Azure 服务资源。 若要允许来自本地的流量,还必须允许来自本地或 ExpressRoute 的公共(通常为 NAT)IP 地址。 可通过 Azure 服务资源的 IP 防火墙配置添加这些 IP 地址。

    ExpressRoute:如果在本地使用 ExpressRoute,则在进行公共对等互连或 Azure 对等互连时,需标识所用的 NAT IP 地址。 进行公共对等互连时,每条 ExpressRoute 线路默认情况下会使用两个 NAT IP 地址。当流量进入 Azure 网络主干时,会向 Azure 服务流量应用这些地址。 进行 Azure 对等互连时,所用 NAT IP 地址由客户或服务提供商提供。 若要允许访问服务资源,必须在资源 IP 防火墙设置中允许这些公共 IP 地址。 若要查找公共对等互连 ExpressRoute 线路 IP 地址,请通过 Azure 门户开具 ExpressRoute 支持票证

    在虚拟网络中保护 Azure 服务

配置

  • 服务终结点在虚拟网络中的子网上配置。 终结点可以处理该子网中运行的任何类型的计算实例。
  • 可以针对子网中的所有受支持 Azure 服务(例如 Azure 存储或 Azure SQL 数据库)配置多个服务终结点。
  • 对于 Azure SQL 数据库,虚拟网络必须与 Azure 服务资源位于同一区域。 如果使用 GRS 和 RA-GRS Azure 存储帐户,则主帐户必须与虚拟网络位于同一区域。 对于所有其他服务,可在任何区域的虚拟网络中保护 Azure 服务资源。
  • 配置了终结点的虚拟网络可与 Azure 服务资源位于相同或不同的订阅中。 有关设置终结点和保护 Azure 服务时所需的权限的详细信息,请参阅预配
  • 对于受支持的服务,可以使用服务终结点在虚拟网络中保护新的或现有的资源。

注意事项

  • 启用服务终结点后,与子网中的服务通信时,该子网中虚拟机的源 IP 地址将从公共 IPv4 地址改为专用 IPv4 地址。 在进行这种切换的过程中,与服务建立的所有现有打开的 TCP 连接将会关闭。 针对子网的服务启用或禁用服务终结点时,请确保未运行任何关键任务。 此外,请确保在完成 IP 地址切换后,应用程序可以自动连接到 Azure 服务。

    IP 地址切换只会影响自己的虚拟网络发出的服务流量, 而不会影响到发往或发自分配给虚拟机的公共 IPv4 地址的其他任何流量。 对于 Azure 服务,如果现有的防火墙规则使用 Azure 公共 IP 地址,这些规则会阻止切换到虚拟网络专用地址。

  • 使用服务终结点时,Azure 服务的 DNS 条目会保持不变,继续解析为分配给 Azure 服务的公共 IP 地址。

  • 使用服务终结点的网络安全组 (NSG):

    • 默认情况下,NSG 允许出站 Internet 流量,因此,也允许来自 VNet 的流量发往 Azure 服务。 使用服务终结点时,处理方式仍旧如此。
    • 如果想要拒绝所有出站 Internet 流量并只允许发往特定 Azure 服务的流量,可以在 NSG 中使用服务标记。 可以在 NSG 规则中将受支持的 Azure 服务指定为目标,每个标记下面的 IP 地址的维护由 Azure 提供。 有关详细信息,请参阅 NSG 的 Azure 服务标记

方案

  • 对等互连的、连接的或多个虚拟网络:若要在一个虚拟网络中的多个子网内或者跨多个虚拟网络保护 Azure 服务,可以针对每个子网单独启用服务终结点,在所有子网中保护 Azure 服务资源。
  • 筛选从虚拟网络发往 Azure 服务的出站流量:若要检查或筛选从虚拟网络发往 Azure 服务的流量,可在该虚拟网络中部署网络虚拟设备。 然后,可将服务终结点应用到部署了网络虚拟设备的子网,只在该子网中保护 Azure 服务资源。 如果希望使用网络虚拟设备筛选将从虚拟网络发起的 Azure 服务访问限制为特定的 Azure 资源,此方案可能很有帮助。
  • 在直接部署到虚拟网络的服务中保护 Azure 资源:可将各种 Azure 服务直接部署到虚拟网络中的特定子网。 可以通过在托管服务子网上设置服务终结点,在托管服务子网中保护 Azure 服务资源。
  • 来自 Azure 虚拟机的磁盘流量:托管/非托管磁盘的虚拟机磁盘流量(包括装载和卸载 diskIO),不受路由 Azure 存储更改的服务终结点影响。 可以通过服务终结点和 Azure 存储网络规则限制对页 blob 的 REST 访问以选择网络。

日志记录和故障排除

为特定的服务配置服务终结点后,请通过以下方式验证服务终结点路由是否生效:

  • 验证服务诊断中任何服务请求的源 IP 地址。 使用服务终结点的所有新请求会将请求的源 IP 地址显示为分配给从虚拟网络发出请求的客户端的虚拟网络专用地址。 如果不使用终结点,此地址是 Azure 公共 IP 地址。
  • 查看子网中任何网络接口上的有效路由。 服务的路由:
    • 显示更具体的默认路由用于寻址每个服务的前缀范围
    • nextHopType 为 VirtualNetworkServiceEndpoint
    • 指示与任何强制隧道路由相比,它还与服务另外建立了一个有效的直接连接

Note

服务终结点路由会替代与 Azure 服务匹配的地址前缀的 BGP 或 UDR 路由。 详细了解如何排查有效路由问题

设置

对虚拟网络拥有写入访问权限的用户可在虚拟网络上单独配置服务终结点。 若要在 VNet 中保护 Azure 服务资源,用户必须对所添加的子网拥有 Microsoft.Network/JoinServicetoaSubnet 权限。 此权限默认包含在内置的服务管理员角色中,可以通过创建自定义角色进行修改。

详细了解内置角色以及将特定的权限分配到自定义角色

虚拟网络和 Azure 服务资源可以位于相同或不同的订阅中。 如果虚拟网络和 Azure 服务资源位于不同的订阅中,资源必须在相同的 Active Directory (AD) 租户下。

定价和限制

使用服务终结点不会产生额外的费用。 目前,Azure 服务(Azure 存储、Azure SQL 数据库等)的当前定价模型按原样应用。

虚拟网络中的服务终结点总数没有限制。

对于 Azure 服务资源(例如 Azure 存储帐户),服务可能会对用于保护资源的子网数目施加限制。 有关详细信息,请参阅后续步骤中所述的各种服务的文档。

常见问题

有关常见问题,请查看虚拟网络服务终结点常见问题解答

后续步骤