【问题标题】:Best practice / way to allow my Azure App Service talk to my Azure Virtual Machine允许我的 Azure 应用服务与我的 Azure 虚拟机对话的最佳实践/方法
【发布时间】:2020-05-19 19:41:57
【问题描述】:

我有一个没有公共 IP 的 Azure VM。它只有一个内部 IP,它存在于我在 Azure 上的“开发”环境虚拟网络中。我们在虚拟网络 vnet-dev 上将此称为 vm-dev

我的 Azure VM 在此虚拟机上的 localhost 上托管一个在 IIS 上运行的 Web API。我们称之为 CoolWebApi

我有一个 Azure 应用服务,它是一个存在于同一环境中的 API,我们称之为 api-dev

api-dev 有一个虚拟 IP 地址,我们称之为 91.195.240.126

1) 任何人都可以访问 vm-dev 的唯一方法是通过我的 Azure 防火墙。他们需要特定的 NAT 规则来允许他们访问该虚拟机。例如,我可能有一个如下所示的 NAT 规则。

源 IP、目标 IP(防火墙公共 IP)、转换地址、端口。

23.44.55.66、23.674.23.12、91.195.240.126(vm-dev 住在这里)、3389。

问题是,我想让我的 Azure 应用服务 (api-dev) 能够在端口 8080 上向此 VM 发出请求。所以我想,我将在防火墙中创建另一个 NAT 规则并使用api-dev 虚拟 IP/出站地址作为源 IP,这样可以吗?错了。

我还尝试在我的 vnet-dev 上创建入站规则以允许端口 8080、443 上的 api-dev 虚拟 ip,这也不起作用!

这方面的最佳做法是什么?我应该做什么

最终,api-dev 应该能够向运行在 localhost 上的 vm-dev 上的 CoolWebApi 发出请求。

【问题讨论】:

    标签: azure azure-web-app-service azure-virtual-machine


    【解决方案1】:

    您需要在 Azure 防火墙中创建一个 DNAT 规则,其中源 IP 作为应用服务出站 IP,目标 IP 作为防火墙的公共 IP,目标端口为“任何其他服务未使用的任何 IP”,并将端口翻译为8080。

    您不能将相同的目标端口用于 2 个 DNAT 规则。

    当您创建 DNAT 规则时,会隐式创建入站规则,因此您不一定需要在此处创建网络规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多