Azure 从应用程序服务安全访问CosmosDB

Azure 从应用程序服务安全访问CosmosDB,azure,azure-web-app-service,azure-cosmosdb,azure-virtual-network,Azure,Azure Web App Service,Azure Cosmosdb,Azure Virtual Network,我有一个node.js应用程序部署到Azure应用程序服务,它使用CosmosDB存储应用程序数据。一切正常 但是,我希望在网络级别锁定对CosmosDB实例的访问,以更好地保护数据 根据文档,我设置了一个虚拟网络,在其中添加了app service app,为CosmosDB设置了一个服务端点,并限制了对DB实例的访问,以仅允许虚拟网络 我已经重做了多次,等待一切更新(12-24小时),但都没有用。一旦我实现了上述设置,当应用程序试图调用DB时,我总是会遇到连接错误 有人有什么见解吗?我感到非

我有一个node.js应用程序部署到Azure应用程序服务,它使用CosmosDB存储应用程序数据。一切正常

但是,我希望在网络级别锁定对CosmosDB实例的访问,以更好地保护数据

根据文档,我设置了一个虚拟网络,在其中添加了app service app,为CosmosDB设置了一个服务端点,并限制了对DB实例的访问,以仅允许虚拟网络

我已经重做了多次,等待一切更新(12-24小时),但都没有用。一旦我实现了上述设置,当应用程序试图调用DB时,我总是会遇到连接错误


有人有什么见解吗?我感到非常沮丧,并考虑改用AWS,但我的客户出于许多不同的原因热衷于使用Azure。

根据我的研究,如果你想允许你的应用程序服务访问Vnet中的cosmos db。我们需要将Vnet与应用服务与区域Vnet集成。之后,我们可以跨服务端点访问cosmos DB。但它不能让我们通过全球对等连接获取资源。这意味着app service和cosmos db应该位于同一区域。有关更多详细信息,请参阅


此外,如果您想访问不同地区的资源,我建议您使用应用程序服务环境。关于这个问题,根据我的研究,如果你想允许你的应用程序服务访问Vnet中的cosmos db,请参考。我们需要将Vnet与应用服务与区域Vnet集成。之后,我们可以跨服务端点访问cosmos DB。但它不能让我们通过全球对等连接获取资源。这意味着app service和cosmos db应该位于同一区域。有关更多详细信息,请参阅



此外,如果您想访问不同地区的资源,我建议您使用应用程序服务环境。关于此问题,请参阅

您是否在Cosmos DB帐户上启用了防火墙规则?没有足够的数据来确定问题所在。我猜这篇文章第一个“注释”中提到的东西就是原因。也不确定您是如何设置的,但这里有一个cli脚本,用于为Cosmos中的帐户设置服务端点。这可能会有帮助。@GauravMantri:是的,我有。@MarkBrown:子网有CosmosDB的服务端点,我的CosmosDB设置为只接受来自该特定子网的流量。我在文档中找不到任何与我所做的相矛盾的东西,但它就是不起作用。从链接@MarkBrown shared…当在子网上启用Azure Cosmos DB帐户的服务端点时,到达Azure Cosmos DB的流量源将从公共IP切换到虚拟网络和子网。流量切换适用于从此子网访问的任何Azure Cosmos DB帐户。如果您的Azure Cosmos DB帐户具有允许此子网的基于IP的防火墙,则来自启用服务的子网的请求将不再符合IP防火墙规则,并且将被拒绝。您是否已在您的Cosmos DB帐户上启用防火墙规则?没有足够的数据来确定问题所在。我猜这篇文章第一个“注释”中提到的东西就是原因。也不确定您是如何设置的,但这里有一个cli脚本,用于为Cosmos中的帐户设置服务端点。这可能会有帮助。@GauravMantri:是的,我有。@MarkBrown:子网有CosmosDB的服务端点,我的CosmosDB设置为只接受来自该特定子网的流量。我在文档中找不到任何与我所做的相矛盾的东西,但它就是不起作用。从链接@MarkBrown shared…当在子网上启用Azure Cosmos DB帐户的服务端点时,到达Azure Cosmos DB的流量源将从公共IP切换到虚拟网络和子网。流量切换适用于从此子网访问的任何Azure Cosmos DB帐户。如果您的Azure Cosmos DB帐户具有基于IP的防火墙以允许此子网,则来自启用服务的子网的请求将不再符合IP防火墙规则,并且将被拒绝。是的,这也是我的理解。所有设置都在同一个区域。@JakobBøgh您能告诉我,当您配置它时,您使用的是相同的Vnet还是不同的Vnet,并且app Vnet和cosmos db位于同一区域?app service配置为Vnet(与app service和ComosDB位于同一区域)。已为VNET激活CosmosDB服务端点。CosmosDB有一个防火墙设置,只允许来自相关VNET的流量。@JakobBøgh您能提供应用程序服务和cosmos db防火墙的屏幕截图吗?是的,这也是我的理解。所有设置都在同一个区域。@JakobBøgh您能告诉我,当您配置它时,您使用的是相同的Vnet还是不同的Vnet,并且app Vnet和cosmos db位于同一区域?app service配置为Vnet(与app service和ComosDB位于同一区域)。已为VNET激活CosmosDB服务端点。CosmosDB的防火墙设置仅允许来自相关VNET的流量。@JakobBøgh您能提供应用程序服务和cosmos db防火墙的屏幕截图吗?