category
这篇文章展示了如何从内部部署网络或Azure虚拟网络中设置到多租户web应用程序或功能应用程序的改进的安全专用连接。它还展示了如何在不使用公共互联网的情况下,通过Azure private Link在应用程序和其他Azure PaaS服务之间设置改进的安全连接。
架构
图显示了从本地网络安全访问多租户web应用程序的参考体系结构。
下载此体系结构的Visio文件。
流
- 通过使用Azure应用程序服务区域虚拟网络集成,web应用程序通过Azure虚拟网络中的委派子网VNet集成子网连接到Azure服务。
- VNet集成子网和专用端点子网网络是不同订阅中的独立虚拟网络。这两个网络都与集线器虚拟网络对等,作为集线器和轮辐网络配置的一部分。对于区域虚拟网络集成,对等虚拟网络必须位于同一Azure区域中。
- VNet集成子网和专用端点子网网络是不同订阅中的独立虚拟网络。这两个网络都与集线器虚拟网络对等,作为集线器和轮辐网络配置的一部分。对于区域虚拟网络集成,对等虚拟网络必须位于同一Azure区域中。
- Azure专用链接服务在专用端点虚拟网络中为PaaS服务、web应用程序、Azure SQL数据库、Azure存储帐户和Azure密钥库设置专用端点。
在本例中,此虚拟网络仅用于部署专用端点。不会在此虚拟网络中部署其他资源,如虚拟机(VM)。在选择子网大小时,已考虑到未来添加专用终结点的需求。
-
内部部署网络和Azure虚拟网络可以通过站点到站点(S2S)VPN或Azure ExpressRoute专用对等连接。内部部署网络中的用户可以私人访问应用程序,并且仅通过专用网络提高安全性。
在本例中,本地网络和Azure虚拟网络通过ExpressRoute私有对等连接。
对于已经有域名系统(DNS)解决方案的本地网络,本地DNS解决方案被配置为通过条件转发器将DNS流量转发到Azure专用DNS记录(例如,azurewebsites.net),该条件转发器将请求转发到部署在Azure中的DNS专用解析程序服务的入站端点。DNS专用解析程序查询Azure DNS并接收有关Azure专用DNS虚拟网络链接的信息。然后由链接到虚拟网络的专用DNS区域来完成解析。
专用DNS区域也部署在与专用端点虚拟网络相同的订阅中。
在本例中,本地网络中IP地址为192.168.0.254的DNS转发器机器将所有DNS解析请求转发到主机名azurewebsites.net,再转发到Azure中地址为10.0.0.132的DNS专用解析程序服务的入站端点。然后,这些请求由Azure提供的DNS服务(IP地址为168.63.129.16)通过链接到虚拟网络的Azure专用DNS区域进行解析。
需要出站端点才能使用DNS转发规则集启用从Azure到本地、其他云提供商或外部DNS服务器的条件转发名称解析。
此方案不需要配置DNS转发规则集。
应存在此应用程序服务配置:
Key | Value |
---|---|
WEBSITE_DNS_SERVER | 168.63.129.16 |
- 虚拟网络链接到所有Azure专用DNS区域。
- 具有专用端点的虚拟网络会自动链接到专用DNS区域。您需要单独链接其他虚拟网络。
- 具有专用端点的虚拟网络会自动链接到专用DNS区域。您需要单独链接其他虚拟网络。
- 该web应用程序通过Azure防火墙与专用端点虚拟网络中的PaaS服务的专用端点进行通信。
- 在Azure防火墙上,应用程序规则被配置为允许VNet集成子网和PaaS资源的私有端点之间的通信。目标完全限定域名(FQDN)为:
*.azurewebsites.net
*.database.windows.net
*.core.windows.net
*.vaultcore.azure.net
- Azure SQL、Azure存储帐户和Azure密钥保管库的防火墙和虚拟网络配置仅允许来自VNet集成子网的流量。该配置不允许与任何其他虚拟网络或公共互联网进行通信。
组件
- Azure应用程序服务承载web应用程序和功能应用程序,允许自动扩展和高可用性,而无需管理基础设施。
- Azure SQL数据库是一种通用的关系数据库管理服务,支持关系数据、空间数据、JSON和XML。
- Azure存储帐户为Azure存储数据提供了一个唯一的命名空间,该命名空间可通过HTTP或HTTPS从世界任何地方访问。它包含所有Azure存储数据对象:Blob、文件共享、队列、表和磁盘。
- Azure密钥库是一项用于安全存储和访问API密钥、密码、证书、加密密钥或云应用程序和服务使用的任何其他机密的服务。
- Azure虚拟网络是Azure中私有网络的基本构建块。像虚拟机这样的Azure资源可以通过虚拟网络安全地相互通信、互联网和本地网络。
- Azure私有链接在虚拟网络中提供了一个私有端点,用于连接到Azure存储和SQL数据库等Azure PaaS服务,或连接到客户或合作伙伴服务。
- Azure ExpressRoute私有对等通过私有连接将本地网络扩展到Microsoft云中。您也可以在本地和Azure网络之间建立站点到站点VPN,而不是使用Azure ExpressRoute。
- Azure防火墙是一种托管的、基于云的网络安全服务,有助于保护Azure虚拟网络资源。
- 专用DNS区域为管理和解析虚拟网络中的域名提供了可靠和安全的DNS服务。
- DNS专用解析程序允许从本地环境查询Azure DNS专用区域,反之亦然,而无需部署基于VM的DNS服务器。
选择
对于私有连接,另一种方法是使用应用程序服务环境在隔离的环境中托管web应用程序。对于数据库,您可以在虚拟网络中本地部署Azure SQL托管实例,因此不需要VNet集成或专用端点。这些产品通常更昂贵,因为它们提供了单租户隔离部署和其他功能。
如果您有应用程序服务环境,但未使用SQL托管实例,则仍然可以使用专用端点进行与Azure SQL数据库的专用连接。如果您已经拥有SQL托管实例,但正在使用多租户应用程序服务,则仍然可以使用区域VNet集成连接到SQL托管实例专用地址。
对于其他一些Azure服务,如密钥保管库或存储,除了使用私有端点从Web应用程序进行高度安全和私有的连接之外,别无选择。
潜在用例
- 通过内部部署网络或Azure虚拟网络中的专用端点,以提高安全性的方式私下访问多租户web应用程序或功能应用程序。
- 从web应用程序或功能应用程序连接到Azure平台即服务(PaaS)产品:
- 另一个web应用程序
- SQL数据库
- Azure存储
- 密钥保管库支持Azure专用端点进行入站连接的任何其他服务
注意事项
这些注意事项实现了Azure架构良好的框架的支柱,这是一套可用于提高工作负载质量的指导原则。有关详细信息,请参阅Microsoft Azure架构良好的框架。
安全
安全性提供了防止蓄意攻击和滥用您的宝贵数据和系统的保证。有关更多信息,请参阅安全支柱概述。
使用web应用程序的专用端点可以:
- 通过配置专用端点,消除公共暴露,帮助保护您的web应用程序。
- 通过使用VPN或ExpressRoute专用对等连接到虚拟网络的内部部署网络,以提高安全性的方式连接到Web应用程序。允许从内部部署网络或仅从Azure虚拟网络内到Web应用的入站连接。
- 避免任何来自虚拟网络的数据泄露。
您可以通过使用Azure应用程序网关或Azure Front Door等服务(可选地使用Azure web应用程序防火墙)引导应用程序,进一步提高与web应用程序的入站连接的安全性。当您为web应用程序启用专用端点时,不会评估web应用程序的访问限制配置。
此方案还提高了从应用程序服务web应用程序到下游依赖项(如数据库、存储或密钥保管库)的出站连接的安全性。
您可以将应用程序路由配置为将所有流量或仅将专用流量(也称为RFC1918流量)路由到虚拟网络。您可以使用“全部路由”设置来配置此行为。如果禁用“全部路由”,则web应用程序仅将专用流量路由到您的虚拟网络。若要阻止到公用地址的流量,请启用“全部路由到虚拟网络”设置。您还可以使用网络安全组来阻止到虚拟网络或internet中资源的出站流量。当未启用“全部路由”时,NSG仅应用于RFC1918流量。
在本例中,web应用程序不需要与任何不在虚拟网络中的服务通信,因此启用了“全部路由”。
在这种情况下,一个重要的安全考虑是为PaaS资源配置防火墙。
SQL数据库防火墙选项
在不使用专用连接的情况下,可以添加仅允许来自指定IP地址范围的入站流量的防火墙规则。另一种方法是允许Azure服务访问服务器。这种方法锁定防火墙,只允许来自Azure内部的流量。但这个流量包括所有Azure地区和其他客户。
您还可以添加更严格的防火墙规则,只允许应用程序的出站IP地址访问数据库。但由于应用程序服务是一个多租户服务,这些IP地址与使用相同出站IP地址的同一部署戳上的其他客户共享,并允许来自其他客户的流量。
通过虚拟网络使用专用连接提供了以下防火墙选项,以帮助防止其他人访问数据库:
- 创建一个虚拟网络规则,该规则只允许来自VNet Integration委派的区域子网的流量,在本例中为VNet Integration subnet。委派的子网必须为Microsoft配置一个服务终结点。Sql,以便数据库能够识别来自该子网的流量。
- 配置防火墙以拒绝公共网络访问。这样做会关闭所有其他防火墙规则,并使数据库只能通过其专用端点访问。
拒绝公共网络访问的选项是最安全的配置。但如果使用此选项,则只能通过承载专用端点的虚拟网络访问数据库。若要连接到数据库,除了web应用程序之外的任何东西都必须直接连接到虚拟网络。
例如,本地计算机上SQL Server Management Studio(SSMS)的部署或紧急手动连接无法访问数据库,除非通过VPN或ExpressRoute连接到虚拟网络。您也可以远程连接到虚拟网中的虚拟机,并从那里使用SSMS。对于特殊情况,您可以临时允许公共网络访问,并通过使用其他配置选项来降低风险。
存储帐户和密钥保管库防火墙选项
存储帐户和密钥保管库有一个可从互联网访问的公共端点。您还可以为您的存储帐户和密钥保管库创建专用端点。这样做可以从您的虚拟网络为这些服务分配一个专用IP地址,并有助于通过专用链接保护虚拟网络和相应服务之间的所有流量。
创建专用端点时,VNet集成子网可以通过专用链接以提高安全性的方式私下访问服务。但存储帐户和密钥保管库仍然可以从其他Azure虚拟网络访问。若要阻止来自任何其他虚拟网络的访问,请为此委派的子网创建服务端点。
可用性
所有公共区域都提供对应用程序服务、Azure SQL数据库、Azure存储和Azure密钥库的专用链接支持。若要检查其他地区的可用性,请参阅Azure专用链接的可用性
Private Link在体系结构中引入了另一个组件和可用性考虑因素。专用链路服务具有高可用性SLA。在计算整个解决方案的复合SLA时,需要将此SLA考虑在内。
可扩展性
有关在集线器和轮辐式网络架构中将Azure专用链接用于PaaS服务与Azure专用DNS区域集成的信息,请参阅专用链接和大规模DNS集成。
全球对等
任何Azure区域中可以通过虚拟网络连接的任何服务都可以到达PaaS服务的专用端点,例如,通过集线器和轮辐拓扑中的虚拟网络对等。但是,对于应用服务区域VNet集成,对等虚拟网络必须位于同一Azure区域。
缺乏全局对等支持意味着您无法使用此解决方案实现从应用程序服务到另一个Azure区域中的数据库或其他专用端点的跨区域连接。例如,此解决方案不适用于支持部分故障转移的多区域部署,即web应用程序在一个区域保持活动状态,但必须连接到另一个区域的故障转移数据库,反之亦然。但这种情况还有其他解决办法。
如果您需要将Web应用程序连接到另一个地区的虚拟网络,您可以设置网关所需的VNet集成。限制是网关所需的VNet集成不能与连接到Azure ExpressRoute的虚拟网络一起使用。
日志记录和监控
Azure Private Link与Azure Monitor集成,允许您查看数据是否在流动。
您还可以使用Azure Network Watcher中的连接疑难解答服务来跟踪从虚拟网络中的VM到专用终结点资源的FQDN的连接。
成本优化
成本优化是指寻找减少不必要费用和提高运营效率的方法。有关更多信息,请参阅成本优化支柱概述。
在基本、标准、高级v2、高级v3、独立v2应用服务和Azure功能高级计划中支持的定价层中,应用服务区域VNet集成没有增加成本。
专用端点可用于Windows web应用程序和Linux web应用程序,无论是否容器化,托管在基本、标准、高级v2、高级v3和独立v2应用程序服务计划上,也可用于部署到高级计划的功能应用程序。
为PaaS服务启用私有端点的Azure私有链接服务有一个相关的成本,该成本基于每小时费用加上带宽溢价。有关详细信息,请参阅专用链接定价页面。从客户端虚拟网络到集线器虚拟网络中的Azure防火墙的连接会产生费用。从集线器虚拟网络中的Azure防火墙到对等虚拟网络中私有端点的连接不收取任何费用。
Azure专用DNS区域成本基于Azure中托管的DNS区域的数量和接收到的DNS查询的数量。
要探索运行此场景的成本,请参阅Azure定价计算器估计。本文中描述的所有服务都是为小规模应用程序预先配置了合理的默认值。要查看您的用例的定价将如何变化,请更改适当的变量以匹配您的预期使用量。
Next steps
- See step-by-step guidance on how to integrate Azure Functions with an Azure virtual network by using private endpoints.
- See the steps to configure Azure Firewall application rules to inspect traffic destined to private endpoints in various network topologies.
- For more information on inbound and outbound scenarios for App Service, and which features to use in which case, see the App Service networking features overview.
- For more information about private endpoints for Azure Web Apps, see Using Private Endpoints for Azure Web Apps.
- For more information about integrating multitenant web apps with Azure Virtual Network, see Integrate your app with an Azure virtual network.
- The FQDN of some of the PaaS services might resolve automatically to a public IP address. For information about overriding the DNS configuration to connect to the private endpoint, see Azure Private Endpoint DNS configuration.
Related resources
- 登录 发表评论
- 9 次浏览
最新内容
- 2 days ago
- 2 days 5 hours ago
- 2 days 5 hours ago
- 4 days 21 hours ago
- 5 days 4 hours ago
- 5 days 5 hours ago
- 5 days 5 hours ago
- 5 days 5 hours ago
- 1 week 2 days ago
- 1 week 2 days ago