使用虚拟网络服务终结点保护对 PaaS 服务的访问

已完成

你已将 ERP 系统的现有应用和数据库服务器作为 VM 迁移到 Azure。 现在,为了降低费用和管理要求,需要考虑使用一些 Azure 平台即服务 (PaaS) 服务。 存储服务将保存某些大型文件资产,例如工程图。 这些工程图包含专有信息,必须保持对它们的保护,使其免遭未经授权的访问。 这些文件必须仅能从特定系统进行访问。

此单元将介绍如何使用虚拟网络服务终结点保护受支持的 Azure 服务。

虚拟网络服务终结点

使用虚拟网络服务终结点,通过提供对 Azure 服务的直接连接来扩展 Azure 中的专用地址空间。 使用服务终结点可以对 Azure 资源进行保护,使其只对你的虚拟网络开放。 服务流量将保留在 Azure 主干网上,不会转出至 Internet。

Diagram of a service endpoint on a private network.

默认情况下,Azure 服务都是针对直接 Internet 访问而设计的。 所有 Azure 资源都有公共 IP 地址,其中包括 PaaS 服务,例如 Azure SQL 数据库和 Azure 存储。 由于这些服务对 Internet 都是公开的,因此任何人都可能访问你的 Azure 服务。

服务终结点可以将特定的 PaaS 服务直接连接到 Azure 中的专用地址空间,让它们看起来就像在同一个虚拟网络上一样。 使用专用地址空间直接访问 PaaS 服务。 添加服务终结点不会删除公共终结点。 它只是提供了流量的重定向。

Azure 服务终结点可用于多种服务,例如:

  • Azure 存储
  • Azure SQL 数据库
  • Azure Cosmos DB
  • Azure Key Vault
  • Azure 服务总线
  • Azure Data Lake

对于类似 SQL 数据库这样的服务(即需要先将 IP 地址添加到它的防火墙才能对其进行访问的服务),依然应考虑使用服务终结点。 将服务终结点用于 SQL 数据库,可以限制对特定虚拟网络的访问,并提供更好的隔离效果,同时减少攻击面。

服务终结点的工作原理

若要启用服务终结点,必须:

  1. 关闭对该服务的公共访问。
  2. 将服务终结点添加到虚拟网络。

启用服务终结点时,会限制流量并允许 Azure VM 从专用地址空间直接访问该服务。 无法使用设备通过公用网络访问该服务。 在部署的 VM vNIC 上,如果查看“有效路由”,将看到“下一跃点类型”为服务终结点。

启用服务终结点之前,请查看以下示例路由表:

状态 地址前缀 下一跃点类型
默认 可用 10.1.1.0/24 VNet
默认 可用 0.0.0.0./0 Internet
默认 活动 10.0.0.0/8
默认 可用 100.64.0.0./10
默认 活动 192.168.0.0/16

下面是在将两个服务终结点添加到虚拟网络后的示例路由表:

状态 地址前缀 下一跃点类型
默认 可用 10.1.1.0/24 VNet
默认 可用 0.0.0.0./0 Internet
默认 活动 10.0.0.0/8
默认 可用 100.64.0.0./10
默认 活动 192.168.0.0/16
默认 可用 20.38.106.0/23,10 个以上 VirtualNetworkServiceEndpoint
默认 可用 20.150.2.0/23,9 个以上 VirtualNetworkServiceEndpoint

现在,服务的所有流量都路由到 VirtualNetworkServiceEndpoint,并保持为 Azure 的内部内容

服务终结点和混合网络

默认情况下,无法通过本地网络访问使用虚拟网络服务终结点保护的服务资源。 若要通过本地网络访问资源,请使用 NAT IP。 如果使用 ExpressRoute 连接本地环境和 Azure,必须识别 ExpressRoute 使用的 NAT IP 地址。 默认情况下,每个线路都会使用两个 NAT IP 地址连接到 Azure 主干网络。 然后,需要将这些 IP 地址添加到 Azure 服务资源(例如 Azure 存储)的 IP 防火墙配置中。

下图展示了如何使用服务终结点和防火墙配置来让本地设备访问 Azure 存储资源:

Diagram of a service endpoint for on-premises access to Azure resources.