Azure Firewall 配合Endpoint玩转Azure SQL

    这次来看下Firewall的另外一个应用场景,在Azure中,如果我们想在VNET中访问Azure的PaaS服务,流量不会走到internet中,而是通过微软的backbone访问,但是这样其实并不是最优的路径,流量实际上会先像访问internet一样走到网关,然后再通过网关走到paas服务,在PaaS服务中你会看到访问的源IP是VM的public ip,如果想让vm直接访问paas服务,则可以通过Azure vnet endpoint。


    来看下endpoint的介绍

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

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

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

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

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

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


    听起来很不错,但是endpoint实际上是个regional的服务,比如你得vnet在北一,paas服务在东一,这种场景下就算开启了endpoint也不会有效果

这时候其实可以结合Azure firewall解决,前提是azure firewall部署在东一



    首先来看下没有endpoint适合的访问场景,因为默认路由指向FW,如果没有FW的网络规则允许访问Azure SQL,访问会被拒绝,即使加了Azure SQL白名单也没用


    Azure Firewall 配合Endpoint玩转Azure SQL



    接下来,首先在FW上添加规则允许出站访问azure sql,这里可以看到,和nsg类似,firewall里也可以以service tag来添加规则,很方便

Azure Firewall 配合Endpoint玩转Azure SQL


    这次可以看到,提示我们没有添加到白名单,但是起码网络肯定是通了

    Azure Firewall 配合Endpoint玩转Azure SQL


    这里把FW的IP添加进去,正常连接了

Azure Firewall 配合Endpoint玩转Azure SQL


    

可以看到源IP就是FW的IP

    Azure Firewall 配合Endpoint玩转Azure SQL



    接下来在firewall的subnet添加sql的endpoint

Azure Firewall 配合Endpoint玩转Azure SQL


    之后,在azure sql添加允许firewall所在的subnet访问

Azure Firewall 配合Endpoint玩转Azure SQL



这次再试一下,已经可以看到访问的IP是firewall的内网IP了!

    Azure Firewall 配合Endpoint玩转Azure SQL


上一篇:Flask快速入门(3) — flask路由的本质


下一篇:asp.net core 3.x Endpoint终结点路由1-基本介绍和使用