「云网络安全」云网络安全101:Azure虚拟网络服务端点
<div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/f4fed933dc9e47d899093c1c864007ac~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1704566679&x-signature=yzsVv9OR9EG2C%2F6AsgWC84d3llw%3D" style="width: 100%; margin-bottom: 20px;"></div>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">Microsoft Azure提供了两个类似但不同的服务,允许虚拟网络(VNet)资源私下连接到其他Azure服务。Azure VNet服务端点和Azure私有端点(由Azure私有链接提供支持)都通过允许VNet流量不通过internet与服务资源通信来促进网络安全,但它们之间存在一些区别。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">这个由三部分组成的博客系列详细介绍了这两种服务。</p>在本系列的第1部分(本部分!)中,我们将讨论服务端点。在第2部分中,我们将讨论私有链接和私有端点。在第3部分中,我们将对两者进行比较和对比,并解释何时使用哪一种。<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">准备好学习Azure服务端点了吗?就让我们一探究竟吧!</p>
<h1 style="text-align: left; margin-bottom: 10px;">什么是Azure服务端点?</h1>
<div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/7c9975c2936041989231ec981953b962~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1704566679&x-signature=n21DioJBEtnGlgbxJtEhWSlsufM%3D" style="width: 100%; margin-bottom: 20px;"></div>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">在上面,虚拟机拥有私有IP地址10.1.1.4,但是可以通过服务端点访问存储帐户。内部通信量不能使用服务端点,必须通过internet访问存储帐户。从https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoints-overview secure-azure-services-to-virtual-networks形象</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">服务端点允许VNet资源使用私有IP地址连接到Azure服务的公共端点,这意味着流量通过Azure骨干网络而不是internet流向服务资源。实际上,您正在将VNet的标识扩展到服务资源。然后可以锁定服务资源,使其只接受来自与服务端点关联的子网的流量。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">您还可以通过添加一个网络安全组(NSG)来锁定VNet,以拒绝除所需Azure服务之外的所有出站流量。通过正确的配置,服务端点使您能够将服务资源保护到您的VNet,从而提供额外的安全层。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">例如,假设您在一个VNet中有一个虚拟机(VM),它需要与一个Azure存储帐户通信。您可以组合服务端点、存储账户和NSG从VM在私人交通子网到达存储账户没有触及互联网,存储账户块所有流量从子网,除非是和NSG出站的流量限制子网网络。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">如果没有服务端点,就需要为虚拟机分配一个公共IP地址,将其暴露给internet和伴随它而来的所有威胁;子网将需要一个NAT网关设备,需要一个额外的配置步骤和潜在的减慢流量;存储帐户需要对任何网络上的客户端开放,这样如果凭证泄露,因特网上的任何人都可以访问它。几乎没有理想!</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">现在,让我们看看服务端点带来的一些好处:</p><strong style="color: blue;">增强的安全性</strong>:由于虚拟网络资源使用私有IP地址连接到服务资源,因此不需要为其分配公共IP地址。如果没有公共IP地址,恶意参与者就无法扫描VM的开放端口以寻找漏洞,并关闭您的应用程序或窃取数据。<strong style="color: blue;">优化路由:</strong>服务端点在Azure主干网络上提供了从VNet到服务资源的直接路由,因此没有额外的跳点来降低流量。<strong style="color: blue;">更简单的网络架构:</strong>由于流量通过Azure主干网络从VNet资源流向服务资源,因此您不需要给它一个公共IP地址或配置NAT或网关设备。另外,您可以在几次单击中启用服务端点,Azure将处理维护服务端点的幕后工作。<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">服务端点目前可用于PaaS服务,如Azure存储、Azure SQL数据库、Azure密钥库和其他服务。</p>
<h1 style="text-align: left; margin-bottom: 10px;">Azure服务端点策略</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">默认情况下,每个存储帐户都有一个网络访问规则,允许来自所有网络(包括internet)的流量。为了保护您的存储帐户mystorageaccount,您可以启用一个服务端点,然后修改mystorageaccount的默认网络访问规则,以拒绝流量,除非流量来自服务端点。(我们将很快解释如何做到这一点。)在这种情况下,服务端点子网中的vm1可以访问mystorageaccount,但是不同子网中的vm2不能访问mystorageaccount。这是因为每个服务、每个子网都启用了服务端点。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">以这种方式修改mystorageaccount的ACL可以保护mystorageaccount不受internet流量的影响,但需要注意的是,服务端点允许关联子网中的任何计算实例访问其他可用的存储帐户(同样,这是因为每个服务、每个子网都启用了服务端点)。如果您组织中的恶意参与者秘密配置roguestorageaccount以允许来自服务端点的流量,vm1可以向它发送流量,允许恶意参与者窃取数据——即使roguestorageaccount是在不同的订阅或Active Directory租户中。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">幸运的是,Azure为这种情况提供了一个解决方案:服务端点策略(目前仅对Azure存储资源启用)。服务端点策略指定服务端点的范围:它只允许访问订阅中的所有存储帐户、资源组中的所有存储帐户或单个存储帐户。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">通过使用服务端点策略更精确地指定流量的流向,可以降低数据溢出的风险。在本例中,您可以配置服务端点,以允许vm1仅向mystorageaccount发送通信量,而不向roguestorageaccount发送通信量。</p>
<h1 style="text-align: left; margin-bottom: 10px;">与AWS VPC端点的相似性</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">如果您是AWS用户,并且所有这些对您来说都很熟悉,那么您可能会想到VPC网关端点,它们也使用路由来保护存储和数据库资源到虚拟网络的子网,而不需要通过internet传输流量。网关端点还授予从子网到服务的完全访问权,除非您应用端点策略来缩小可访问资源的范围——与您使用Azure服务端点策略的方式非常相似。</p>
<h1 style="text-align: left; margin-bottom: 10px;">如何创建Azure服务端点</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">您可以通过两个简单的步骤设置服务端点:</p>在网络端启用服务端点在服务资源端配置acl<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">这里是一个快速的演练,它是这个优秀Azure教程的一个简短版本。假设您在虚拟网络的私有子网中有一个VM,在同一区域中有一个存储帐户,您希望流量从前者流到后者,而不需要通过internet。</p>
<h1 style="text-align: left; margin-bottom: 10px;">在网络端启用服务端点:</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">导航到子网并编辑它。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">选择“微软。“服务端点”标题下的“服务”。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">选择“保存”。</p>
<h1 style="text-align: left; margin-bottom: 10px;">修改存储帐户端上的默认网络访问规则:</h1>导航到存储帐户并选择侧边栏中的“防火墙和虚拟网络”。在“允许访问”下,选择“选定的网络”。选择“添加现有虚拟网络”,然后选择您刚刚编辑的虚拟网络和子网。选择“添加”,然后“保存”。<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">就是这样!您刚刚启用了一个服务端点。如果您想对其进行测试,可以创建一个网络安全组(NSG),其中包含允许SSH或RDP从您的家庭IP地址访问的入站规则,并将其与服务端点子网相关联。(你可以使用whatismyip.com找到你的IP地址。请注意,VM还需要一个公共IP地址,以便您从家中访问它。)SSH或RDP到实例中,并尝试访问存储帐户,例如通过使用Azure CLI或PowerShell列出其容器。您将看到,您可以从VM访问存储帐户,而不能从自己的IP地址。(如果在同一子网中创建另一个VM,它也可以访问存储帐户,因为没有服务端点策略的服务端点允许关联子网中的任何资源访问其他可用的存储帐户。)</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">额外的好处是:实现我们前面提到的一种策略,即锁定NSG,从而阻塞从VM到internet的出站流量。您可以通过创建两个出站安全规则来做到这一点:一个只允许出站流量到Azure存储,另一个阻止出站流量到internet。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">首先,使用以下配置创建一个出站安全规则,以允许流量进入Azure存储:</p>来源:VirtualNetwork目的地:服务标签目的地服务标签:存储目的端口范围:*(星号)行动:允许优先级:100<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">输入一个新名称,并保持其他缺省值。然后创建另一个出站安全规则,配置如下,以阻止互联网流量:</p>来源:VirtualNetwork目的地:服务标签目的地服务标签:互联网目的端口范围:*(星号)行动:否认优先级:110<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">输入一个新名称,并保留其他默认值。瞧!VM只能接受来自IP的流量,它只能将流量发送到Azure存储,而目标存储帐户只接受来自服务端点的流量。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">要了解完整的演练,请参阅Azure的文章《使用Azure门户限制对带有虚拟网络服务端点的PaaS资源的网络访问》。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">额外奖励:设置一个服务端点策略,以便VM只能将流量发送到所需的存储帐户,而不是任何可用的存储帐户。下面是另一个很棒的Azure教程,向您展示如何使用它。</p>
<h1 style="text-align: left; margin-bottom: 10px;">在使用服务端点之前需要了解的事情</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">关于服务端点,需要记住的一些提示:</p>服务端点没有成本。与往常一样,您需要为使用的VNet资源和服务资源付费,但无需为服务端点额外付费。如前所述,服务端点是为整个服务实现的(根据服务的不同,它甚至不需要是相同的AD租户)。但是,如果服务资源是存储帐户,则可以使用服务端点策略将范围缩小到订阅或资源组中的所有存储帐户,或缩小到单个存储帐户。启用服务端点时,关联子网中的vm将从公共IP地址切换到私有IP地址。请记住这一点,因为设置为公共IP地址的现有防火墙规则可能会失败。此外,从子网到服务资源的通信可能在切换期间被临时中断,因此请确保在启用或禁用服务端点时关键任务没有运行!服务资源只能被保护到虚拟网络,因此内部通信量不能使用服务端点连接到Azure服务。(如果你想让交通从on prem开始,不要绝望;请参阅本教程的第2部分,其中我们讨论了私有链接和私有端点!)<h1 style="text-align: left; margin-bottom: 10px;">结论</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">正如您所看到的,服务端点是通过将您的VNet身份扩展到服务资源来保护您的VNet和服务资源的一种极好的方法。流量源是一个私有IP地址,而目的地是服务资源的公共IP地址。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">但是,如果您希望目的地也是私有IP地址,又该怎么办呢?</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">这就是私有链接和私有端点的作用。请继续关注本博客系列的第2部分!</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"> <span style="color: green;">本文:http://jiagoushi.pro/node/1381</span></p>
<div style="text-align: left; margin-bottom: 10px;">
<div style="text-align: left; margin-bottom: 10px;">(此处已添加圈子卡片,请到今日头条客户端查看)</div>
</div>
页:
[1]