现有Azure App Service与Azure VM群集之间的安全通信

时间:2016-07-01 00:28:33

标签: azure azure-web-sites azure-virtual-machine azure-cloud-services azure-virtual-network

我们在Azure中运行的应用程序包含以下内容:

  1. Web App前端,与......对话
  2. 作为Web App运行的WebApi,可以(以及其他一些服务)与...进行对话...
  3. 托管Elasticsearch集群的云服务负载均衡的虚拟机集。
  4. 此外,我们的情况是开发人员将他们的IP列入白名单,以便他们的本地主机版本的API也可以访问虚拟机。

    我们通过向暴露的终点添加ACL来锁定我们的Elasticsearch VM。我将我的App Services上列出的出站IP列入白名单。我错误地认为这些是我的Api独有的。事实证明,这些是在Azure中的比例单元中共享的。在同一规模单元中运行的其他服务,如果他们知道端点,则可以访问群集中端点上公开的数据。我需要锁定它,我正在努力寻找最简单的方法。这些是我正在看的东西,我很感激建议和/或重定向。

    • 弹性盾牌:未被考虑。这是Elastic的产品 旨在保护ES。这是理想的,但目前它 超出范围(由于成本和管理费用)
    • 列表项
    • 弹性插件:未考虑。主要插件(如 Jetty)似乎被抛弃了。
    • Azure VPN。我最初试图设置它,但遇到了太多 困难。 ACL似乎没有太多给我我需要的东西 困难。我不确定我现在是否可以这样做。我的事 不知道是:

      1. 我认为我不能将现有的VM转移到新的VPN中。
      2. 我认为您必须从一开始就在该VPN中重新创建虚拟机 我可以将我的Web应用程序移动到VPN中吗?这有什么作用?
      3. 这可能会破坏我的开发人员场景作为localhost API 无法访问VPN,对吗?
    • 为请求添加证书:如果可以的话,这将是理想的选择 请求需要证书或标头令牌。我假设这样做我 需要创建一个可以在VM上运行的代理并执行 在将请求转发给我的Elasticsearch之前进行验证。

    • 还有别的吗?还有其他我没想过的选择吗?

    谢谢! 〜约翰

1 个答案:

答案 0 :(得分:0)

您可以创建将您的Web App与IaaS VM连接的VPN点对点。这是最好的解决方案,因为您只能在IaaS上使用内部IP。

使用Azure Portal执行此操作的最简单方法是创建Web应用程序,并使用“Your Web App”中的“setup”选项创建新的VPN和VNet - >设置 - >网络 - > VNET集成 - >设置 - >创建新的虚拟网络。

之后,在这个新的VNet中创建您的IaaS。

您还可以创建一个ARM模板来创建Web App,IaaS,VPN以及您需要的所有内容。看一下我的ARM模板,使用VPN连接的Web App和MariaDB Cluster创建PHP + MySQL:https://github.com/juliosene/azure-webapp-php-mariadb