如何配置Azure VM以充当通过服务端点访问Azure SQL数据库的代理?

时间:2019-02-19 00:08:10

标签: azure azure-sql-database iptables azure-vpn azure-sql-managed-instance

当前,Azure不允许通过服务网关通过VPN网关访问SQL数据库。我想规避此限制的想法是,将Azure VM设置为充当代理,以便与SQL数据库的所有通信都通过该实例进行(然后可以通过服务端点路由往返SQL数据库的通信)。但是,我无法使该解决方案正常工作,可以使用一些指导。

我的设置:

我有一个AWS环境,并建立了到我的Azure环境的VPN连接。我使用Route53设置了一个专用托管区域,以将我的SQL数据库的域名解析为相应Microsoft.Sql区域终结点的公用IP地址(这是我访问时SQL数据库的域名解析为的IP地址我的代理VM中的SQL数据库)。我的路由表配置为通过我的虚拟专用网关将流量转发到此IP地址。

在Azure端,我将网关子网的路由表配置为将发往Microsoft.Sql区域终结点公用IP地址的流量转发到我的代理VM,就好像它是虚拟设备一样。代理VM的网络接口设置为允许IP转发。附加到代理VM子网的路由表被配置为通过VPN网关将发往我的AWS VPC的私有CIDR的流量路由回去。

为简单起见,AWS和Azure环境中的安全组均设置为允许两个环境的私有IP地址与Microsoft.Sql区域终结点公共IP地址之间的所有入站和出站流量。

当前有效的方法:

AWS VPC中的EC2实例可以使用其专用IP地址通过VPN ping和SSH到我的代理VM。代理VM可以使用其专用IP地址通过服务端点访问我的SQL数据库。

什么不起作用:

通过尝试连接到Microsoft.Sql区域公共IP地址(我已配置为转发到代理VM的地址)或域名,我无法从我的EC2实例成功ping或ssh到代理VM SQL数据库(在Route53中为Microsoft.Sql区域公共IP地址设置的记录)。在代理VM上执行数据包捕获时,我没有看到来自EC2实例的入站流量。 VPC流日志已被我的VPC流日志接受。

我知道这是SQL数据库托管实例的用途,但是我不能选择使用该服务。

我目前尚未使用iptables配置任何转发,也未在代理VM上进行任何特殊的主机设置,因为我首先想查看数据包捕获中显示的网络流量,然后验证是否可以成功连接到代理VM实例,然后尝试设置对SQL数据库的任何形式的转发。

此外,这种解决方案是否有可能规避Azure中服务端点的限制?

谢谢。

0 个答案:

没有答案