You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure跨资源组下允许VMSS实例连接至VM上MySQL服务器的安全优雅方案咨询

Azure跨资源组下允许VMSS实例连接至VM上MySQL服务器的安全优雅方案咨询

嘿,我完全懂你现在的头疼点——动态IP的VMSS要连另一个资源组里的MySQL虚拟机,既要保证安全,又不想折腾太复杂的配置对吧?结合你的场景(同区域、跨资源组),我给你几个从安全优先级出发的优雅方案,你可以按需选择:

方案一:虚拟网络对等(VNet Peering)+ 私有IP访问(最安全推荐)

这是最稳妥的内网访问方案,完全绕开公网,攻击面最小,也符合你后续要关闭VMSS公网IP的规划:

  • 先确认VMSS所在的虚拟网络(VNet1)和MySQL VM所在的虚拟网络(VNet2)都在西欧同一区域(你已经满足这个条件)
  • 配置VNet1和VNet2之间的跨资源组对等连接:
    • 登录Azure门户,进入VNet1的“对等连接”页面,创建新对等,选择VNet2所在的资源组和VNet名称,开启“允许虚拟网络访问”等核心选项
    • 然后在VNet2的对等连接页面,接受来自VNet1的对等请求(如果两个资源组你都有权限的话,也可以直接双向配置)
  • 给MySQL VM(VM1)分配静态私有IP:避免VM重启后私有IP变化,导致连接中断
  • 配置VM1的网络安全组(NSG)入站规则:允许来自VNet1地址段的流量访问3306端口;同时在MySQL的防火墙设置里,添加VNet1的地址段(或者直接关闭MySQL的公网防火墙,因为用私有IP访问了)
  • 最后关闭VMSS实例的公网IP:在VMSS的“网络”配置里,把实例的公网IP选项设为“禁用”,之后VMSS实例就能用VM1的私有IP直接连接MySQL了

方案二:应用安全组(ASG)+ NSG规则(灵活易配置)

你之前提到没搞懂怎么给VMSS分配ASG,其实操作很简单,这个方案适合不想配置VNet对等的场景:

  • 创建一个应用安全组(比如叫VMSS-MySQL-Clients),区域选西欧
  • 给VMSS的实例网卡关联这个ASG:进入VMSS的“网络”配置,找到“应用安全组”选项,把刚才创建的ASG添加进去(新创建的VMSS实例会自动继承这个配置)
  • 进入VM1的NSG配置,添加一条入站规则:
    • 源类型选择“应用安全组”,然后选择跨资源组的VMSS-MySQL-Clients
    • 目标端口填3306,协议选TCP,允许流量通过
  • 同样建议关闭VMSS的公网IP,用VM1的私有IP连接MySQL,流量走内网更安全

方案三:迁移至Azure托管MySQL + Private Link(长期托管方案)

你之前说Private Link不支持VM和VMSS,其实是针对自建VM上的MySQL而言的。如果你的业务允许,把MySQL从自建VM迁移到Azure Database for MySQL灵活服务器,就能用Private Link实现更托管的安全连接:

  • 迁移完成后,在Azure托管MySQL里创建私有端点,关联到VMSS所在的VNet
  • 之后VMSS实例就能通过私有端点的私有IP访问托管MySQL,全程内网流量,不用配置复杂的NSG规则,Azure会自动管理网络安全

额外注意事项

  • 不管用哪个方案,都要避免把MySQL防火墙设为0.0.0.0,哪怕是允许Azure内部流量,也不如限定具体的VNet/ASG安全
  • 给MySQL设置强密码,禁用root远程访问,只创建必要的数据库用户,最小化权限
  • 如果用VNet对等,记得检查两个VNet的地址段没有重叠,否则对等会失败

备注:内容来源于stack exchange,提问作者Steve Owen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:49:34