Azure 防火墙的介绍
,,,, Azure防火墙是托管的基于云的网络安全服务,可保护Azure虚拟网络资源。它是一个服务形式的完全有状态防火墙,具有内置的高可用性和不受限制的云可伸缩性。可以跨订阅和虚拟网络集中创建,实施和记录应用程序与网络连接策略。Azure防火墙对虚拟网络资源使用静态公共IP地址,使外部防火墙能够识别来自你的虚拟网络的流量。该服务与用于日志记录和分析的Azure监测完全集成。
,,endpoint的介绍
虚拟网络 (VNet) 服务终结点可通过直接连接将 VNet 的虚拟网络专用地址空间和标识扩展到 Azure 服务。 使用终结点可以保护关键的 Azure 服务资源,只允许在客户自己的虚拟网络中对其进行访问。 从 VNet 发往 Azure 服务的流量始终保留在 Azure 主干网络中。
服务终结点提供以下优势:
提高 Azure 服务资源的安全性:VNet 专用地址空间可能重叠,因此不能用于唯一标识源自 VNet 的流量。
来自虚拟网络的 Azure 服务流量的最佳路由:当前,虚拟网络中强制 Internet 流量发往本地和/或虚拟设备的任何路由(称为强制隧道)也会强制 Azure 服务流量采用与 Internet 流量相同的路由。
终结点始终将直接来自虚拟网络的服务流量转发到 Azure 主干网络上的服务。
:不再需要使用虚拟网络中的保留公共 IP 地址通过 IP 防火墙保护 Azure 资源。
听起来很不错,但是endpoint实际上是个regional的服务,比如你得vnet在北一,paas服务在东一,这种场景下就算开启了endpoint也不会有效果
这时候其实可以结合Azure firewall解决,前提是azure firewall部署在东一
首先来看下没有endpoint适合的访问场景,因为默认路由指向FW,如果没有FW的网络规则允许访问Azure SQL,访问会被拒绝,即使加了Azure SQL白名单也没用
接下来,首先在FW上添加规则允许出站访问azure sql,这里可以看到,和nsg类似,firewall里也可以以service tag来添加规则,很方便
这次可以看到,提示我们没有添加到白名单,但是起码网络肯定是通了
这里把FW的IP添加进去,正常连接了
可以看到源IP就是FW的IP
接下来在firewall的subnet添加sql的endpoint
之后,在azure sql添加允许firewall所在的subnet访问
这次再试一下,已经可以看到访问的IP是firewall的内网IP了!